如何将APK编译进入IMG

网上有不少大神都有说到,不过对于初次接触的人还是略有些难懂,琢磨了一下,自己总结一下。

如果有新问题再更新。


一、对于第三方APK,没有源码


1、第一种方法

    (1)源码编译后,注意是编译后,把apk拷贝到out\target\product\generic\system\app中——不同的产品可有不同,总之就是在out路径下了。

    (2)有包含.so的APK还需要吧so文件弄出来,APK本身是压缩文件,取出来全部的so文件,拷贝进如out\target\product\generic\system\lib中——不同的产品可有路径不同。

    (3)根据你自己的指令,再次编译生成img,或者说重新打包生成img,只要没有make clean就行。

这个方法在make clean 后,out不存在了,意味着拷贝的文件也不存在了,所以就需要重复再来一次。


2、第二种方法

    (1)在源码路径下,比如device/samsung/xxxxx/下面,(路径不写了,免得误导),一般都会有device.mk,当然其他的也行,或者自己写一个更好,不过这样比较简单。在这里建立一个文件夹比如app,把APK还有so文件都拷贝进去。

    (2)在mk文件里面找PRODUCT_COPY_FILES += \  这样的东东,恩,看到了吧,这里就是拷贝额外的文件的。在里面加上自己想要打包进的APK,比如暴风

PRODUCT_COPY_FILES += \
        device/samsung/xxx/apk/storm/storm_2.5.52.apk:system/app/storm_2.5.52.apk

    恩别忘了还有so文件,这里单列一个,还有很多个哦

PRODUCT_COPY_FILES += \
        device/samsung/xxx/apkstorm/libbaofengmediascan.so:system/lib/libbaofengmediascan.so

以上的mk文件是借用已有的文件,如果自己写一个,那么就更自由一些,APK放在哪里都不是问题。这里写的是懒人法。

这个方法克服了上面make clean的问题。不过如果是临时测试,用第一种更简单些。


二、有源码的APK

    (1)首先把整个apk的源码包copy到\packages\apps,(包括Android.mk文件)要注意代码中的layout文件夹中的XML不能有中文字样,否则会提示编码errors,编译不能通过,可以用@string的方法解决,这本来就是代码规范。

    (2)然后修改device.mk或者其他相关的文件,这个自己看看,找到PRODUCT_PACKAGES += \,然后照葫芦画瓢,自己加上自己的名字,注意要和app的mk文件定义的名字一样。同时,还要求模块的Android.mk中变量LOCAL_MODULE_TAGS值为optional。


end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值