Android Studio 3.0 新功能解析和旧项目适配

Android studio项目文件解析 Android studio 项目文件解析文件目录1.图片资源:2.布局资源3.菜单资源4.values目录5.raw目录6.存放动画文件获取资源java代码使用xml代码的使用深入理解三个文件MainActivity.java布局文件:activity_main.xml:AndroidManifest.xml``元素 文件目录 build.gradle:用gradle进行库的引用 java:... 阅读详情

Google 终于在经历大半年的打磨锤炼之后正式发布 Android Studio 3.0 版本,给广大安卓开发人员一份满意的答卷。如往常一样,每次新版开发工具的发布,很多谨慎点的朋友仍担心稳定性、是否存在坑等问题,选择隔岸观火,等一段时间再更新升级。

经过查看官网对新版开发工具的新功能介绍之后,当天我就选择了升级。事实上,我也的确折腾良久,但是截至目前,没有发现所谓的坑。只是需要对旧的工程做一些配置上的调整而已。各方面响应速度和新功能的使用,总体还是觉得值得升级。这篇文章,就来介绍新版开发工具给我们带来哪些实用的改变,并以实际操作经验告诉大家,旧工程的配置需要如何做兼容修改。备注:上周做的福利活动,还有时间参与,传送门请点击 。

3.0 带来的改变

Kotlin Support

在 Android Studio 3.0 之前,使用 Kotlin 语言开发安卓应用,需要额外配置 Kotlin 插件。而新版本内置默认支持 Kotlin 语言,来减少我们在配置上的工作。

选择工具栏 Code ——》 Convert Java File To Kotlin File,或者使用快捷键的形式,你可以一键实现 Java 文件到 Kotlin 文件的转换。

备注:关于快捷键的使用,你可以使用 Command + Shift + A 这组快捷键打开 Find Action 窗口,输入关键字寻找对应功能及其快捷键,效果就像上面 Gif 图展示的这样。

Java 8 Support

3.0 对 Java 8 语言特性的默认支持使你不用在 build.gradle 配置文件中添加 jackOptions 一项。如果你有使用到的话,记得删除:

android {
...
defaultConfig {
...
// Remove this block.
jackOptions {
enabled true
...
}
}
}

选择工具栏 File ——》Project Structure,修改 Source Compatibility 和 Target Compatibility 选项到 1.8 即可使我们的项目支持 Java 8 语言特性。

Android Profiler

过去我们使用的 Android Monitor 工具从 3.0 版本开始被 Android Profiler 替代掉了。如图,run 按钮一栏多了一个 Android Profiler 按钮:

Android Profiler 提供有 CPU、Memory 和 Network 三大调试分析利器,实时跟踪 Apk 的运行状态,可以帮助我们可视化地做一些性能调优工作。

这三个工具在开发阶段非常实用,比如 CPU Profiler 能够分析应用中的线程使用情况,Memory Profiler 能够检测出内存泄漏,Network Profiler 能够拦截网络请求实现抓包功能等。这里列举一些使用图片,简单预览一下这三大工具的风采:

有关这几个工具的详细使用细节,可以参考官方的介绍:

  • CPU Profiler guide

  • Memory Profiler guide

  • Network Profiler guide

Device File Explorer

这个功能厉害了。新版开发工具带来的资源管理器允许我们访问连接设备的文件系统,实现 PC 端到手机或模拟器端的便捷文件传输。有了这个工具,从此就可以告别之前使用的「文件传输助手」等第三方工具啦。

Adaptive Icons wizard

选择 File -> New -> Image Asset,利用 Android Studio 提供的工具创建图片资源一直以来也是开发利器之一。现在,这个工具开始支持vector drawables 格式,并且能够创建用于适配 Android 8.0 系统上各种形状的桌面图标。

URL intent-filter validator

这个功能也蛮贴心的。Manifest 清单文件开始支持一个特殊的标签,用于测试给定的 Url 字符串是否符合 intent-filter 标签内容所定义的规则。举个例子:

如图,这里使用 data 标签定义一个 Url 规则,并使用 tools:validation 标签验证一个错误的测试 Url 地址,检测器能够自动识别并给出错误提示。这个例子很简单,肉眼一眼就能看出错误。那如果是比较复杂的规则呢,可能就不那么容易看得出来。这个时候,这个工具就可以派上用场啦。

