Android Studio 3.0.0更新和踩坑

2017年10月份Android Studio 3.0.0发布了最新版本,让我们看下他有那些新的功能。升级到此版本后踩的坑。

1.支持的语言

1.1.Java 8语言功能支持

现在可以使用某些Java 8语言功能并使用Java 8构建的库。不再需要 Jack。应该首先 禁用Jack 以使用内置的支持Java 8的默认工具链。

要更新项目以支持新的Java 8语言工具链,请将 Project Structure对话框中的 Source Compatibility 和 Target Compatibility 更新为1.8 (单击 File > Project Structure)。


Android Studio 3.0.0更新和踩坑_第1张图片
java8

1.2 Kotlin支持

如Google I / O 2017所宣布,Kotlin编程语言现已在Android上正式受到支持。所以在这个版本中,Android Studio包含Kotlin语言支持Android开发。

通过将Java文件转换为Kotlin(点击 Code > Convert Java File to Kotlin File),或者使用新建项目向导创建一个新的启用Kotlin的项目,可以将Kotlin整合到项目中。


Android Studio 3.0.0更新和踩坑_第2张图片
kotlin

2.自动化构建工具

使用Gradle 3.0.0的Android插件

Gradle的新Android插件 包括各种改进和新功能,但它主要提高了具有大量模块的项目的构建性能(估计对组件化项目比较友好)。当使用这个新插件用于大型项目时,您应该体验以下内容:

  1. 由于使用了新的延迟依赖性解决方案,使得 Gradle 拥有更快的构建配置时间;
  2. 只针对您正在构建的项目和变体 进行 Variant-aware 依赖解析;
  3. 对代码或资源应用简单的更改时,会拥有更快的增量构建时间;
  4. 注意:这些改进需要重大的改进,从而破坏了插件的一些行为、DSL和API。升级到 3.0.0 版本可能需要更 改您的构建文件和Gradle插件。

3.分析工具

新的Android Profiler 取代了Android监视器工具,并提供了一套新的工具来实时测量应用程序的CPU,内存和网络使用情况。您可以执行基于样本的方法跟踪来执行代码,捕获堆内存,查看内存分配以及检查网络传输文件的详细信息。

要打开,请单击 View > Tool Windows > Android Profile (或单击工具栏中的 Android Profiler )。

窗口顶部的事件时间轴显示触摸事件,按键和活动更改,因此您有更多的上下文可以了解时间轴中的其他性能事件。


Android Studio 3.0.0更新和踩坑_第3张图片
分析工具

3.1 CPU Profiler

CPU Profiler可帮助您通过触发示例或仪表化的CPU跟踪,来分析应用程序的CPU线程使用情况。然后,您可以使用各种数据视图和过滤器来解决CPU性能问题。

Android Studio 3.0.0更新和踩坑_第4张图片
CPU profiler

3.2 Memory Profiler

Memory Profiler 可以帮助您 识别 内存泄漏和内存流失 导致的卡顿、冻结甚至应用程序崩溃。它显示了应用程序内存使用的实时图形,可以捕获 a heap dump,强制垃圾收集和跟踪内存分配。


Android Studio 3.0.0更新和踩坑_第5张图片
Memory Profiler

3.3 Network Profiler

网络分析器允许您监视应用程序的网络活动,检查每个网络请求的有效负载,并链接到生成网络请求的代码。

Android Studio 3.0.0更新和踩坑_第6张图片
Network Profiler

3.4 APK剖析和调试工具

Android Studio现在允许您对任何 APK 进行配置和调试,而无需将其从Android Studio项目中构建 - 只要构建APK 即可启用调试,并且您可以访问调试符号和源文件。

要开始使用,请从Android Studio Welcome屏幕中单击 Profile or debug APK。或者,如果您已经打开了项目,请从菜单栏中单击 File > Profile or debug APK。这将显示已解压缩的APK文件,但它不会反编译代码。因此,要正确添加断点和查看堆栈跟踪,您需要附加Java源文件和本机调试符号。

Android Studio 3.0.0更新和踩坑_第7张图片
APK分析
Android Studio 3.0.0更新和踩坑_第8张图片
APK包分析

3.5 设备文件浏览器

新的设备文件资源管理器允许您检查连接的设备的文件系统,并在设备和计算机之间传输文件。这将替代DDMS中可用的文件系统工具。

