IT之家10月22日消息谷歌官方表示,近期发布了Android Studio 4.1稳定版,为大家带来一系列针对常见的编辑、调试和优化工作的功能。4.1 版本的重点诉求之一是帮助您在使用 Android Jetpack库 (即 Android 的开发库套件) 时遵循最佳实践和提升代码编写效率。基于大家的反馈,直接在 IDE 中集成了诸多常用的 Android 库,从而改善了编写代码的体验 。 Android Studio 4.1:https://developer.android.google.cn/studio Android Jetpack:https://developer.android.google.cn/jetpack IT之家了解到,Android Studio 4.1 的一些亮点如下 :引入全新的 Database Inspector,用于查询应用的数据库;支持浏览使用 Dagger 或Hilt进行依赖项注入的项目;支持在 Android 项目中使用 TensorFlow Lite 模型,进一步增强了对设备端机器学习的支持。我们还对 Apply Changes 进行了更新,以加快部署速度。我们根据大家的反馈进行了一些更改,引入了新的原生内存性能分析器和独立分析工具来为游戏开发者提供助力。 Hilt:https://developer.android.google.cn/training/dependency-injection/hilt-android 下载 Android Studio 4.1:https://developer.android.google.cn/studio 下面按关键开发流程列出了 Android Studio 4.1 中的所有新功能。 设计 Material Design 组件更新 现在,创建新项目 (New Project) 对话框中的 Android Studio 模板使用 Material Design 组件 (MDC),并且默认支持最新版的主题和样式设计指南。如此一来,开发者可以更轻松地使用推荐的 Material 样式模式,以及支持现代界面功能 (如深色主题)。 △ 项目模板中的 Material Design 组件更新更新包括 : MDC:项目使用build.gradle中的com.google.android.material:material。基础应用主题使用Theme.MaterialComponents.*父级,并覆盖更新后的 MDC 颜色和 "on" 属性。 颜色资源 :colors.xml中的颜色资源使用字面名称 (例如,使用purple_500而不是colorPrimary)。 主题资源 :主题资源位于themes.xml(而非styles.xml) 中并使用Theme.<ApplicationName>名称。 深色主题 :基础应用主题使用DayNight父级,并分为res/values和res/values-night。 主题属性 :在布局和样式中将颜色资源称为主题属性 (例如?attr/colorPrimary),以避免硬编码颜色。 开发 Database Inspector 我们希望借助新的 Database Inspector 来简化应用数据库的检查、查询和修改操作。首先,将您的应用部署到运行 API 26 或更高级别的设备,然后从菜单中依次选择View > Tool Windows > Database Inspector。无论您的应用是直接使用 Jetpack Room 开发库还是 Android 平台版本的 SQLite,您现在都可以轻松检查正在运行的应用中的数据库和表,或运行自定义查询。 由于 Android Studio 在您检查应用时会保持实时连接,因此您也可以使用 Database Inspector 对数值进行修改,并在运行的应用中查看结果。如果您使用 Room 持久库,Android Studio 还会在代码编辑器的每个查询旁边插入运行按钮,以帮助您快速运行在 @Query 注解中定义的查询。 文档 :使用 Database Inspector 调试数据库 https://developer.android.google.cn/studio/inspect/database △ 使用 Database Inspector 检查、查询和修改应用数据库 直接在 Android Studio 中运行 Android 模拟器 现在,您可以直接在 Android Studio 中运行 Android 模拟器。此功能有助于节省屏幕空间,您可以使用热键在模拟器和编辑器窗口之间快速导航,并在一个应用窗口中组织您的 IDE 和模拟器工作流。您可以在 Studio 中管理快照以及旋转和截图等常见的模拟器操作,但要使用全部功能选项,仍然需要使用稳定的模拟器。您可以按照这个菜单路径启用此功能 :File → Settings → Tools → Emulator→Launch in Tool Window。 △ 在 Android Studio 中运行 Android Emulator Dagger 导航支持 Dagger是 Android 上常用的依赖项注入库。Android Studio 提供了新的 gutter 操作并扩展了 Find Usages 窗口中的支持,使得在 Dagger 相关代码之间导航更加简单。例如,点击使用给定类型的方法旁边的gutter 操作,会将您导航到提供该类型的位置。相反,点击gutter 操作会将您导航到将类型用作依赖项的位置。Android Studio 还支持对使用 JetpackHilt库定义的依赖项执行导航操作。 Dagger:https://developer.android.google.cn/training/dependency-injection/dagger-basics Hilt:https://developer.android.google.cn/training/dependency-injection/hilt-android 文档 :Dagger 导航支持 https://developer.android.google.cn/studio/releases#dagger-navigation △ 使用 gutter 操作在 Dagger 相关代码之间导航 使用 TensorFlow Lite 模型 目前,Android 开发者纷纷利用机器学习来打造新颖、实用的体验。TensorFlow Lite是常见的用于编写移动端机器学习模型的开发库,我们希望简化将这些模型导入 Android 应用的过程。与视图绑定类似,Android Studio 会生成易于使用的类,帮助您精简运行模型所需的代码并提升类型安全性。ML Model Binding (ML 模型绑定) 当前的实现支持图像分类和风格转换模型,前提是它们通过元数据得到了增强。 实用创新体验: https://developer.android.google.cn/helpful-innovation TensorFlow Lite:https://www.tensorflow.org/lite 要查看导入模型的详细信息以及如何在应用中使用,请双击项目中的 .tflite 模型文件以打开模型查看器页面。 文档 :使用 TensorFlow Lite 模型 https://developer.android.google.cn/studio/write/mlmodelbinding △ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元数据 构建和测试 Android 模拟器 - 可折叠设备铰链信息支持 Android Studio 除了最近新增的5G 移动网络测试功能,我们还在 Android 模拟器中增加了对可折叠设备的支持。在 Android 模拟器 30.0.26 及更高版本中,您可以使用多种折叠设计和配置对可折叠设备进行设置。设置完毕后,模拟器将提供铰链角度传感器和姿态变化信息,方便您测试应用在这些机型上的响应情况。 针对 5G 的模拟器支持 https://developer.android.google.cn/about/versions/11/behavior-changes-all#emulator-5g 使用 Android 模拟器在 Android 11 上进行开发 https://medium.com/androiddevelopers/developing-for-android-11-with-the-android-emulator-a9486af2d7ef Apply Changes 更新 更快的构建有助于开发者更轻松、快速地更改应用。为了帮助您提高应用迭代效率,我们对 Android 11 或更高版本设备的 Apply Changes 进行了多项增强。 我们在优化迭代速度上进行了大力投入,开发出一种无需安装应用即可在设备上部署和保存更改的方法。现在,在完成初始部署后,通过 Apply Code Changes 或 Apply Changes and Restart Activity 对 Android 11 设备进行后续部署的速度大幅提升。我们还在 Apply Changes 中增加了对其他代码更改的支持。现在,在您添加一个方法后,可点击 Apply Code Changes 或 Apply Changes and Restart Activity 按钮将这些更改部署到正在运行的应用中。 结构化类重定义与 Apply Changes https://medium.com/androiddevelopers/structural-class-redefinition-and-apply-changes-30f96f1962e6 从 AAR 中导出 C/C++ 依赖项 Android Gradle Plugin 4.0 增加了在 AAR 依赖项中导入 Prefab 软件包的功能。我们希望扩展此功能以共享原生库。AGP 4.1 支持在 Android 库项目的 AAR 中从外部原生构建中导出库。要导出原生库,请将以下内容添加到库项目build.gradle文件的 android 块中 : 使用原生依赖 https://developer.android.google.cn/studio/build/native-dependenciesbuildFeatures{ prefabPublishingtrue } prefab{ mylibrary{ headers"src/main/cpp/mylibrary/include" } myotherlibrary{ headers"src/main/cpp/myotherlibrary/include" } } 原生代码崩溃报告符号化解析 当原生代码发生崩溃或 ANR 时,系统会生成堆栈轨迹,即程序崩溃前所调用的嵌套函数序列的快照。这些快照可以帮助您识别和修复源代码中的问题,但是必须首先将它们符号化,以将计算机地址转换回人类可读的函数名。 如果您的应用或游戏是使用 C++ 之类的原生代码开发的,那么您现在可以将每个版本应用的调试符号文件上传到 Play 管理中心。Play 管理中心使用这些调试符号文件来符号化您应用的堆栈轨迹,从而简化崩溃和 ANR 分析。如果要将调试符号包含在 App Bundle 中,请将下方内容添加到项目的build.gradle文件中 : android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE' 优化 System Trace 界面改进 在 Android Studio 4.1 中,我们对System Trace进行了全面改进,该优化工具可让您实时了解应用对系统资源的使用情况。通过框选模式还可以更轻松地选择跟踪记录,此外,我们还添加了新的分析标签页,并添加了更多的帧渲染数据,以帮助您调查应用界面中的渲染问题。 System Trace https://developer.android.google.cn/topic/performance/tracing 文档 : Android Studio System Trance 更新 https://medium.com/androiddevelopers/whats-new-in-android-studio-system-trace-5841465c5935 框选 :在 Threads 部分中,您现在可以拖动鼠标来框选一个矩形区域,并点击右上角的 Zoom to Selection 按钮 (或使用键盘快捷键 M) 来放大该区域。当您将相似的线程拖放到一起后,可以跨多个线程进行框选以同时检查所有线程。 △ 使用框选模式可以更轻松地选择跟踪记录 Summary 选项卡 :Analysis 面板中全新的 Summary 选项卡会显示以下内容 : 特定事件的所有实例的汇总统计信息,例如实例计数和最小 / 最大持续时间。 选定实例的跟踪事件统计信息。 有关线程状态分布的数据。 所选跟踪事件内运行时间最长的实例。 △ 在 Summary 选项卡中查看汇总统计信息 显示数据 :在 Display 部分,SurfaceFlinger和VSYNC的新时间轴可帮助您调查应用界面中的渲染问题。 SurfaceFlinge https://source.android.google.cn/devices/graphics/surfaceflinger-windowmanager VSYNC https://source.android.google.cn/devices/graphics/implement-vsync 独立分析器 现在可以在独立于 Android Studio 主窗口的单独窗口中访问 Android Studio 分析器。在优化使用其他工具 (如 Unity 或 Visual Studio) 构建的 Android 游戏时,此功能十分有用。 要运行独立分析器,请执行以下操作 : 1. 确保您的系统现在没有运行 Android Studio 中的分析器。 2. 转到安装目录并导航到 bin 目录 :Windows/Linux: <studio-installation-folder>\bin macOS: <studio-installation-folder>/Contents/bin 3. 根据您的操作系统,运行profiler.exe或profiler.sh 独立分析器可连接到 Android Emulator 或其他已连接的设备上。 △ 使用独立 Android Studio 分析器优化您的应用 原生内存性能分析器 跟踪原生内存的使用情况对于游戏开发者和其他使用 C++ 的开发者十分重要,他们可以据此优化其应用的内存使用。Android Studio 内存性能分析器 (Memory Profiler) 现在包含一个原生内存性能分析器 (Native Memory Profiler),专门用于运行在 Android 10 或更高版本的实体设备上的应用。原生内存性能分析器可以跟踪特定时间段内原生代码中对象的分配 / 销毁情况,并提供内存总体分配和系统堆剩余大小的信息。 要启动记录,请点击 Memory Profiler 窗口顶部的Record native allocations: △ 使用原生内存性能剖析器查看原生内存分配情况 总结 简要回顾一下,Android Studio 4.1 包括以下新增及改进功能 : 设计 Material Design 组件更新 开发 Database Inspector 直接在 Android Studio 中运行 Android 模拟器 Dagger 导航支持 使用 TensorFlow Lite 模型 构建和测试 Android 模拟器 - 可折叠设备铰链信息支持 Apply Changes 更新 从 AAR 中导出 C/C++ 依赖项 原生代码崩溃报告符号化解析 优化 System Trace 界面改进 独立分析器 原生内存性能分析器