APK Analyzer

3.0 版本对 APK Analyzer 的功能做了进一步强化。主要在于:对于使用 ProGuard 混淆过的 APK 文件,我们能够上传 mapping.txt 文件进行代码还原;Dex 文件提供显示各个包目录的大小;等等。

其他功能

除了上面介绍的这些变化,还有一些其他大大小小的变更。比如 Layout Inspector 和 Layout Editor 工具在 UI 上有所调整,比如 App Links Assistant 和 Firebase App Indexing Assistant 的强化使用,这些留着大家自己去探索发现吧。也可以访问 Android Studio Release Notes 官网,了解 3.0 版本的更多发布细节。

旧项目的适配

Android Studio 3.0 发布的同时,Android Plugin for Gradle 3.0.0 也同时发布。编译速度整体都得到了大幅提升。升级完 Android Studio 之后,旧的工程需要做出部分改变,才能通过 Gradle 的编译。这里根据我的一个实际项目,介绍一下需要改变的内容。当然,也许你的项目用不上这些,也可能不止这些。

distributionUrl

Plugin 3.0.0+ 需要配置 Gradle 的最小版本是 4.1,我们可以通过 File -> Project Structure -> Project 的方式设置 Android Plugin 的版本,或者修改 gradle.properties 文件的内容,添加 distributionUrl 属性:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Google’s Maven repository

新版 Android Studio 工具默认使用 Google’s Maven Repository 用于下载依赖 Android Support Library,替代了 Android SDK Manager 的本地依赖方式。所以,需要在工程根目录下的 build.gradle 文件中添加 google() 一行代码:

allprojects {
   repositories {
       google()
   }
}

buildToolsVersion

Android Plugin For Gradle 3.0.0 默认自动添加插件所需要用到的最小版本的编译工具。所以,我们不需要再手动在 build.gradle 添加一行 buildToolsVersion 属性的代码。对于旧的项目,可以去掉这行配置,比如:

android {
   compileSdkVersion 26
   // remote buildToolsVersion
   buildToolsVersion "25.0.2"
   ...
}

each() 和 outputFile()

Plugin 3.0.0 版本移除了一些用于编译配置的 API,其中比较常见的就是 each() 和 outputFile(),两个常用于修改输出 Apk 文件名和路径的方法。

在之前的文章 Android Gradle 常用使用场景实现方式的总结 中有提到,自定义输出 APK 文件名可以这样做:

android {
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, rootProject.getName()
+ "-" + buildType.name
+ "-" + releaseTime()
+ "-v" + defaultConfig.versionName
+ "-" + defaultConfig.versionCode
+ ".apk");
}
}
}

但是使用 Plugin 3.0.0 时就会出现编译报错,我们需要修改 each() 和 outputFile() 方法为 all() 和 outputFileName,比如:

android {
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = rootProject.getName()
+ "-" + buildType.name
+ "-" + releaseTime()
+ "-v" + defaultConfig.versionName
+ "-" + defaultConfig.versionCode
+ ".apk";
}
}
}

对于旧的工程,基本上便是这些配置上的适配修改。如果你还遇到了别的问题,别紧张,按照编译错误提示一步步操作,也能成功通过编译。总体来说,这次 Android Studio 3.0 和 Plugin For Gradle 3.0.0 的发布还是非常值得升级尝试的,并没有网上说的那么多坑。何况,我们作为写代码的程序员,本来不就是为了解决问题而来嘛。


告别屏幕适配焦虑:用Android Studio插件ScreenMatch一键搞定smallestWidth适配(附完整dimens模板) 本文介绍了如何使用Android Studio插件ScreenMatch实现smallestWidth屏幕适配方案,帮助开发者告别屏幕适配焦虑。通过一键生成适配文件和完整的dimens模板,大幅提升开发效率,确保UI在各种设备上完美显示。 阅读详情

相关推荐

Android Studio 更新升级方法

