劝学:Android 14 Framework 引入了哪些“新”技术栈

2023 年 Google I/O 已于 2023 年 5 月 10 日 拉开帷幕,Android 14 Beta 版本近期也已经 释放 到 Google partners,本文主要分析 Google 在 Android 14 框架代码中引入了哪些新的技术栈,而对于新功能和 API Change,则并不在本文的讨论范围之内。

编译系统:Bazel 使用范围进一步扩大

说到编译,对于独立应用而言,大家接触最多的应该是build.gradle,这个不在此赘述。事实上,Bazel 已经不能说是在 Android 14 首次亮相了,这一点大部分 Java 开发者应该感知不到,因为我们几乎都被 Gradle还有 Make 宠坏了(虽然也不是那么好用),比较关注新技术的搞浏览器或者偏底层的小伙伴,倒是可能早就在用了。

需要首先说明的是,Bazel 并不跟 Android 编译强相关,只不过它碰巧支持构建 JavaC++GoKotlin 等语言,而 Android 开发也基本使用上述这些语言。另外,对 Rust, Python 的支持也在逐渐被加入,Google 对 Bazel 的开发还是十分积极的。

转到框架这边,截止到 Android 13,你写的大部分配置文件应该还是 Android.bp,它经过 Soong 解析成 Ninja,而偏底层配置相关的逻辑,则依然由 Android.mk 定义,并经过 Kati 解析成 Ninja,一个典型的编译流程图如下:

而来到 Android 14,Bazel 的解析流程会被加入进来,流程图如下:

从目前 Google 公布的路线图来看,从 Android 14 开始,所有迁移后的 C++ 模块将默认使用 Bazel 编译,从 Android 15 开始,所有 Mainline 的模块将默认使用 Bazel 编译。

看到这,估计你还是不慌,反正老的还兼容着呢,不急。然而 Google 对这块还是有信心的,如果问题不大,再加上官方自己不弃坑的话(老实说 Google 弃的坑不少了,懂得都懂),等到了 Android 16,整个编译系统应该都会切到 Bazel

Settings:Kotlin 和 Jetpack Compose 都来了<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值