例如,如果它的重组次数过多,那就可能会多浪费额外的资源,同时如果组件没有按照预期进行重组,则可能会导致 UI 异常。
Layout Inspector 现在允许开发者查看布局层次结构中的 composables 何时重新组合或跳过,当用户与应用进行交互时就会显示相关信息,如果要开始使用该功能,请确保应用使用 Compose1.2.0-alpha03
或更高版本。
打开 Layout Inspector 窗口并连接应用进程,在 Component Tree 中会看到布局层次结构旁边出现了两个新列:
- 第一列显示每个节点的合成数量。
- 第二列显示每个节点的跳过次数。
当从 Component Tree 或 Layout Display 中选择一个 composable 时,还可以在 Attributes 窗格中看到类似的信息。
如果要重置计数,可以单击 Component Tree 面板顶部附近的 Reset 。重置计数可以帮助了解应用进行特定交互期间的重新组合或跳过次数。
二、Wear
更新了 Wear OS 模拟器配对助手
从 Android Studio Dolphin Canary 3 开始,Wear OS 模拟器配对助手可以更轻松地管理和连接 Wear 模拟器:
- 在 Device Manager 里查看 Wear devices。
- 将多个 Wear 设备与单个虚拟或实体手机配对。
- 启动时自动重新连接以前配对的设备,Android Studio 现在会记住并重新配对上一次设置的配对。
要使用这些新功能,需要手机模拟器 API 级别为 30 或更高,并安装了 Google Play 商店。
此外还需要确保 Wear 模拟器是 API 级别 28 或更高级别,如果要为模拟设备升级到最新的系统映像,请转到 Tools > SDK Manager。
有关更多信息,请参阅 使用 Wear OS 模拟器配对助手。
更新了 Wear OS 模拟器工具栏
从 Android Studio Dolphin Canary 2 开始,对于 API 级别 28 或更高级别的 Wear 模拟器,工具栏现在会有模拟设备上的物理按钮和常见操作的按钮。
新按钮是:1⃣️ 和 2⃣️ 圆点,(按钮 2 仅在 API 级别 30 或更高级别上可用)、Palm 按钮和 Tilt 按钮:
- 要将设备设置为环境模式,单击 Palm 按钮。
- 要将设备返回到环境模式之前的最后一个屏幕,单击 Tilt 按钮。
有关详细信息,请参阅 在模拟器中执行常见操作。
新的 Wear OS 运行配置
添加了新的运行配置以快速运行和调试特定于 Wear OS 的表面,例如表盘、磁贴和复杂功能,可以在运行应用程序时从 Run/Debug Configurations 对话框创建这些新配置。
有关更多信息,请参阅 Wear OS 运行/调试配置。
三、新的 Logcat
Logcat 已更新,可以更轻松地解析、查询和跟踪日志。
New formatter
Logcat 现在会对日志进行格式化,以便开发者可以更轻松地扫描有用信息如标签和消息,并且会识别不同类型的日志,例如警告和错误。
在视图预设之间切换
Logcat 现在允许通在不同的视图模式之间快速切换。
每种视图模式都提供了不同的默认设置,用于显示更多或更少的信息,例如时间戳、标签和进程 ID (PID)。
另外还可以通过选择Modify View 来自定义这些默认视图模式以及自定义视图模式。
新的键值搜索
在以前的 Logcat 版本中,开发者需要选择使用字符串搜索(支持正则表达式)或通过使用 Logcat UI 填充各种字段来创建新过滤器。
第一重方式让搜索变得更加复杂,而第二个选项让共享和设置查询变得更加困难,所以我们现在通过直接从主查询字段引入键值搜索来简化体验。
这个新的查询系统提供了开发者想要查询的准确性,并且不依赖于正则表达式,还能够从历史中调用过去的查询,并与其他人共享这些查询,此外,你仍然可以选择使用 RegEx 并根据键值排除日志。
-
本地应用项目的 PID:
package:mine
-
具体数值:
package:<package-ID>
tag:<tag>
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
-
通过在键前面加上排除特定值
-tag:<exclude-tag>`
-
通过在键后放置 ~ 来使用具有给定键的正则表达式
tag~:<regular-expression-tag>
- 结合排除标签:
-tag~:<exclude-regular-expression-tag>
你还可以通过 查询历史选择(漏斗) 来查询字段,然后从下拉列表中选择它们来查看查询历史记录。
另外,如果要收藏某个查询可以请单击 收藏查询(黄色⭐️) 查询字段末尾的 。
跨应用程序崩溃/重启跟踪日志
新的 Logcat 现在可以更轻松地在应用崩溃和重新启动时跟踪应用的日志,这样开发者就不会错过这些事件中的重要日志。
当 Logcat 注意到应用进程已停止并重新启动时,将在输出中看到一条消息,例如PROCESS ENDED
和 PROCESS STARTED
, 如下所示:
而且,重新启动 Logcat 会保留会话配置,例如选项卡拆分、过滤器和查看选项,以便开发者可以轻松地继续之前的会话。
四、其他
Gradle Managed Devices
为了在使用 Android 虚拟设备进行自动化检测测试时提高一致性、性能和可靠性,本次推出了 Gradle 托管设备。
此功能适用于 API 级别 27 及更高级别,允许开发者在项目的 Gradle 文件中配置虚拟测试设备,构建系统在执行自动化测试时使用配置来完全管理(即创建、部署和拆除)这些设备。
这个功能使 Gradle 不仅可以查看正在运行的测试情况,还可以查看设备的生命周期,从而通过以下方式提高测试的体验和质量:
- 处理与设备相关的问题,以确保执行开发者的测试用例
- 利用模拟器快照来改善设备启动时间和内存使用率,并在测试之间将设备恢复到干净状态
- 缓存测试结果并仅重新运行可能提供不同结果的测试
- 为在本地和远程测试运行之间运行测试提供一致的环境
此外,Gradle Managed Devices 引入了一种名为自动测试设备 (ATD) 的新型仿真器设备,设备经过优化以提高运行仪器测试时的性能。
要了解有关 Gradle 托管设备及其相关功能的更多信息,请参阅 使用 Gradle 托管设备扩展测试。
R8 支持使用基于 DEX 指令偏移的映射文件
在优化行信息时,R8 现在可以使用基于指令偏移的行表将信息编码到共享调试信息对象中,这大大减少了线路信息的开销。
此外,如果方法没有行号信息,从 O(API 级别 26)开始的 Android VM 支持在堆栈跟踪中打印指令偏移量,当使用 minSdk 26 或更高版本进行编译并且没有源文件信息时,R8 会完全剥离行号信息。
无状态 lambda 不再被视为单例
构建构建时,无状态 lambda 不再分配为单例,由于添加了字段和类初始化器,之前作为单例的表示增加了代码大小开销,以及由于静态类初始化而导致的启动开销。
无状态 lambda 现在在使用站点上分配的方式与有状态 lambda(带捕获的 lambda)相同。
R8 避免了 Android 运行时的验证速度变慢
为了消除 Android 运行时(Dalvik 和 ART)上的性能问题,R8(不是 D8)现在引入了 library stubs 并 outline 了对库类和运行时可能不存在的方法的库方法的调用。
这样做可以消除许多验证问题并提高运行时性能,并且此功能始终启用。
通过 Java 8+ API 脱糖支持 JDK-11 API
使用 coreLibraryDesugaring 依赖项时,现在支持基于 JDK-11 的实现库,有关更多信息,请参阅 desugar_jdk_libs
更改日志 。
Android Gradle 插件和 Android Studio 兼容性
Android Studio 构建系统基于 Gradle,Android Gradle 插件添加了一些特定于构建 Android 应用程序的功能,下表列出了每个版本的 Android Studio 所需的 Android Gradle 插件版本。
作者:恋猫de小郭
链接:https://juejin.cn/post/7143907798458302472
最后
如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。
如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
一、架构师筑基必备技能
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
最后
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!