查看原文
其他

Now in Android #87 带你了解近期 Android 的一些新变化

Qinglin 鸿洋 2023-09-13

本文作者:Qinglin,原文发布于:简绘Android

1什么是 Now in Android?


Now in Android 是 Android 官方持续更新的一份指南,以便于开发者了解 Android 开发领域的最新动态和值得关注的内容。
可能由于语言等各方面原因,导致这份指南在国内开发者中很少被知晓,同时还有一些优秀的资料存在”滞后性",为了打破这一信息差,我将会跟随 Now in Android 的更新,形成一个系列。
该系列将以每一期 Now in Android 为大纲,结合同一段时间内 Youtube、 Medium、Android Developers Blog[1] 等多方面内容,汇总 Android、Kotlin、Gradle 等最新动态。文章内容主要分为两个部分,一点变化 可以看作是关于 Android 生态链的一份 CHANGELOG,它也正像 CHANGELOG 那样,仅仅把一些重要的变化列举出来,这部分内容推荐大家“浅尝辄止”,对变化做到心中有数,以保持自己知识的“新鲜度”,碰见问题时也知道查找的方向。一点资料会收集演讲、文章、播客等表现形式,大多是分享者的经验总结以及 Android 官方的最佳实践。
Now in Android #87 : https://medium.com/androiddevelopers/now-in-android-87-51e1ba949d5e


2一点变化


Android Studio Giraffe 🦒 发布

Android Studio 的新 UI(预览版)

由于 Android Studio 将 IntelliJ Platform 升级到 2022.3, 同时也引入了 IntelliJ IDE 的新UI,新 UI 表现如下所示。


composables 修改后实时更新 (Live Edit)

您现在可以编辑 composables 并立刻在正在运行的设备上看到更改,而不用重新部署应用,这减少了编写代码和构建应用程序之间的上下文切换。
有关Live Edit 的实现原理请查看公众号的上一篇文章《  [译] 深入探究 Jetpack Compose UI的实时编辑(Live Edit)[2]》
深入探究 Jetpack Compose UI的实时编辑(Live Edit)

Gradle 构建脚本中的 Kotlin DSL

在今年4月13日,Gradle[3]、Koltin[4]、Android[5]联合宣布,Kotlin DSL 是 Gradle 构建脚本的默认语言,这意味着新建项目的默认构建脚本从 Groovy DSL 切换到了 Kotlin DSL。在 Android Studio Giraffe中,创建新项目或模块,现在默认获得 Kotlin DSL。Android  Studio 还添加了基于 Toml 的 Gradle Version Catalogs 的支持,这样可以统一管理依赖项版本,并获得编辑器提示等好处。

更多特性

  • 新的诊断和错误报告工具
  • 新的 Device Explorer
  • Compose 动画预览扩展
  • Android SDK 升级助手
  • Gradle 同步信息面板
  • 更多的更新特性请查阅官方博客 Android Studio Giraffe is stable[6] 或者 Android Studio Giraffe 发布,快来看有什么更新吧[7]

Android 14 Beta 4 已发布 🤖

7 月 11 日,Android 发布了即将发布的 Android 14 操作系统的第 4 个 Beta 版本!Beta 4 也是 Android 14 的第二个平台稳定版,这意味着开发者 API 和所有面向应用的行为都是最终版本不会再变更。
现在是完成兼容性测试并发布任何必要的更新的最佳时间,这可以确保在今年晚些时候 Android 14 最终版本发布之前提供流畅的应用体验。
你可以使用上一章节的 Android SDK 升级助手来帮助你进行升级。
更多信息,请查看官方博客 Android 14 Beta 4[8]

Google Play更新政策 🛡️

为了增强 Google Play 上的信任和透明度,Google Play增加了下面的条款

扩大开发者验证信息

现在Google Play要求验证开发者的更多信息,并且会在应用的商品详情页分享更多的开发者的详细信息来让用户放心。

组织需要提供 DUNS(邓白氏) 编号