由于技术的不断发展和改进,Google 会定期发布新版本的 Android Studio,其中包含更多的功能和修复了先前版本中的一些 bug。因此,及时更新和升级 Android Studio 是非常重要的,以确保开发者能够获得最新的功能和修复的问题。安装更新:下载完成后,Android Studio 将提示你关闭当前的应用程序,并开始安装更新。现在,你可以体验到新版本带来的新功能和改进。通过这个简单的示例,你可以尝试在 Android Studio 中运行和调试你的应用程序,以充分利用更新后的环境。

CyberLynxX的博客 8585

Android Studio 3.0.1 版本包下载

Android Studio 3.0.1 发布了,这是对 Android Studio 3.0 的一个小的更新,包括一般错误修复和性能改进 下载地址: Windows 64位:https://dl.google.com/dl/android/studio/ide-zips/3.0.1.0/android-studio-ide-171.4443003-windows.zip ...

weixin_33739523的博客 611

Android Launcher3桌面开发实战:Android Studio编译与4.4系统适配详解

Android Launcher3作为Android系统桌面的核心组件,负责管理应用启动、桌面布局及用户交互等关键功能。其架构设计高度模块化,主要由Java代码与XML资源组成,核心功能包括应用抽屉管理、快捷方式创建、小部件支持及手势交互处理。从Android 4.4到最新版本,Launcher3经历了多次重构,以适配Material Design风格、支持更大屏幕设备,并优化性能与内存管理。通过对源码结构的深入分析,开发者可以更好地理解桌面系统的运行机制,为后续的定制与优化奠定基础。

weixin_29867767的博客 1132

關於Android Studio 3.0.1項目升級4.1.3零碎記錄

3.0.1升級到4.1.3

Miss_JingEr的博客 204

Android Studio 3.0 汉化指南:全面步骤与实践

简介:本文旨在指导开发者如何使用提供的汉化文件来汉化Android Studio 3.0版本,从而使其支持中文界面。详细步骤包括下载汉化文件、找到安装目录、替换文件、重启Android Studio以及确认汉化效果。此外,强调了汉化文件兼容性的重要性,并鼓励用户在使用中文界面的同时,继续学习英文技术资料。

weixin_35294091的博客 1743

Android Studio 3.0 无线调试实战:WiFi 连接真机全流程

ADB 无线调试是 Android 开发中提升调试效率的基础能力,其本质是将 USB 通道的信任链迁移至 TCP/IP 协议栈,依托 adbd 进程的端口监听与 adb server 的网络发现机制实现设备通信。该技术不依赖厂商定制开关或 Android 11+ 配对流程,兼容 Android 7.1 至 12 系统,在无 root、无公网穿透、动态 DHCP 环境下仍可稳定运行。典型应用场景包括多设备并行测试、老旧机型驱动缺失时的真机验证、以及产线快速迭代中的免线化部署。本文聚焦 Android Stud

aoe41606的博客 226

【Android】Android Studio版本手动升级到指定版本方法

Android Studio版本手动升级到指定版本方法

每天不是在写bug就是在写bug的路上 7454

android studio 3.0.1 下载 安装包

android studio 3.0.1 下载 安装包

Android studio升级3.0.1遇到的坑及Android Studio 3.0 新功能解析和旧项目适配

近日将Android studio升级到3.0.1,Gradle升级到了4.1,升级好之后发现遇到了不少问题,具体如下:一、APK打包批量修改APK名称导出功能报错Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decoratedoutput.outputFile变成了只读属性,不能再...

宝爷的专栏 4341

《深入浅出图神经网络:GNN原理解析》学习笔记

期末考完了,该上道了 目录一、图的概述1.基本概念2.图的存储和遍历3.应用分类二、神经网络基础1.机器学习2.神经网络三、卷积神经网络(CNN)1.卷积与池化2.卷积神经网络四、表示学习1.意义2.自编码器五、图信号处理与图卷积神经网络1.矩阵计算前置知识2.图信号与图的拉普拉斯矩阵3.图傅里叶变换4.图滤波器(Graph Filter)5.图卷积神经网络(GCN) 一、图的概述 1.基本概念 1.顶点(Vertex)表示研究的对象,边(Edge)表示两个对象之间特定的研究关系 2.图为顶点和边的集合.

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 2049

在 Linux 虚拟机中手动安装 VMware Tools

