implementation("androidx.compose.runtime:runtime-tracing:1.0.0-alpha01")
要查看 recomposition tracing, 需要打开 Android Studio Profiler 并选择 CPU profiler,之后打开 App 跳转到要跟踪的 UI,然后选择 System Trace and Record。
录制时,可以使用你的 App 让它发生 recomposition,在停止记录和跟踪过程后,可以直接在 Threads timeline 中看到 recomposition trace 中的 Compose 函数。
你还可以在 Analysis 的Flame Chart 、 Top Down 、 Bottom Up 和 Events 选项卡中看到 Compose 函数 。
目前这是一项实验性功能,有关详细信息,可查阅 Compose tracing.。
项目模板更新
Android Studio Flamingo 包含用于创建项目或模块的新模板。
默认情况下,模板使用 Compose Material 3,除非它们被指定为 Views template,建议使用 Compose Material 3 模板(例如Empty Activity)作为创建 Android 应用。
要查看模板,可以通过从主菜单中选择 File > New > New Project 项目,通过 New Project 或 Create New Module 来打开向导。
Network Inspector 流量拦截
从 Android Studio Flamingo 开始 ,Network Inspector 默认显示完整时间线的所有流量数据,开发者可以在时间线中选择一个范围来查看该范围内的流量。
另外还可以创建和管理规则来帮助测试应用在遇到不同响应(例如状态代码、响应标头和正文)时的行为。
这些规则确定要拦截哪些响应,以及如何在响应到达应用程序之前修改这些响应,开发者可以通过选中每个规则旁边的 Active 框来选择要启用或禁用的规则,每次修改规则时都会自动保存。
首先,打开到 Network Inspector 中的 Rules 选项卡,然后单击 + 创建新规则,在 Rule Details 面板中命名新规则,并在 Origin 部分下包含有关要拦截的响应来源的信息,Rules 表中的 URL 需要根据开发者对响应来源所做的更改进行更新。
在 Response 部分,可以在将响应发送到应用之前对其进行修改,例如可以将规则设置为对具有特定状态代码的响应执行并修改该状态代码。
修改 header
在 Header rules 部分中,可以创建多个子规则来添加或修改响应中的标头。
当创建多个标题规则时,使用规则表顶部的向上和向下箭头来更改标题规则的顺序,该顺序会影响修改后的响应标头,因为标头规则是按照它们列出的顺序应用的。
可以通过点击 Header rules 部分中的 + 添加规则,然后在 Add new header 部分中输入标题的名称和值 。
要修改 header ,可以在 Edit existing header 选项卡里指定要查找的 header 名称或值,输入要替换的header 名称或值。
修改 response
如果有需要,还可以创建子规则来修改 response 的主体。
我们可以选择查找和替换 body 的一部分,或者通过选择 Replace entire body 来替换整个正文的全部内容。
与 Header rules 类似,这里可以创建多个主体规则,这些规则按照它们在表中列出的顺序应用。
布局检查器自动连接 foreground process
布局检查器现在会自动连接到虚拟或物理设备上的应用上,具体来说,就是布局检查器会自动连接到在已连接设备的 foreground process 的可调试进程上。
App Quality Insights 更新
Android Studio Flamingo 引入了多项新的 App Quality Insights 功能,可帮助开发者专注于高优先级问题,并支持团队协作。
新过滤器和过滤器搜索
为了帮助开发者识别出重要的问题,现在可以按以下属性进行过滤,每个过滤器都按事件数排序,因此可以看到大多数事件发生的位置:
安卓平台版本
设备品牌和型号
Crashlytics Signal :Signal icons 还会显示在 Issues 面板中相关问题的旁边,因此开发者可以排查计数和信号。如果某个问题在过去已被关闭,但在新版本的应用中再次出现,则该问题被视为已回归。
应用版本:筛选器现在包括一个更高级别的 Play track 筛选器,可以使用它自动选择生产、开放、封闭和/或内部测试中的版本。
此外,现在可以搜索支持选项过滤器,因此可以更快地自定义视图,而无需滚动浏览所有菜单选项。
直接从 Android Studio 注释和关闭问题
为了更轻松地与队友协作,现在可以直接在 App Quality Insights 工具窗口中执行以下操作:
Close issues:要关闭问题,可以点击主堆栈跟踪面板中的 Close 按钮,最近关闭的问题会出现在带有删除线的 issues 面板中。你可以通过再次点击该按钮重新打开最近关闭的问题,但是刷新 App Quality Insights 工具窗口后,已关闭的问题将会消失。
阅读问题并附上注释: 为了在 Firebase 控制台和你的团队成员中可以同时处理问题,如果需要写关于问题的注释,请选择问题并打开 Notes 面板。当然,你必须拥有 Crashlytics 项目的写入权限才能编写注释。
如果你对于 App Quality Insights 还不了解,可以参阅 早期的发布说明。
离线时使用有限的功能进行调查
从 Android Studio Flamingo 开始,开发者可以在离线时的 App Quality Insights 工具窗口中执行一些操作。
如果发出的是新请求(例如通过单击Refresh ) ,并且 Android Studio 无法与 Crashlytics 通信,则 App Quality Insights 窗口允许开发者进入 Offline Mode。
在此模式下,开发者可以继续调查缓存数据中的问题和最新事件,当然,某些功能(例如更改某些过滤器选项或关闭问题)不可用,要在与 Crashlytics 的连接并返回在线状态,可以点击 Reconnect。
一键式自动化可配置构建和运行
Android Studio Flamingo 和 AGP 7.3 引入了一键式自动化可配置构建,这使得配置 profileable app 变得更加容易。
此功能需要 API 级别 29 或更高级别的虚拟或物理测试设备,要使用该功能,请单击 Profile app 程序图标 旁边的箭头,然后在两个选项之间进行选择:
以低开销配置 “app” 启动 CPU 和内存分析器,在内存分析器中,仅启用 记录本机分配。
具有完整数据的配置文件“应用” 会启动 CPU、内存和能源分析器。
对 SDK 扩展的 Lint 支持
Android Studio Flamingo 为 SDK 扩展提供 lint支持,此功能允许开发者更新 lint 工具的 API 检查,从而支持存在 API backports 和新的 API surfaces(如 Android Privacy Sandbox )的情况下正确实施 API 访问。
通过 SDK 扩展,一个 API 可以存在于多个 SDK 中。例如 Android U 中引入的 API 也可以添加到 Android R、S 和 T 向后移植扩展中。
此外,应用程序可以根据需要使用其清单指定多个 API,并且有新的 API 用于检查各个扩展是否可用,lint 工具现在处理逻辑以检查所需内容和已知内容是否存在重叠。
最后,还有与 API 检查相关的 Studio IDE 功能。此功能现在可以处理新 API surfaces 的 API 违规,执行必要的检查并注册快速修复。
与 JDK 17 捆绑
从 Android Studio Flamingo 开始,Studio IDE 与 JDK 17 捆绑在一起,如果 Android Studio 配置为使用嵌入式 JDK,则新项目将使用最新稳定版本的 Android Gradle 插件和 JDK 17,但是,现有项目可能会有 break,你可能手动将 JDK 设置为兼容版本。
设置 JDK 版本
Android Studio 2.2 及更高版本捆绑提供了最新版本的 OpenJDK,这是我们建议用于 Android 项目的 JDK 版本,如需使用捆绑的 JDK,请执行以下操作:
在 Android Studio 中打开项目,然后依次选择 File > Settings... > Build, Execution, Deployment > Build Tools > Gradle(在 Mac 上,依次选择 Android Studio > Preferences... > Build, Execution, Deployment > Build Tools > Gradle)。
在 Gradle JDK 下,选择 Embedded JDK 选项。
点击 OK。
默认情况下,用于编译项目的 Java 语言版本取决于项目的 compileSdkVersion
(因为不同版本的 Android 支持不同版本的 Java)。如有必要,你可以通过将以下 CompileOptions {}
代码块添加到 build.gradle
文件替换此默认 Java 版本:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
恋猫de小郭
Flutter & Dart GDE @ 🏆 掘金签约作者
粉丝