谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快。(英语一般,有些翻译不太好)
下载地址
https://developer.android.google.cn/studio/archive.html
选择显示全部
即可看到下载地址,这里给出来了。
Windows (64-bit): android-studio-ide-171.4010489-windows.zip (702075896 bytes)
https://dl.google.com/dl/android/studio/ide-zips/3.0.0.0/android-studio-ide-171.4010489-windows.zipWindows (32-bit): android-studio-ide-171.4010489-windows32.zip (701541040 bytes)
Mac: android-studio-ide-171.4010489-mac.zip (701134644 bytes)
https://dl.google.com/dl/android/studio/ide-zips/3.0.0.0/android-studio-ide-171.4010489-mac.zipLinux: android-studio-ide-171.4010489-linux.zip (700534332 bytes)
https://dl.google.com/dl/android/studio/ide-zips/3.0.0.0/android-studio-ide-171.4010489-linux.zip
安装
可以和你之前安装的稳定版共存的,把压缩包的文件夹解压放到别的目录即可。
启动studio64.exe(如果您运行的是 32 位计算机,则启动 studio.exe)
变更您的更新方式
默认情况下,每个 Android Studio 安装都会通过您最初下载时所用的渠道(Canary、测试版或稳定版)接收更新。 如果您希望变更某个安装的更新渠道,请执行以下步骤:
- 在 Android Studio 中,选择 File > Settings (或者,在 Mac 上,选择 Android Studio > Preference)。
- 在左侧面板中,选择 Appearance & Behavior > System Settings > Updates。
- 确保已选中 Automatically check for updates,然后从下拉列表中选择一个渠道。
在您的渠道有新版本 Android Studio 可用时,您将在 IDE 中收到一个气泡通知。 如果您最初选择了忽略该通知,您也可以稍后通过点击 Help > Check for Update(或者,在 Mac 上,点击 Android Studio > Check for Updates)来检查更新。
新功能
ide的改变
- 更新了基础ide到idea的2017.1版本,包括参数提示,语义突出显示,搜索中的即时结果等等。
- 更多新的lint检查
- Instant run修复了issue234401 的问题,如果程序在断点上暂停,app就重新启动,但是如果应用程序没有在断点上暂停,那么当您只进行方法实现更改时,不应重新启动并且热插拔应该工作
kotlin语言支持
Android Studio 3.0包括对Kotlin语言的支持,通过将Java文件转换为Kotlin(单击Code>Convert Java File to Kotlin File)
或通过使用new Project
向导创建启用Kotlin的新项目,可将Kotlin合并到项目中。点击了解有关Kotlin和Android的更多信息
支持Java8
Android Studio 3.0引入了对Java 8库和某些Java 8语言功能的内置支持,Jack不再是必需的,你首先应该禁止Jack使用改进的java 8支持内置的默认工具。点击了解更多信息。 (以前是通过jack来支持java8的,现在可以抛弃了,自带支持)
新的探查器
Android Studio中3.0提供您的应用程序的活动的实时、统一的视图。而Android Profiler窗口取代了Android的监控 窗口。要打开Android的探查器,请按照下列步骤操作:
- View > Tool windows > Android Profiler (你也可以点击工具栏中的)
- 选择您想要从Android探查器工具栏配置的设备和应用程序,点击network,CPU或MEMORY时间表打开每个探查的更详细视图。
有关每个新的探查器的更多信息,请参阅以下页面:
作为此更新的一部分,logcat已移至单独的窗口
即时应用(Instant App)的支持
Android Studio 3.0允许您在项目中使用两种新的模块类型:即时应用模块和功能模块来创建即时应用
Android Studio 3.0还包括一个新的重构模块化操作和App Links Assistant,以帮助您实施即时应用。有关Instant Apps的详细信息,请参阅Android Instant Apps
APK Debugger(APK调试者)
Android Studio 3.0中的新版APK调试器可让您配置和调试APK,而无需从Android Studio项目中构建它们,只要它们是可调试的。 更多信息参阅Profile and Debug Pre-built APKs。
新的文件管理器
新的设备文件资源管理器工具窗口允许您与连接的设备的文件系统无缝交互。
您可以点击查看手机中的各种文件,并将文件复制到您的计算机。此功能取代了以前通过DDMS的文件系统管理。 这点非常赞,以前复制文件可是麻烦得一笔。
支持Andriod O 开发者预览
ndroid Studio 3.0增加了对Android O的支持,其中包括:
一个新的自适应图标向导,允许您创建新的自适应启动器图标资源,并在不同的设备上进行预览。启动自适应图标向导方法是: 右键你项目的
res
文件夹,然后点击New > Image Asset > Launcher Icons (Adaptive and Legacy).
,更多信息请查看Adaptive Icons新的XML字体预览,字体选择工具以及对可下载字体的支持,更多信息请参阅Working With Fonts
新模板
Android Studio 3.0在新项目和新模块向导中包含一组新的模板,因此您可以开始使用Android Things开发物联网设备,更多请查阅Android Things
布局编辑器改进
Android Studio 3.0中的布局编辑器包含许多新的功能增强功能,其中包括:
- 更新的组件树,具有改进的拖放视图插入
- 新错误面板
- 对视图障碍和组的支持
- 增强链创造 (这个我也没懂意思)
布局检索改进
Android Studio 3.0中的布局检查器包括新的增强功能,可以更轻松地调试应用程序布局的问题。包括将属性分组为常规类别,并在View Tree"
和Properties
面板中将新的搜索功能分组。打开的方法为:Tools > Android > Layout Inspector
谷歌Maven仓库
Android Support库Maven依赖关系现在可以在新的Maven仓库Android SDK Manager外部使用,结合命令行sdkmanager工具和Gradle,这种新的分发方法简化了使用连续集成系统的Maven依赖关系管理,要使用新的Maven仓库,请将URL添加到build.gradle文件的repository库中,如下所示:
repositories {
maven {
url "https://maven.google.com"
}
}
更多信息参阅: Google Maven and offline repositories
APK分析器的改进
Android Studio 3.0对APK分析工具进行了以下改进:
- 显示除包之外的字段,类和方法之外的字段
- 顶部显示和隐藏字段和方法的新过滤选项
- 在树视图中,以斜体显示的节点是未在DEX文件中定义的引用
- 对于启用Proguard构建的APK,您可以加载向DEX查看器添加功能的Proguard映射文件,其中包括:
- 粗体表示节点的节点不应该删除,当收缩编码
- 启用一个按钮,使得在收缩过程中被删除的节点可见
- 启用一个按钮,显示树视图中由Proguard混淆的节点的原始名称
新的Gradle插件
Android plugin 3.0.0-alpha1及更高版本主要解决大量模块的Android项目的构建性能问题。当使用这些项目的新插件时,您应该体验到以下内容:
- 更快的配置时间,因为延迟了依赖的解析。
Variant-aware
依赖解决方案仅适用于您正在构建的项目和Variant。- 在对代码或资源应用简单更改时,加快增量构建时间。
新的Android模拟器功能
Android模拟器还包括许多新功能,包括以下内容:
- 新的API Level 24系统映像和Android O Beta系统映像,包括Google Play商店,以促进您的应用程序的端到端测试,并帮助您保持Google Play服务与您的AVDs保持同步。
支持Windows和Linux机器上的OpenGL ES 3.0系统图像API级别24及更高版本,并在较老的模拟器系统映像上对OpenGL ES 2.0图形性能进行显着改进。
- 提示:目前正尽最大努力使OpenGL ES 3.0能从英特尔、英伟达和AMD的所有gpu自动启用,如果运行OpenGL ES 3.x应用程序时遇到问题,系统可能尚未自动启用。您可以通过修改
~/.android/advancedFeatures.ini
进行手动启用OpenGL ES 3.0。修改为:GLESDynamicVersion = true
- 提示:目前正尽最大努力使OpenGL ES 3.0能从英特尔、英伟达和AMD的所有gpu自动启用,如果运行OpenGL ES 3.x应用程序时遇到问题,系统可能尚未自动启用。您可以通过修改
一种新的更简单的方法来从Android模拟器生成您的应用的错误报告。
- 个新的链接,可以在Android问题跟踪器上为Android团队快速提交与模拟器相关的错误(
Emulator Tool Bar > Extended Controls > Help > Emulator Help > File a Bug
) - 一个新的UI来配置Android模拟器使用的代理设置。
Extended Controls > Settings > Proxy.
- 在模拟器上支持Android Wear设备的旋转输入。
更多模拟器的升级,请查阅Android Emulator Release Notes.
探查器详解(Android Profiler)
Android Studio 3.0中的新的Android Profiler窗口替代了Android Monitor工具,这些新的分析工具可为应用程序的CPU,内存和网络活动提供实时数据。您可以执行sample-based的方法跟踪代码执行、捕获堆转储、查看内存分配和检查网络传输文件的详细信息。
要打开Android Profiler窗口,请按照下列步骤操作:
- 点击
View > Tool Windows > Android Profiler
(你也可以点击工具栏的). - 在Android Profiler窗口的顶部,如图所示,选择设备①和您想要配置的应用程序②。
如果您已通过USB连接设备但未看到它,请确保已启用USB调试。
- 如果您使用Android模拟器或已经Root的设备,Android Profiler将列出所有正在运行的进程,即使它们可能是不可调试的。当您启动一个可调试的应用程序时,该进程是默认选择的。
Android Profiler现在显示了一个共享的时间线视图(下图),其中包括一个时间线,用于CPU、内存和网络使用的实时图。窗口还包括时间线缩放控件③,跳转到实时更新的按钮④以及显示活动状态,用户输入事件和屏幕旋转事件的事件时间轴⑤。
此共享时间轴视图仅显示时间线图。要访问详细的分析工具,请单击与您要检查的性能数据相对应的图表。例如,要访问工具以检查堆并跟踪内存分配,请单击MEMORY图。
有关每个概要分析工具的更多文档,请参阅以下内容:
- Inspect CPU Activity and Method Traces with CPU Profiler
- Inspect the Java Heap and Memory Allocations with Memory Profiler
- Inspect Network Traffic with Network Profiler
开启高级探查
默认情况下并不是所有的分析数据都可见。如果您看到一条消息,说“Advanced profiling is unavailable for the selected process”,则需要在运行配置中启用高级探查。
为了显示高级分析数据,Android Studio必须将监控逻辑注入到已编译的应用程序中。高级分析提供的功能包括:
- 所有分析器窗口上的事件时间轴
- 内存分析器中已分配对象的数量
- 内存分析器中的垃圾收集事件
- 有关Network Profiler中所有传输文件的详细信息
要启用高级概要分析,请按照下列步骤操作:
- 选择
Run > Edit Configurations
- 在左窗格中选择您的应用程序模块。
- 单击
Profiling
选项卡,然后选中Enable advanced profiling.
。
现在再次构建并运行应用程序就可以访问完整的概要分析功能集。但是,请注意,高级分析会降低您的构建速度,因此只有在您要开始对应用程序进行概要分析时,才应启用它。
apk调试器
Android Studio 3.0允许您配置和调试APK,而无需从Android Studio项目中构建它们。但是,您需要确保使用了APK的调试版本。
要开始调试APK,从Android Studio欢迎屏幕上单击Profile或debug APK。或者,如果你已经打开了一个项目,点击 File > Profile
或者从工具栏点击 debug APK。在下一个对话框窗口中,选择想要导入Android Studio的APK,然后单击OK。您应该会看到类似于下图所示的内容。
提示: 当您将APK导入Android Studio时,IDE会在您的主目录中创建一个新项目,并制作目标APK的本地副本。
在Project
窗格中的Android视图允许您检查您的APK的以下内容:
APK file
: 双击APK打开APK分析器。manifests
: 从APK中提取出来应用清单。java
: 包含Android Studio反汇编的Java代码。你的APK的DEX文件中的smali文件对应一个Java类。cpp
: 如果你的app包含Native代码,这个目录包含了你的native库(.so文件)。External Libraries
: 包含Android SDK。
您可以立即使用Android profiler来开始测试应用程序的性能,但是profiler目前只适用于app的Java进程。使用断点来调试应用程序的Java和native代码,您需要首先Attach Java sources
并attach native debug symbols
。
附加Java源(Attach Java sources)
默认情况下,Android Studio从您的APK中提取Java代码,并将其保存为.smali文件。要使用断点调试Java代码,您需要将Java源附加到要调试的每个.smali文件中。
要附加Java源,请按照下列步骤操作:
- 从
Project
窗格中双击.smali文件(使用Android视图)。打开文件后,编辑器将显示一个黄色警告横幅,要求您选择Java源,如上面的图所示。 - 单击编辑器窗口顶部的
Attach Java sources
- 打开应用程序的java源文件的目录,然后单击
open
。
Project
窗口中,IDE将使用相应的.java文件替换.smali文件。您现在可以按照通常的方式添加断点并调试应用程序。
附加Native调试符号(Attach native debug symbols)
如果你的apk文件包括so文件不包含断点调试,IDE会在“Messages”窗口中显示警告,类似于上图所示。不附加可调试Native库不能调试APK的Native代码或断点,如果您还没有这样做,请确保下载NDK和工具。
要附加可调试的Native库,请按照下列步骤操作:
- 在
Project
窗口的cpp目录下,双击一个不包含调试符号的Native库文件,编辑器会显示APK支持的所有ABIs的表。 - 点击编辑器窗口右上角的
ADD
- 导航到包含要附加的可调试Native库的目录,然后单击“OK”。
- 如果APK和可调试的Native库是使用不同的工作站构建的,那么您需要通过以下步骤指定调试符号的本地路径:
- 在编辑器窗口的
Path Mappings
部分中编辑Local Paths
列中的字段,添加本地路径到缺失调试符号,如下图所示。IDE自动将路径映射到本地NDK下载中的路径。
- 在编辑器窗口的
- 点击 Apply。
现在您应该在Project
窗口中看到本地源文件。就可以打开这些本机文件添加断点,并像往常一样调试应用程序。
设备文件管理器
Android Studio3.0 包括设备文件资源管理器,您可以在Android设备上查看,复制和删除文件。当检查由您的应用程序创建的文件或要将文件传输到设备或从设备传输文件时j就非常有用。
要查看硬件设备上的文件,必须先设置用于开发的设备,例如usb调试。有关更多信息,请参见在硬件设备上运行应用程序。
要使用设备的文件系统,请按照以下步骤操作:
Click View > Tool Windows > Device File Explorer
, 或单击工具窗口栏中的设备文件资源管理器按钮打开设备文件资源管理器。- 从下拉列表中选择一个设备。
- 右键一个文件或目录 可以创建一个新的文件或目录、将选中的文件或目录保存到您的机器上、上传、删除或同步。双击一个文件可以在Android Studio中打开它。
Android Studio会将您以这种方式打开的文件保存在项目外部的临时目录中,如果您对使用“Device File Explorer”打开的文件进行了修改,并希望将更改保存到手机,则必须手动将该文件覆盖回手机。
获取设备的文件时,下目录特别有用:
- data/data/app_name/ 包含存储在内部存储上的应用程序的数据文件
sdcard/ 包含存储在外部用户存储上的用户文件(图片等)
在设备文件浏览器中,不是所有文件都是可见的。例如,在
data/data/
目录中,与未调试设备上的应用程序对应的条目不能在设备文件浏览器中展开。
使用Java 8语言功能
Android Studio 3.0预览1及更高版本支持所有Java 7语言功能和Java 8语言功能的一部分,这些功能因平台版本而异。此页面描述了可以使用的Java 8语言功能,如何正确配置项目以使用它们以及您可能遇到的任何已知问题。
在开发Android应用程序时,使用Java 8语言功能是可选的。您可以将项目的源和目标兼容性值保留为Java 7,但您仍然需要使用JDK 8进行编译。
Android Studio现在提供内置支持使用某些Java 8语言功能和使用它们的第三方库。如下图所示,默认的工具实现了新的语言功能,通过执行字节码转换,称为desugar
,对javac编译器的输出。jack
不再被支持,你首先应该关闭jack,使用改进的java 8支持内置的默认工具。
要开始使用支持的Java 8语言功能,请将Android插件更新为3.0.0-alpha1(或更高版本),并将以下内容添加到模块的build.gradle文件中:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
如果Android Studio检测到您的项目正在使用Jack,Retrolambda或DexGuard,则IDE会使用这些工具提供的Java 8支持。但是,请考虑迁移到默认工具内置工具
支持的Java8语言特性和API
Android Studio不支持所有Java 8语言功能,但将来会在IDE中添加更多功能。根据您正在使用的minSdkVersion,某些功能和API现在可以使用,如下表所述。
Java 8语言特性 | 兼容的minSdkVersion |
---|---|
Lambda expressions | 所有版本,但是只有当lambda的所有值都是可序列化的时,才支持lambda序列化。 |
Method References | 所有版本 |
Type Annotations | 所有版本.但是,类型注释信息在编译时可用,但在运行时不可用。此外,平台支持API级别24和以下的类型,但不支持ElementType 。TYPE_USE 或ElementType.TYPE_PARAMETER 。 |
Default and static interface methods | 所有版本 |
Repeating annotations | 所有版本 |
Java8语言API | 兼容的minSdkVersion |
---|---|
java.lang.annotation.Repeatable | API level 24 or higher. |
AnnotatedElement.getAnnotationsByType(Class) | API level 24 or higher. |
java.util.stream | API level 24 or higher. |
java.lang.FunctionalInterface | API level 24 or higher. |
java.lang.reflect.Method.isDefault() | API level 24 or higher. |
java.util.function | API level 24 or higher. |
除了对java语言和API 8以上,Android Studio3以及后面的版本会支持所有Android API级别使用try-with-resources
迁移到默认工具
如果Android Studio发现您的项目使用的是Jack、Retrolambda或DexGuard,那么IDE将使用这些工具提供的Java 8支持。但是,与默认的工具链相比,这些工具少一些功能和支持。因此,请按照本节中的说明迁移到Android Studio的默认工具。
从Jack迁出
Jack工具已经被弃用了,按照 这个公告 , 如果您的项目使用了Jack,您应该迁移到使用Android Studio内置的Java8默认工具,使用默认工具还包括对使用Java 8语言功能的第三方库的支持,Instant Run,和依赖于中间.class文件的工具。
要禁用Jack并切换到默认工具,只需从模块的build.gradle文件中删除jackOptions块:
android {
...
defaultConfig {
...
// 移除下面这一块
jackOptions {
enabled true
...
}
}
// 保持以下配置
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
从Retrolambda迁移
与Android Studio的默认工具链相比,Retrolambda不支持使用Java 8语言功能的第三方库。要迁移到默认工具链,请从项目级build.gradle文件中删除Retrolambda依赖关系:
// 移除以下插件
apply plugin: 'me.tatarka.retrolambda'
...
// 迁移有用的配置后,删除此块。
retrolambda {
...
//如果您有要保留的Java VM的参数
// 将它们移动到项目的gradle.properties文件
jvmArgs '-Xmx2048m'
}
禁用对Java 8语言功能的支持
如果您遇到与Java 8语言功能的新支持相关的问题,可以通过将以下内容添加到gradle.properties文件来禁用它:
android.enableDesugar=false
下一篇详解 cpu、内存、网络这三个探测器,还有一些坑