Android Studio Hedgehog 发布,快来看看有什么更新吧
❝参考链接 https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html
❞
Android Studio 又又又更新啦,本次更新包含了 IntelliJ IDEA 2023.1 的更新,同时也改进了 Studio IDE 的相关支持,「本次更新的核心主要是优化,没什么有特别大的变动,应该不会又太大的坑」。
在 App Quality Insights 中分析 Android Vitals
「App Quality Insights」 现在包含有 Android Vitals 的相关数据,现在开发者可以通过 Google Play 收集到一些核心的数据用于改进用户体验, 解决应用稳定性等相关问题。
在 Android Studio 里开发者可以「通过 App Quality Insights」工具窗口查看 Android Vitals 问题、过滤选择以及从堆栈跟踪跳转到代码,:
使用工具栏末尾的个人资料图标登录 Android Studio 中的开发者帐户 。 通过点击 Android Studio 中的工具窗口或点击 「View > Tool Windows > App Quality Insights」打开App Quality Insights 。 点击 「App Quality Insights」 中的 「Android Vitals」 选项。
❝「这个功能对于大部分人来说应该用处不大,大家看看即可」。
❞
Android Vitals 和 Crashlytics
这里需要注意的是,Android Vitals 和 Crashlytics 可能会出现同一个崩溃下,用户数和事件数呈现出不同结果,出现这些差异的原因是 Play 和 Crashlytics 可以捕获不同时间和不同用户的崩溃情况:
Play 捕获启动时开始的崩溃,而 Crashlytics 捕获 Crashlytics SDK 初始化后发生的崩溃。 如果用户在启动手机时选择退出崩溃报告,则这些崩溃不会报告给 Play;然而 Crashlytics 根据应用自己的隐私政策捕获崩溃。
新的 Power Profiler
「从 Android Studio Hedgehog 开始,Power Profiler 会显示设备上的功耗」,现在开发者可以在Device Power Rails Monitor (ODPM) 中查看这些数据,「ODPM 通过 Power Rails」 对数据进行分段, 有关受支持子系统的列表
❝ODPM 报告所有可分析的 Power Rails,需要 Android 10(API 级别 29)及更高版本以及 Pixel 6 和后续 Pixel 设备,详细可见:https://developer.android.com/studio/profile/power-profiler#power-rails
❞
System Trace 会记录并显示功耗数据,它是CPU profiler 的一部分,这部分数据可帮助开发者直观地将设备的功耗与应用中发生的操作关联起来。
要查看新 Power Profiler 中的数据:
选择 「View > Tool Windows > Profiler」 。 点击 「CPU timeline」 中的任意位置打开 CPU Profiler 并启动系统跟踪。
❝「普通人用不上系列」。
❞
新的 App Links Assistant
新的 App Links Assistant 提供了应用设置的 deep links 的全面概述,Assistant 会显示应用 AndroidManifest.xml
文件中所有的 deep links ,验证这些 deep links 的配置是否正确,并提供自动修复错误配置的快速方法。
要打开 App Links Assistant,可以在 Android Studio 中通过 「Tools > App Links Assistant」 启动,「简单来说,你可以通过 App Links Assistant 创建一个 deep links ,然后在代码里处理它,并且通过 App Links Assistant, 的 Test App Links 进行测试。」
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
handleIntent(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleIntent(intent)
}
private fun handleIntent(intent: Intent) {
val appLinkAction = intent.action
val appLinkData: Uri? = intent.data
if (Intent.ACTION_VIEW == appLinkAction) {
appLinkData?.lastPathSegment?.also { recipeId ->
Uri.parse("content://com.recipe_app/recipe/")
.buildUpon()
.appendPath(recipeId)
.build().also { appData ->
showRecipe(appData)
}
}
}
}
❝「这个还是比较实用的,」更多可见:https://developer.android.com/studio/write/app-link-indexing
❞
Live Edit 更新了手动模式的快捷方式
Android Studio Hedgehog 中的 Live Edit 包含了手动模式的新快捷方式(「Push Manually」):Control+\ (Command+\ for macOS)。
当开发者想要精确控制何时将更新更新到正在运行的应用时,手动模式终于来了,例如,如果要对文件进行大规模更改,并且不希望任何中间状态反映在设备上,可以在 Live Edit 设置中或使用 Live Edit UI 中选择 「Push Manually」 和 「Push Manually on Save」 。
❝「虽迟但到。」
❞
Compose Multipreview 模版
androidx.compose.ui:ui-tooling-preview
的 1.6.0-alpha01+ 引入了新的 Multipreview API 模板:@PreviewScreenSizes
、@PreviewFontScales
、@PreviewLightDark
和@PreviewDynamicColors
,因此只需一个注释,就可以在常见场景中预览 Compose UI。
❝「值得一试。」
❞
Compose Preview Gallery 模式
在 Android Studio Hedgehog 中,Compose Preview 中引入了一种新的 Gallery 模式,让开发者一次专注于一个预览并节省渲染资源。
「当开发者需要迭代应用的 UI 时,官方建议使用 Gallery 模式;当开发者需要查看 UI variants 时,官方建议开发者切换到其他模式(例如网格或列表)」。
❝「实用功能+2。」
❞
Compose state information in debugger
当 Compose UI 的某些部分意外重组时,有时候会很难理解出现的原因,这次更新后在 composable 函数上设置断点时, 调试器会列出 composable 函数的参数及其状态,让开发者可以更轻松地识别哪些更改可能导致重新组合。
例如,在 composable 项上暂停时,调试器可以准确地告诉开发者哪些参数 “Changed” 或保持 “Unchanged” ,以便开发者可以更有效地调查重组的原因。
设备镜像
现在可以在Android Studio 的 「Running Devices」 窗口中镜像物理设备,通过将设备的显示直接传输到 Android Studio,可以直接从 Studio IDE 执行常见操作,例如启动应用、交互、旋转屏幕、折叠和展开手机、更改音量等等。
当计算机连接的设备启用了 USB 或无线调试时,设备镜像会始终可用,开发者可以使用 「Running Devices」 窗口或 「Device Manager」 (「View > Tool Windows > Device Manager」). 启动和停止镜像,还可以在设置中自定义激活设备镜像的时间 (「Settings > Tools > Device Mirroring」).
❝「注意:」如果使用的是 Android 12 的某些设备,例如小米 Redmi K40、Poco F3 或 Mi 11X,则必须同时启用 USB「调试」和 「USB 调试(安全设置)」设置,然后重新启动设备以启用设备镜像。
❞
已知的问题
某些设备可能无法以足以支持设备镜像的比特率进行编码,在这些情况下,你可能会在 「Running Devices」 窗口中看到错误以及类似于如下所示的日志。
2023-06-01 15:32:22,675 [ 56094] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [ 56289] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [ 56290] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1
隐私声明
根据设备镜像设置,Android Studio 可以自动为任何已连接和配对的设备启动设备镜像,这可能会导致与该 adb tcpip
命令连接的设备的信息泄露,因为镜像信息和命令是通过非加密通道传递的。
此外,Android Studio 使用非加密通道与 adb 服务器通信,因此镜像信息可能会被主机上的其他用户拦截。
硬件输入转发
现在,可以将 PC 的输入(例如鼠标和键盘)透明转发到连接的物理和虚拟设备,要启用 transparent forwarding,可以在 「Running Devices」 窗口中点击目标设备的 「Hardware input」。
❝「才来的支持」???
❞
直接从 Running Devices 窗口管理设备
现在可以直接从 Running Devices 窗口中点击图标并选择设备来启动 Android 虚拟设备 (AVD),或开始镜像物理设备+
,要停止物理设备的 AVD 或镜像,可以直接关闭设备 tab。
嵌入式 Layout Inspector
从 Android Studio Hedgehog开始,现在可以直接在 「Running Devices」 工具窗口中运行 Layout Inspector,这个实验性功能可节省屏幕空间,并有助于在单个工具窗口中调试 UI 。
在嵌入模式下,Layout Inspector 可以显示视图层次结构、检查每个视图的属性以及访问其他常见的布局检查器功能。
如果要访问完整的 Layout Inspector ,你还是需要在独立窗口中运行布局检查器:
「File > Settings > Experimental > Layout Inspector」 (Windows) 「Android Studio > Settings > Experimental > Layout Inspector」 (macOS)
❝嵌入式 Layout Inspector 的一个限制是 3D 模式仅在快照中可用 。
❞
新的用户界面改进
Android Studio 的新 UI 为 Studio IDE 带来了更简洁的外观和感觉,在 Android Studio Hedgehog 中更新了以下功能相关的问题:
紧凑模式 支持垂直或水平分割 适配 macOS 的项目 tab 修复无干扰模式 用于始终显示工具窗口操作的高级设置
SDK升级助手更新
SDK 升级助手提供了分步向导流程来帮助开发者进行 targetSdkVersion
升级,以下是 Android Studio Hedgehog 中 SDK 升级助手的更新:
支持查看升级到 Android 14 的重大更改 添加了相关性过滤器,删除了一些不必要的步骤 对于某些更改,准确指出代码中需要进行更改的位置
❝从 2023 年 8 月 31 日开始,所有应用都必须面向 Android 13(API 级别 33)或更高版本,才能提交到 Google Play 进行审核。
❞
仅针对 Target API 级别禁用构建优化
现在可以针对目标设备 API 级别禁用 IDE 优化,默认情况下,Android Studio 会针对要部署到的目标设备的 API 级别定制 dexing 流程来减少总体构建时间。
要关闭这个功能,可以在 「File > Settings > Experimental」(「Android Studio > Settings > Experimental」 )取消选中 「Optimize build for target device API level only」。
❝关闭构建优化可能会增加构建时间。
❞
[仅限 Windows] 最大限度地减少杀毒软件对构建速度的影响
Build Analyzer 会通知开发者目前杀病毒软件是否可能影响的构建性能,如果杀毒软件(例如 Windows Defender)正在对 Gradle 使用的目录进行实时扫描,就可能会触发这个提示,Build Analyzer 会建议从主动扫描中排除的目录列表,它会提供出将它们添加到 Windows Defender 文件夹排除列表中的链接。
不再支持 Eclipse Android 开发工具项目
Android Studio Hedgehog 及更高版本不再支持导入 Eclipse ADT 项目。
最后
这次更新看起来更像是一次优化,从提供丰富的调试支持和构建优化更新上,看起来应该不会有太大的坑,不过 Android Studio 的传统才艺谁知道呢?反正~勇士们,冲起来啦~。