Android 9.0 系统开发要注意的事项

如果说 5.1 到 7.1 是一道小坎。那 7.1 到 9.0 就是一道大坑,有很多需要注意的问题,下面简单记录一下。

1. 编译

编译工具链需要使用 64 位的,NDK, JDK 需要使用 64 位的,前期的 buildroot 集成的那些工具,也要更新为新的 64 位的,不然会出现各种奇怪的编译问题。

还有就是新的编译框架 NINJA。

之前有提过,7.1 有启用过 jack,但是现在 9.0 上已经完全看不到 jack 了。

8.0 开始,Android 引入了 Android.bp 来代替之前的 Android.mk。而 Android.mk 也同时支持,但是相信以后的版本,mk将会慢慢消失(所以我们要开始学习 bp 文件的编写,bp 文件的编写,会更加简单和明了)。

我们需要大概知道,编译系统会通过 soong 将 Android.bp 转化成 ninja 文件;所有的 makefile(mk文件)也会转化成 ninja 文件,然后两个 ninja 文件合并成一个文件,最终的编译,就是依赖这个 ninja 文件。

至于编译系统ninja,简单来说,就是一个专注编译速度的编译系统,更多资料可以参考 https://ninja-build.org/

继续阅读Android 9.0 系统开发要注意的事项