要打开,请单击 View > Tool Windows > Device File Explorer。

Android Studio 3.0.0更新和踩坑_第9张图片
设备文件

4.资源方面

4.1 自适应图标向导

Image Asset Studio现在支持绘制矢量图,并允许您为Android 8.0创建自适应启动器图标,同时为旧设备创建传统图标(“旧”图标)。

要开始,请右键单击项目中的res文件夹,然后单击 New > Image Asset。在 Asset Studio 窗口中,选择启动器图标(自适应和旧版)作为图标类型。

注意:您必须设置compileSdkVersion为26或更高才能使用自适应启动器图标。

Android Studio 3.0.0更新和踩坑_第10张图片
自适应图标

4.2 支持字体资源

为了支持Android 8.0中的新字体资源,Android Studio包含一个字体资源选择器,用于将 字体 绑定 到应用程序中或配置项目以下载设备上的字体(如果可用)。布局编辑器还可以预览布局中的字体。

要尝试下载字体,请确保您的设备或模拟器正在运行Google Play Services v11.2.63或更高版本

Android Studio 3.0.0更新和踩坑_第11张图片
支持字体资源

4.3布局编辑器

在布局编辑器已经更新了一些增强功能,包括以下内容:

  • 新的工具栏布局和图标。
  • 在组件树中更新布局。
  • 改进的拖拽 视图插入。
  • 在编辑器下面显示新的错误面板,显示修复建议的所有问题(如果可用)。
  • 使用 ConstraintLayout 构建的各种UI增强功能 ,包括以下内容:
  1. 新支持 创建 分界线(栅栏)。
  2. 新支持创建组:在工具栏中,选择 Guidelines > Add Group (需要ConstraintLayout 1.1.0 beta 2 或更高版本)
  3. 创建链接的新UI:选择多个视图,然后右键单击并选择 Chain。


    Android Studio 3.0.0更新和踩坑_第12张图片
    布局编辑器

4.4布局检查器

该布局检查包括增强您的应用布局,以使其更容易调试问题,包括分组属性分为普通类和两个新的搜索功能,查看 View Tree 和 Properties 窗格。


Android Studio 3.0.0更新和踩坑_第13张图片
image

5.更新到android studio3.0.0坑

5.1 annotationProcessor

Warning:android-apt plugin is incompatible with future version of Android Gradle plugin. Please use ‘annotationProcessor' configuration instead.

把apt改成annotationProcessor

//apt ‘com.jakewharton:butterknife-compiler:8.5.1'
annotationProcessor ‘com.jakewharton:butterknife-compiler:8.5.1'

5.2 AAPT2

Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.

原因:现在使用的是APPT2为默认

关掉AAPT2即可,在Project/gradle.properties中添加 android.enableAapt2=false

5.3 gradle打包,自定义apk名称代码报错(Cannot set the value of read-only property 'outputFile' )

解决方案:修改文件名代码请这样写

android.applicationVariants.all {variant ->
        variant.outputs.all {           
               outputFileName = "xinlebao_${defaultConfig.versionName}_${releaseTime()}.apk"        
        }         
}

5.4 .gradle文件

Android Studio 3.0.0更新和踩坑_第14张图片
gradle

们可以看到,谷歌buildToolsVersion构建工具的版本给“干掉了”,在以前的版本中,buildToolsVersion也会给项目的构建带来很多错,现在谷歌爸把它给“干掉了”;还有就是下面的依赖换成了implementation,那么它和compile有什么区别呢?

compile和api

api完全等同于compile,二者没有区别。我们大家都知道,随着Android版本的更新,有很多过时的类和方法,compile亦是如此,我们可以把compile理解成api的过去式。

api和implementation

这两个是AS3.0版本中新增的指令,下面用一张图来说明一啊两者的区别:


Android Studio 3.0.0更新和踩坑_第15张图片
image

5.5 多渠道打包

多渠道

根据官网说法:

You must assign each product flavor you configure to one of the flavor dimensions.

你必须指定一种 flavor dimensions
void flavorDimensions(String... dimensions)

修改如下:

flavorDimensions "default"
productFlavors {
xiaomi {dimension "default"}
}

productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

定义一个 flavorDimensions 然后在每个渠道中加入dimension

你可能感兴趣的:(Android Studio 3.0.0更新和踩坑)