在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为Android创建出色的应用,这让我们感动不已。无论你是已经复工回到办公室,还是依旧在家远程办公,都需要得心应手的工具。为此我们发布了Android Studio 4.0,为大家带来全新的工具和现有工具的诸多改进,帮助开发人员更智能地编程,更快地构建,并设计出用户信赖的应用。
Android Studio 4.0的亮点包括:新的Motion Editor(动作编辑器),让你的应用栩栩如生;Build Analyzer(构建分析器),用来探索构建速度下降的原因;以及一众Java 8语言API,无论你的应用的最小API级别是多少都能用。根据用户反馈,我们还大幅改动了CPU Profiler(CPU分析器)的用户界面,以提供更直观的工作流程和更易用的线程活动并排分析。改进的Layout Inspector(布局查看器)现在可以提供应用UI的实时数据,因此你可以轻松准确地调试设备上显示的内容。
每个新版本的发布都要感谢测试用户的反馈信息。如果你已准备就绪,现在就可以访问官方网站下载Android Studio 4.0(http://d.android.com/studio)。
MotionLayout API(https://developer.android.com/training/constraint-layout/motionlayout)扩展了ConstraintLayout的丰富功能,可帮助Android开发人员在应用中管理复杂的运动和小部件动画。在Android Studio 4.0中,新的Motion Editor让这个API用起来更方便。它提供了用于创建、编辑和预览MotionLayout动画的强大界面。你用不着再创建和修改复杂的XML文件,Motion Editor会为你生成它们,并支持约束集合、过渡、关键帧和视图属性的编辑。如果你想查看编辑器创建的代码,只需点一下即可。对于正在使用ConstraintLayout的开发人员来说,这个IDE可以轻松将其转换为MotionLayout。更多信息参考:http://d.android.com/studio/write/motion-editor
在Motion编辑器中创建、编辑和预览动画
想要调查特定属性的值的源头?或者想通过嵌套视图的实时3D表示,更轻松地检查视图层次?借助新的Layout Inspector,你可以获得正在运行的应用中的最新数据,并获得关于资源解析的深度信息,从而更直观地调试UI。
使用Live Layout Inspector实时调试应用UI
从主菜单选择View > Tool Windows > Layout Inspector就可以启用实时Layout Inspector。部署到运行API 29或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用UI的3D模型。它可以在当前运行应用上的视图之间导航、动画化和过渡,同时还能保持像素级调试UI的能力。更多信息参考:https://medium.com/androiddevelopers/layout-inspector-1f8d446d048
使用Layout Validation在多个屏幕上对比UI
当你为多种屏幕规格、屏幕尺寸和分辨率开发应用时,需要验证对UI所做的更改在所支持的每个屏幕上都能正常显示。使用Layout Validation(布局验证)窗口,你可以同时在多个不同的屏幕和配置上预览布局,轻松确保你的应用兼容各种屏幕尺寸。单击IDE右上角的Layout Validation选项卡即可启用。
CPU Profiler UI升级
改进的CPU Profiler UI
CPU Profiler(https://developer.android.com/studio/profile/cpu-profiler)可以提供关于应用的线程活动和跟踪记录的大量信息。在Android Studio 4.0中,CPU记录现在与Profiler主时间轴分开显示,并按组分类以简化分析过程。你可以上下移动组,或者在组中拖放项目以定制界面。
线程活动的并排分析更轻松
为了更轻松地进行并排分析,你现在可以在Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用W,A,S和D键精确缩放和平移)。我们还重新设计了System Trace(系统跟踪)UI,为事件添加了各自的颜色来方便区分,对线程进行排序,把较忙的线程放在前面,而且现在你可以只查看所选线程的数据。最后,我们改进了CPU Profiler的质量,显著降低了录制错误率。更多信息参考:http://d.android.com/studio/releases#cpu-profiler-upgrades
编写R8规则时的智能编辑器功能
R8是在Android Gradle插件3.4.0中引入的,可将desugaring、缩减、混淆、优化和dexing合并为一个步骤,从而显著提高构建性能。在为R8创建规则文件时,Android Studio现在提供了智能编辑器功能,例如语法高亮显示、自动完成和错误检查。该编辑器还与你的Android项目集成,为所有类、方法和字段提供完整的符号补全,还有快速导航和重构。
核心Android Studio IDE已更新,加入了IntelliJ IDEA 2019.3和2019.3.3版本以来的改进。这些改进主要是整个IDE的质量和性能改进。
实时模板(Live Templates)是IntelliJ的一项便捷功能,允许你输入简单的关键字将常见的构造插入代码中。Android Studio现在为你的Kotlin代码提供了Android专属的实时模板。例如,只需键入Toast,然后按Tab键即可快速插入Toast的样板代码。有关可用实时模板的完整列表,请转至Settings(或Preferences)中的Editor > Live Templates。
对于编写C++的开发人员,我们已转向clangd(https://clangd.llvm.org/)作为主要的语言分析引擎,用于代码导航、完成、检查以及显示代码错误和警告。现在Android Studio还打包了clang-tidy。要配置Clangd或Clang-Tidy行为,请转到Settings(或Preferences),导航到Languages & Frameworks > C/C++ > Clangd/Clang-Tidy,然后配置选项。
Android Gradle插件4.0.0使用Java8语言API(无论你的应用的最低API级别如何)对Android Studio的Bulid Analyzer提供支持,并在动态功能(Dynamic Feature)模块之间创建了功能对功能的依赖。有关完整的更新列表,请阅读Android Gradle插件4.0.0发行说明(http://d.android.com/studio/releases/gradle-plugin#4-0-0)。
使用Build Analyzer解决构建性能中的瓶颈
Android开发人员依靠各种Gradle插件和自定义构建逻辑来为应用量身定制构建系统。但是,过时或错误配置的任务可能会导致更长的构建时间,不仅令人沮丧,还会拖累生产率。Build Analyzer可以高亮显示最影响构建时间的插件和任务,并提供缩短时间的步骤建议,从而帮助你了解和解决构建中的瓶颈。更多信息参考:http://d.android.com/studio/build/build-analyzer
早期版本的Android Gradle插件通过称为desugaring的过程,在所有API级别上支持各种Java8语言功能,例如lambda表达式和方法引用。在Android Studio 4.0中,无论你的应用的minSdkVersion如何,都可以使用desugaring引擎来支持Java语言API。这意味着你现在可以使用标准语言API了,以前它们只在最新的Android版本中可用(例如java.util.stream,java.util.function和java.time)。更多信息参考:http://d.android.com/studio/write/java8-support
功能上的依存关系
使用Android Gradle插件4.0.0及更高版本时,你现在可以指定一个动态功能模块依赖于另一个功能模块。这种关系可确保你的应用具有所需的模块来提供新的功能,从而减少请求并更好地模块化。例如,:video功能可以依赖:camera功能。如果用户想使用录制视频的功能,则你的应用在请求:video时会自动下载所需的:camera模块。更多信息参考:http://d.android.com/studio/releases#4-0-0-feature-plugin
Android Gradle插件具有对很多现代库(例如数据绑定和视图绑定)及构建功能(例如自动生成的BuildConfig类)的内置支持。但是,你可能不是每个项目都需要这些库和功能。在该插件的4.0.0版本中,你现在可以单独禁用构建功能,如下所示,这可以优化大型项目的构建性能。有关DSL和你可以控制的功能的完整列表,请参见发行说明(http://d.android.com/studio/releases/gradle-plugin#4-0-0)。
android {
// The default value for each feature is shown below.
// You can change the value to override the default behavior.
buildFeatures {
// Determines whether to support View Binding.
// Note that the viewBinding.enabled property is now deprecated.
viewBinding = false
// Determines whether to support Data Binding.
// Note that the dataBinding.enabled property is now deprecated.
dataBinding = false
...
}
}
Android Gradle插件DSL,用于启用或禁用构建功能
Android Studio 4.0现在已经内置了对Kotlin DSL构建脚本文件(*.kts)的支持,这意味着Kotlin构建脚本提供了一套完整的快速修复程序,并由Project Structure(项目结构)对话框提供支持。我们将在明年继续完善Android Gradle插件的DSL API,这可能会导致Kotlin脚本用户的API更改中断。从长远来看,这些修补程序将为Kotlin脚本用户提供更加熟悉,易于使用的DSL。
使用Android Gradle插件4.0.0及更高版本构建应用时,插件会包含描述已编译到你应用中的库依赖项的元数据。上传应用时,Play控制台会检查这些元数据,以提供有关应用使用的SDK和依赖项已知问题的警报,并在某些情况下提供可解决这些问题的可行反馈。
数据经过压缩,通过Google Play签名密钥加密,并存储在发布应用的签名栏中。如果你不想共享此信息,则可以在模块的build.gradle文件中添加以下内容来轻松取消:
android {
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
}
禁用APK和/或应用包的依赖项元数据 回顾一下,Android Studio 4.0包括以下新的功能与改进:
有关改动的完整列表,请阅读官方发行说明(http://d.android.com/studio/releases#4-0-0)。
如果你使用的是早期版本的Android Studio,只需将其更新为最新版本即可。或者从这个页面下载Android Studio 4.0。(http://d.android.com/studio/)
与往常一样,我们感谢大家的任何反馈。如果发现错误或问题,请提交issue。在Twitter(https://twitter.com/androidstudio)或Medium(https://medium.com/androiddevelopers)上关注我们。
原文链接:https://android-developers.googleblog.com/2020/05/android-studio-4.html
领取专属 10元无门槛券
私享最新 技术干货