Jar包编译和集成有两种编译方式,mk和bp,Android 7版本之后逐渐采用bp格式编译,目前14版本还是兼容mk方式编译,具体写法入下:
Android jar包编译 mk:
如果需要打包到systemimg,则需要将此jar包添加到PRODUCT_PACKAGES,此编译指令将jar包添加进了system分区,但是没有预加载,PRODUCT_BOOT_JARS指令会将jar包预加载到虚拟机中供客户端使用。
Android jar 包编译 bp:
使用方式如上,如果依赖到其他jar包,则是用static_libs:[HelloTest,]添加依赖编译,如果需要预加载到虚拟机,则需要配置了PRODUCT_BOOT_JARS添加到bootcalssloader路径当中。或者在ZygoteInit.cacheNonBootClasspathClassLoaders中主动去加载一下jar包。
PRODUCT_SYSTEM_SERVER_JARS 添加到systemserverclasspath
分区选择:
默认system分区:
- Android.mk 默认就是输出到 system 分区,不用指定
- Android.bp 默认就是输出到 system 分区,不用指定
Vendor分区:芯片上上分区,提供核心功能和服务
- Android.mk LOCAL_VENDOR_MODULE := true
- Android.bp vendor: true
Odm分区:设备制造商分区,外围设备提供核心功能和服务
- Android.mk LOCAL_ODM_MODULE := true
- Android.bp device_specific: true
Product分区:产品机型分区
- Android.mk LOCAL_PRODUCT_MODULE := true
Android.bp product_specific