当你为组织创建新的 Google Play 开发者账号时,您现在需要提供 DUNS 号码。DUNS 号码由 Dun & Bradstreet 分配,是唯一的九位数字标识符,广泛用于验证企业。

更多

有关政策的发布时间以及影响,请查看 Play Console Requirements[9] 和New policy update to boost trust and transparency on Google Play[10]了解更多详情。

Kotlin 1.9.0 发布

下面是这次更新的一些亮点功能:
  • 新的Kotlin K2编译器更新:
  • 枚举类型的 entries 属性现在是稳定状态。entries 在1.8.20作为实验性功能引入,是 values() 的高性能的替代品。
  • ..<运算符现在是稳定状态,可以替代until消除它包含上限的歧义。
  • 通过名称获取正则表达式捕获组的新通用函数。
  • 用于创建父目录的新路径实用函数。
  • Kotlin Multiplatform 中的 Gradle 配置缓存预览。
  • Kotlin Multiplatform 中对 Android 目标支持的更改,Android 将和 Kotlin Multiplatform 合作,提供官方的Gradle插件以支持 Kotlin Multiplatform 生成 Android 产物,所以 Kotlin 将 android 更改为androidTarget为 Google 释放 DSL 命名空间。


  • Kotlin/Native 中自定义内存分配器的预览。
  • Kotlin/Native 中的库链接。
  • Kotlin/Wasm 中的大小相关优化。
有关更改的详细信息,和更多的最新变化,请参阅  What's new in Kotlin 1.9.0[11]

AndroidX 发布 🚀

Compose Compiler 1.5.0[12] 发布,最大的特性是带来了 K2编译器[13] 实验性支持。发布日志请看 Compose Compiler[14]

3一点资料


以下资料大多需要技巧才能访问

Android 开发

标题类型描述
深入探究 Jetpack Compose UI的实时编辑(Live Edit)[15]
文章
带你理解Android Studio Live Eidt背后的实现
In depth on Compose Performance[16] 🎙️[17]
播客
采访Compose团队,了解Compose的性能
Kotlin Multiplatform. Make your Android App Cross-Platform[18]
视频
使用Kotlin Multiplatform使您的应用具有跨平台特性
Building Managers Over 3rd Party SDKs for Easy Access[19]
视频
构建SDK Manager减少模版代码,轻松迁移
Battle of the Titans: RxJava vs Kotlin Coroutines[20]
视频
RxJava 和 Kotlin 协程对比
Unveiling the Unseen Threat: Demystifying Memory Leaks in Android[21]
视频
探讨内存泄漏的原因、症状和后果,阐明它们如何逐渐降低用户体验并影响设备性能。
Six Things ViewBinding Teaches Us[22]
视频
与大家分享在不同项目中进行视图绑定时学到的 6 个经验教训,并在演讲中讲述它内部是如何工作的,幕后使用了哪些原理,我们使用时会遇到哪些问题?
JetPack Compose Performance Tips & Tricks[23]
视频
Compose性能优化相关
Designing Jetpack Compose architecture for Gradual Migration from Fragments at Turo[24]
视频
分享如何在已有项目中,无缝从Fragment切换到Compose
Android Worldwide 更多主题[25]
视频
-

Framework 开发

标题SlideVideo描述
Binder RPC - AIDL for distributed systems
链接[26]
链接[27]
Google工程师分享的Binder IPC
Debugging AOSP using Android Studio - revisited
链接[28]
链接[29]
如何使用 Android Studio 调试 AOSP 经验分享
这里穿插一点小知识,在Android 13后如果你使用 userdebug 构建 AOSP,导入 Android Studio 后你会发现 attach to process 不会显示系统进程,这是因为这次提交导致的[2217921: Reland "Don't enable jdwp by default on userdebug builds"" ](https://android-review.googlesource.com/c/platform/frameworks/base/+/2217921 "2217921: Reland "Don't enable jdwp by default on userdebug builds"" "),可以手动修改这里或者使用 eng 构建。


