android.bp 使用

没有繁杂的理论,单纯分享如何为我们的模块写 bp 文件,或者说如何将我们添加的模块加入到 bp 文件中。

1、确定模块的编译类型

这是首先要确定下来的,我们需要把源代码编译成什么类型的?常见的模块类型有:
android_app:app,就是编写一个 apk
cc_binary:可执行文件
cc_library_shared:native 动态库
cc_library_static:native 静态库
java_library:java 库
java_library_shared:java 动态库

还有好多模块类型,再列举也没啥意义了,当然,我也列举不出了。

2、指定模块名和模块源码位置

比如我现在要编写一个名为 DuoDuo 的 apk,最基本的必须写下面两行,指定模块源码路径和编译后的模块名称,要注意,每项结束后都有 ,

android_app {
   
	//编译后的模块名称
	name: "DuoDuo",
	//该模块对应的源码路径,是相对与 bp 文件所在目录的路径
 	srcs: ["src/**/*.java"],
}

但其实我们编写过程中肯定会用到各种库,不可能这么简单就完事了,下面就拿 anroid 源码举几个例子。

3、实列

3.1 实列 1:基本使用

/packages/apps/Car/Dialer/Android.bp,先看下该目录下文件结构。

在这里插入图片描述
下面解析一下,CarDialerApp 这个 apk 的写法。

44 android_app {
   
	   //编译后模块名
45     name: "CarDialerApp",

46 	   //模块对应的源码路径
47     srcs: ["src/**/*.java"],

48 	   //资源配置路径,color,layout等
49     resource_dirs: ["res"],
50 
	   //指定 sdk version,与当前系统的保持一致
51     sdk_version: "system_current",
52 
	   //在编译这个模块前,先编译 allowed_privapp_com.android.car.dialer
53     required: ["allowed_privapp_com.android.car.dialer"],
54 
       //platform 签名
55     certificate: "platform",
56 
       //应该类似于 LOCAL_OVERRIDES_PACKAGES,也即覆盖掉原生的 Dialer,使其不编译
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值