android编译杂记之一

common_config.sh脚本在yongyida/ 下面。

脚本中获取了第一个参数就是客制化路径,如: yongyida\customer\xiaoyong\y50bpro ,赋值给变量 CUSTOMIZATION_PATH

执行脚本yongyida/tools/copy_apk_so.sh,其中会创建

mkdir -p oemapk/app/${filename%.*}/lib/arm

mkdir -p oemapk/priv-app/${filename%.*}/lib/arm

然后在跟目录下创建oemapk,这是google编译脚本制定的overlays apk的目录。

最后将apk中的so库放到对应的路径下,把apk放到oemapk/app或者oemapk/priv-app,最后直接由yongyida/oem_config.sh的以下命令:

直接拷贝apk到out目录下,等待压缩到image中,而不参与预编译,因为这些文件不需要

#拷贝临时文件夹"oemapk"中要固化进系统的客制化apk(包括库文件)
cp -rf oemapk/app/ $OUT/system/
cp -rf oemapk/priv-app/ $OUT/system/
#删除临时文件夹lib
rm -rf oemapk/

关于预编译的作用,直接引用网上的一段话:

在实际的开发中,并不会像Android一样将所有的源码集中在一起编译,有很多apk文件,jar都是预先编译好的,

 

编译系统是需要将这些二进制文件复制到生成的image文件中。

常用的方法是通过PRODUCT_COPY_FILES变量将这些文件直接复制到生成的image文件中。但是有些apk或jar包,

需要实用系统的签名才能正常运行,这样用复制的方式就不行了。另外一些动态库文件可能是源码中的某些模块所依赖的,

用复制的方法也无法建立依赖关系,这将导致这些模块编译失败。Android可以通过定义预编译模块的方法来解决上面的问题。

定义一个预编译模块和定义一个普通的编译模块格式相似。不同是LOCAL_SRC_FILES变成不是源文件了,而是二进制文件。

同时可以通过LOCAL_MODULE_CLASS来指定模块的类型,最后include的是BUILD_PREBUILT变量定义编译文件。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值