Android.mk导入第三方jar包和so库

本文详细描述了如何将AS中的第三方jar包和so库移植到Android系统源码中,包括提取jar包和so库、整理工程目录、配置Android.mk以及处理PRODUCT_COPY_FILES用于系统编译时的so库复制。
摘要由CSDN通过智能技术生成

Android.mk导入第三方jar包和so库配置遇到的坑

   本来是一个第三方APP,在AS中编译和运行非常方便的,神经兮兮的leader要让集成到Android系统中去。我多年的Android开发经验告诉我,leader是疯了吗。这样做的目的何在呢?我心里本来就知道从AS环境导入到源码中肯定会遇到很多的编译问题。。。一脸不爽但是工作是自己的,还得继续进行哦,这样就开始了我的移植代码之旅。
  AS确实给了我们开发者很多便捷,代码联想自动填充,三方库配置导入一键青松搞定。看到AS中build.grade 中就配置了好几个三方库,我一脸懵逼了,都得把相关的jar包和so库提取出来呀。
  第一步就是从AS从提取相应的jar包和so库。
  第二步开始在源码目录中创建应用目录,我是在vendor/myProject/apps/xxxx下面创建的。
  第三步按照源码里面工程目录将AS的代码目录重新整理放进来,尤其是注意src ,res 相关目录存放的位置。
  第四步关键来了,将导入的jar包和三方库。放到libs下哦。
  第五步就是写关键的mk文件了。

在这里插入图片描述

第六步开启你的编译之路,慢慢解决相关的编译问题吧。

注意点:
Android中,系统级的app使用到so库以后,都会去system/lib目录下去查找,所以你只需要把so库放置到system/lib目录下,然后在Android.mk中通过LOCAL_SHARED_LIBRARIES变量完成引用即可。我们可以通过adb把so库push到设备的system/lib目录下,可是,如果想要在android系统编译过程中,就实现so库拷贝到system/lib目录,那怎么办呢?这用到了Android编译系统中的PRODUCT_COPY_FILES变量。

#so library
PRODUCT_COPY_FILES += \
 device/xx/xxx/libs/libtest1.so:system/lib/libtest1.so \
 device/xx/xxx/libs/libtest2.so:system/lib/libtest2.so

希望对你有所帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值