赞
踩
系统:AOSP Android10.0
设备:Android x86模拟器
本文重点描述Android.bp几种常见的预编译模块规则
常见的预编译的模块有:
- var prebuiltTypes = map[string]string{
- "SHARED_LIBRARIES": "cc_prebuilt_library_shared",
- "STATIC_LIBRARIES": "cc_prebuilt_library_static",
- "EXECUTABLES": "cc_prebuilt_binary",
- "JAVA_LIBRARIES": "java_import",
- "ETC": "prebuilt_etc",
- }
模板: frameworks/base/data/etc/Android.bp
- prebuilt_etc {
- name: "Vendor_my_idc",
- src: "Vendor_5135_Product_0005.idc",
- filename_from_src: true,
- sub_dir:"usr",
- }
另外一种写法:
- prebuilt_etc {
- name: "Vendor_5135_Product_0005.idc",
- src: "Vendor_5135_Product_0005.idc",
- sub_dir:"usr",
- }
最后路径是在out/target/product/产品名/system/etc/usr/
如果需要安装到其他路径,可以如下配置:
product_specific: true | product/etc/subdir |
proprietary : true | vendor/etc/subdir |
模板: system/core/logcat/Android.bp
- cc_prebuilt_binary {
- name: "logpersist.start",
- srcs: ["logpersist"],
- init_rc: ["logcatd.rc"],
- required: ["logcatd"],
- symlinks: [
- "logpersist.stop",
- "logpersist.cat",
- ],
- strip: {
- none: true,
- },
- }
其实编译的是一个脚本, 必须要求logcatd模块存在, 并且可以生成软连接。
- cc_prebuilt_library_shared {
- name: "libmycjson-pre",
- srcs: ["x86_64/libmycjson-pre.so"],
- compile_multilib : “64”,
- }
其实Android.bp做预编译没有Android.mk那么灵活, 只限定于几个常见的目标路径, 无法用LOCAL_MODULE_PATH来指定路径。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。