对于 Linux 虚拟机,您可以从命令行手动安装 VMware Tools。对于 Linux 的较高发行版,请使用集成的 open-vm-tools 版本。 前提条件 有关 open-vm-tools 的操作系统兼容性的详细信息,请参见《VMware 兼容性指南》,网址为VMware Compatibility Guide - System Search。 开启虚拟机。 确认客户机操作系统正在运行。 因为 VMware Tools 安装程序是使用 Perl 编写的,请确认已在客户机操作系统中安..

m0_62526815的博客 1757

application中 android:icon 和 android:roundIcon 的区别

8.0系统的应用图标适配 为什么要进行应用图标适配? 可能有些朋友觉得困惑,应用图标这种东西从Android远古时代就已经有了,而且功能格外的简单,就是放张图片而已,这有什么好适配的呢?但实际上,在当前Android环境下,应用图标功能是极其混乱的。 如果说要讲一讲手机应用图标的历史,其实要从苹果开始讲起。在上世纪80年代,苹果还在设计Lisa和Macintosh电脑的时候,乔布斯就是个圆角...

仿秀达人 1万+

单细胞转录组聚类分析R包——SC3的应用

前言 在做单细胞相关聚类分析的过程中,为了研究异质性,发现了一种专门用于单细胞转录组的聚类分析R包——SC3(single cell consensus clustering,单细胞一致性聚类)。该聚类算法发表于Nature Methods(2017),能够让单细胞RNA-seq基于转录组特征对细胞类型进行定量表征。这是一种用户友好的无监督聚类工具,它通过一致方法将多个聚类解决方案组合在一起,从而得到高精度和鲁棒性的分群结果。SC3包的官方具体使用教程见:http://www.bioconductor.or

m0_51042606的博客 5005

Android Studio 3.0 Canary

Android Studio 3.0 Canary 发布 对于 Android 开发人员来说,Google I/O 2017 最大的新闻莫过于 Kotlin 编程语言得到 Google 官方认可正式转正、名正言顺成为 Android 届的 Swift 这一消息啦。今早开始,各大水友群、媒体号和朋友圈简直刷到根本停不下来。然而,本文并不是要说 Kotlin 扶正这件事。 Google I/O

u012295927的专栏 1772

CHIP-Seq数据分析流程

文章目录CHIP-Seq数据分析流程相关软件安装数据下载将SRA转化为fastq文件数据质控,过滤数据质控然后进行质控,过滤低质量reads,去接头比对下载小鼠参考基因组的索引和注释文件比对sam文件转bam为bam文件建立索引载入IGV查看用MACS call peak安装MACS结果注释与可视化 CHIP-Seq数据分析流程 相关软件安装 所需要的软件有sratoolkit, fastqc,bowtie2,samtools,macs2,htseq-count,bedtools和前面RNA-seq数据分析

bio_meimei的博客 8790

LAMMPS in文件详解:从零开始手把手教你配置金属分子动力学模拟

本文详细解析了LAMMPS in文件的配置方法,手把手教你完成金属分子动力学模拟的全流程。从软件环境准备、势函数选择,到使用Materials Studio构建模型、编写in文件进行能量最小化与系统弛豫,再到实施单轴拉伸生产模拟并提取应力应变数据,最后通过Python和OVITO进行结果分析与可视化,提供了完整的实战指南和常见问题排查技巧。

weixin_28475533的博客 527

【App开发】02:Android Studio项目环境设置

本文详细介绍了使用Android Studio创建新项目的完整流程。主要包括:1. 项目创建步骤,2. 构建配置 - Gradle下载及镜像源设置;3. 设备连接,4. 项目删除的正确方式。

正经教主是个热衷于正经学习分享的教主。 7181

LS-DYNA中的流固耦合

在LS-DYNA中对流固耦合问题的求解提供了两种方法,ALE流固耦合和基于ICFD的流固耦合。本文将对两种方法的各自特点进行分析。 ALE方法的流固耦合 适用范围 ALE求解器主要用于层流。ALE求解器也不是完全的NS求解器,因此不考虑边界层的影响,比如阻力。流体粘性效应仅通过材料模型获得,也就是*mat_null的MU。ale求解器是为了求解高压高速度梯度的短时问题而开发的。该求解器并不适用于求解低压力梯度问题比如声学,也不适用于长时间问题(秒的尺度甚至更长)。时间的限制是显式时...