4最后


这一篇 Now in Android 的汇总就在这里结束啦,为了方便大家能够看到下一期的更新,请关注此公众号或者合集,我们下期再见。

参考资料


[1]Android Developers Blog: 

https://android-developers.googleblog.com/

[2][译] 深入探究 Jetpack Compose UI的实时编辑(Live Edit):

https://juejin.cn/post/7260049375094472759

[3]Gradle: 

https://blog.gradle.org/kotlin-dsl-is-now-the-default-for-new-gradle-builds

[4]Koltin: 

https://blog.jetbrains.com/kotlin/2023/04/kotlin-dsl-is-the-default-for-new-gradle-builds/

[5]Android: 

https://android-developers.googleblog.com/2023/04/kotlin-dsl-is-now-default-for-new-gradle-builds.html

[6]Android Studio Giraffe is stable: 

https://android-developers.googleblog.com/2023/07/android-studio-giraffe-is-stable.html

[7]Android Studio Giraffe 发布,快来看有什么更新吧:

https://juejin.cn/post/7259783743430590519

[8]Android 14 Beta 4:

https://android-developers.googleblog.com/2023/07/android-14-beta-4.html

[9]Play Console Requirements:

https://support.google.com/googleplay/android-developer/answer/10788890

[10]New policy update to boost trust and transparency on Google Play:

https://android-developers.googleblog.com/2023/07/boosting-trust-and-transparency-in-google-play.html

[11]What's new in Kotlin 1.9.0:

https://kotlinlang.org/docs/whatsnew19.html

[12]Compose Compiler 1.5.0:

https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.0

[13]K2编译器: 

https://kotlinlang.org/docs/whatsnew19.html#try-the-k2-compiler-in-your-project

[14]Compose Compiler:

https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.0

[15]深入探究 Jetpack Compose UI的实时编辑(Live Edit):

https://juejin.cn/post/7260049375094472759

[16]In depth on Compose Performance: 

https://www.youtube.com/watch?v=h-b3-DWYhjo

[17]🎙️: 

https://emojipedia.org/studio-microphone/

[18]Kotlin Multiplatform. Make your Android App Cross-Platform:

https://www.youtube.com/watch?v=a5VhfEbfGuI

[19]Building Managers Over 3rd Party SDKs for Easy Access:

https://www.youtube.com/watch?v=v4JPIgBNJQ8

[20]Battle of the Titans: RxJava vs Kotlin Coroutines:

https://www.youtube.com/watch?v=f07CTdslzHQ

[21]Unveiling the Unseen Threat: Demystifying Memory Leaks in Android:

https://www.youtube.com/watch?v=HyoHsUkAwA0

[22]Six Things ViewBinding Teaches Us:

https://www.youtube.com/watch?v=EP-itfc-XDc

[23]JetPack Compose Performance Tips & Tricks:

https://www.youtube.com/watch?v=nSppe2JZcCU&t=1979s

[24]Designing Jetpack Compose architecture for Gradual Migration from Fragments at Turo:

https://www.youtube.com/watch?v=SO0qjys_d08

[25]Android Worldwide 更多主题:

https://www.youtube.com/@AndroidWorldwide

[26]链接: 

https://2net.co.uk/slides/aosp-aaos-meetup/2023-july-dbrazdil-rpc-binder.pdf

[27]链接: 

https://youtu.be/undYyHZtiuk

[28]链接:

https://2net.co.uk/slides/aosp-aaos-meetup/2023-july-csimmonds-debug2.pdf

[29]链接:

https://youtu.be/hy40algJYuY




最后推荐一下我做的网站,玩Android: wanandroid.com ,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!


推荐阅读

Gradle Task 系列完结,Task执行大剖析
Android 13 媒体权限适配指南
[应用出海] 使用 Gradle 解决 Android 模块化项目中的多语言支持



扫一扫 关注我的公众号

如果你想要跟大家分享你的文章,欢迎投稿~


┏(^0^)┛明天见!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存