本来不想写这种入门文章,但又太太太太太实用了,而且Telephony是Framework的分支,虽然Framework的BUG不用你解,但是Framework的知识你要会。起个专栏叫《Framework》吧。
一、Android.bp的解读和使用
Android.bp的出现就是为了替换Android.mk文件。
bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控制,不能做算数逻辑运算,如果需要控制逻辑,那么只能通过Go语言编写。
Android.bp文件作用:
1.模块名包含的Src文件范围
2.包含的Res文件范围
3.导入静态JAVA库依赖
4.决定编译后生成文件是否放到项目priv-app(默认app)
5.决定编译后生成文件是否放到项目system-ext(默认system)
6.指定覆盖编译(被指定的模块会在整编时被编进去,而是由当前模块代替)
7.指定Manifest文件、附加Manifest文件
8.代码混淆控制
9.生成静态java库等等。
每一个模块以模块类型开始,后面跟着一组模块的属性,以名值对(name: value)表示,每个模块都必须有一个 name属性。
基本格式长这样子(以Telephony模块的bp文件为例子):
单编口诀,source、lunch、make
source脚本、lunch项目、make模块