m0_69812055的博客 8557

Android应用图标微技巧,8.0系统中应用图标的适配

为什么要进行应用图标适配? 可能有些朋友觉得困惑,应用图标这种东西从Android远古时代就已经有了,而且功能格外的简单,就是放张图片而已,这有什么好适配的呢?但实际上,在当前Android环境下,应用图标功能是极其混乱的。 如果说要讲一讲手机应用图标的历史,其实要从苹果开始讲起。在上世纪80年代,苹果还在设计Lisa和Macintosh电脑的时候,乔布斯就是个圆角矩形的狂热支持者。当时苹果的工程师写出了一套绝妙的算法,可以在电脑上绘制出圆和椭圆,所有观看者都被震惊了,除了乔布斯,因为乔布斯觉得圆和椭圆虽然

一身清贫怎敢入繁华 605

基于Simulink的强化学习(DQN)自主调节占空比

摘要:本文介绍了一种基于Simulink的强化学习(DQN)方法,用于Buck变换器的自主占空比调节。通过建立马尔可夫决策过程模型,设计了包含状态、动作和奖励函数的强化学习框架,并在Simulink中实现了Buck主电路、RL接口模块和DQN智能体的集成。实验表明,相比传统PID控制,DQN方法在负载突变和输入跌落等复合扰动下表现出更好的鲁棒性,电压超调小于1%,恢复时间缩短至0.3ms。文章还详细讨论了关键设计技巧、工程挑战及对策,并提出了多目标优化、先进算法应用等扩展方向,为智能电源控制提供了新思路。

amy_mhd的博客 75

Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题

摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。

ip0417的博客 230

Android 8.0系统的应用图标适配

有些朋友可能会觉得这种分成两层的应用图标设计太过于麻烦,不适配可以吗?也有些朋友可能会说,自己的APP并没有做过应用图标适配,在Android 8.0手机上也照样跑得好好的。 事实上,这个新功能Google是准备让它慢慢过渡的,而不是一次性就强推给所有的开发者。如果你的APP中的targetSdkVersion是低于26的,那么就可以不用进行应用图标适配,Android 8.0系统仍然是向下兼容...

cishaohui的博客 504

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

XP系统安装Android Studio 3.5.3并建立Java或Native C++工程,然后在安卓手机上运行

Android Studio 3.5.3可以在Win7 SP1系统下直接解压使用。如果是XP SP3或者64位XP SP2系统的话就必须要先安装one core api 4.0.1,否则运行不了studio.exe或者studio64.exe。下载地址:https://github.com/shorthorn-project/One-Core-API-Binaries/releases/download/4.0.1/One-Core-API-Binaries-4.0.1.zip。

ZLK1214的专栏 944

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

学习笔记 | Android Studio安卓开发入门经验总结 干货

前言最近完成了移动编程课程的学习,加上其它安卓开发项目的经历,感觉收获颇为丰富。故在此总结整理安卓开发中比较常见的一些问题,技巧和指南。0.目录1.开发环境Android Studio是谷歌基于IntelliJ IDEA社区版开发的,面向安卓开发的免费集成开发环境。其方便快捷的开发调试和可视化UI编辑可以令安卓开发事半功倍。本项目所使用集成开发环境为Android Studio 4.1.1,编程语言为Java,使用JDK 1.8,使用Gradle 4.1.1进行项目工程构建和依赖管理。2. 项目新建An..

一颗蚂蚱 2369

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Cocos Creator 3.8.6 安卓打包避坑指南:NDK版本选择与Android Studio配置全解析

本文详细解析了Cocos Creator 3.8.6安卓打包过程中的NDK版本选择与Android Studio配置要点,提供实战优化方案。重点介绍NDK r18-r21版本的适配性、环境变量配置技巧及构建参数优化,帮助开发者规避常见错误,提升打包效率与成功率。

mac99的博客 1008
上一篇: window server 环境下mysql数据库备份、压缩bat脚本
下一篇: PowerDesigner逆向工程导入MYSQL数据库
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值