AI和大模型很火,今年的google io上面感觉各个方向都和AI有关,Android平台相关的东西倒是感觉不太多了。我这里整理一下Android相关的信息。Android主要就是Android 15的发布,以及jetpack compose的更新和google play的一些更新。

AI与Android

Android 14开始手机会内置Gemini Nano,开发者可以通过AI Core来调用AI的能力,目前是google pixel 8 pro和三星的s24已经内置了。除了端上,开发这还可以使用Firebase新提供的一些能力使用AI模型。

对于开发者来说,除了开发应用提供AI能力给用户,开发过程中也能体验到google提供的AI能力,下载Android Studio Koala即可使用,提供了类似github copilot的功能,有代码补全,自动代码生成,对话生成代码,UI设计图生成代码,代码重构等功能。

Android 15

每年一个大版本现在是Android系统的惯例了。google io开始的这天发布了Android 15 Beta2。

摄像头方面引入了低光增强功能,这个对于国产手机拍照功能基本都是已有功能,不过对于开发者可以通过Camera2的接口来使用相机提供的这个功能。同时还提供了新的闪光等强度控制API,在支持的设备上更好的控制相机硬件和算法。

文字方面,中日韩语的字体,android上的是NotoSansCJK,新的版本将是可变的了,这代表可以中文可以有更多的样式和变化了。Android 15开始,可使用 JUSTIFICATION_MODE_INTER_CHARACTER 利用字母间距将文本两端对齐,Android 8.0引入了字词间对其,这对于中文这种单个字符的语言是不友好的,新的字符间对其可以大大改善中文排版的美观度。Android 15中还提供了标记来控制换行,即 <nobreak>来避免换行,<nohyphen>避免断字。

<resources>
    <string name="pixel8pro">The power and brains behind <nobreak>Pixel 8 Pro.</nobreak></string>
</resources>

未使用nobreak使用nobreak

对于GPU的使用,Android在7.0的时候引入了Vulkan,在今年他们有引入了ANGLE,这个对于普通开发者不需要关注,对于游戏开发者或者需要使用Open GL进行图形处理的需要注意,毕竟Google计划未来只支持通过ANGLE使用Open GL。

预测性返回动画之前在android14中就有了,但是需要在开发者模式中手动打开,普通用户还用不了,现在默认打开了。

最小target sdk version提高到24,低于此版本的将无法在Android15的手机上安装。

另外关于前台服务,隐私空间,系统UI等方面也有一些提升和新功能。更多内容可以看Android 15的文档: https://developer.android.com/about/versions/15/summary

Kotlin和Jetpack compose

Kotlin 主要介绍了jetpack的更多库适配了kmp,让开发者可以在更多平台共用代码。具体可查看文档:https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html

Jetpack compose支持了share elements 动画,列表动画,Text支持链接和html富文本而不必使用ClickableText,以及一些性能提升。当然,最大的变化应该属于在kotlin 2.0的时候,compose的编译器将从谷歌的代码库移到kotlin的代码库,对于我们来说这意味着compose的编译器插件版本将和kotlin一样,减少我们升级版本的很多烦恼。更多详见:https://android-developers.googleblog.com/2024/05/whats-new-in-jetpack-compose-at-io-24.html

同时Compse对于更多尺寸的屏幕,以及手表,电视等等有了更好的支持。compose adaptive 库提供了一些api来让我们更多的适配各种屏幕尺寸,主要的是NavigationSuiteScaffold, ListDetailPaneScaffold, SupportingPaneScaffold。这次大会更新了Compose for wearos 的库,让更多功能稳定下来。正式发布了Compose for TV的1.0。这样下来所有的Android 平台都可以使用Compose进行开发了。

我们的桌面小组件,也发布了Jetpack Glance 1.1,来让我们支持使用Compose来编写桌面小组件。当然其中的一些widget和普通compose拥有一样的名称,但是却来自不同的package,因为最后还是会编译成remoteview,因此不能混用。

由此可见Android的原生开发以后将是Compose的天下,加油学吧。

Flutter

Dart支持了宏,从而对于Json的序列化和反序列化会更加简单。具体的使用方法: https://dart.dev/go/macros

Flutter 通过WebAssembly在浏览器上面运行性能更好,因此官方后面在Web的方向应该是WebAssembly了, 对于Flutter转js这个方案应该会被放弃。

Google Play

谷歌正式放出了隐私合规检查工具 Checks,可以帮助我们检查app的隐私合规的问题,检查app收集的用户数据,使用的权限,sdk等等,在当前各个国家对于隐私政策越来越严的当下,这个东西挺不错的。访问官网了解:https://checks.google.com/

谷歌在2021年发布了Google Play SDK Console给一些大的SDK开发者,现在这个Consle开放给了所有SDK开发者,借助这个平台SDK开发者可以在sdk有漏洞或者安全问题时,让使用到sdk的用户在谷歌得到通知来升级sdk。同时还可以查看sdk的用户数据,以及让应用开发者共享sdk的崩溃和卡顿日志给sdk的开发者,从而更快的解决问题。

谷歌还发布了Engage SDK, 帮助开发者在google play 内展示app的内容,吸引用户使用我们的应用,但是这个SDK需要开发者在媒体体验计划中或者应用用至少100K的DAU才能申请。当然除了这个sdk,新的google play还支持我们使用搜索关键定制商店详情页,这样可以对不同的来源做定制,提高用户下载app的转化率。应用详情页之前只能展示针对当前设备的屏幕截图和介绍,新版本将支持展示所有支持的设备的信息。

Play Integrity API也有更新,新增加了应用访问风险检查,服务端接口也可以使用play protect的验证。

新版本的Google play后台中还支持对于Deeplink 的管理,通过Google play甚至可以变更deeplink, 而不用更新app。

更多的内容还是请参考官方内容:

Android系统的更新:https://developer.android.com/about/versions/15/summary

Android Studio 的更新: https://android-developers.googleblog.com/2024/05/google-io-2024-whats-new-in-android-development-tools.html

Google Play的更新: https://android-developers.googleblog.com/2024/05/io-24-whats-new-in-google-play.html

Compose的更新: https://android-developers.googleblog.com/2024/05/whats-new-in-jetpack-compose-at-io-24.html

Flutter 更新: https://docs.flutter.dev/release/whats-new