Android系统集成第三方pre-build库和程序对于Android系统集成有源码的第三方库和程序,只需要提供Android.mk文件,把源码集成到 Android编译系统中就可以了,并且有很多例子可以参考。但是对于没有源码的pre-build第三方库和程序,网上介绍的比较少,可以参考的例子也不多。本文简单介绍一下集成pre-build库和程序时候,怎样编写Android.mk。 1、集成静态库
2、集成动态库
3、集成可执行程序
4、集成pre-build Android应用程序(APK)如何集成没有源码的apk文件,纯粹的apk呢? 方法一、目录结构vendor/BM/APPs/MobileQQ2011/MobileQQ2011.apk vendor/BM/APPs/MobileQQ2011/Android.mk 以下是Android.mk:
加进去后,在根目录下执行:make即可, 可以在installed-files.txt中查看是否加入到了对应的img文件中。 弊端是如果加入很多apk,要逐个建立这样的目录结构,也因为有android.mk,会产生相应的临时文件 方法二、纯粹拷贝apk文件 目录结构vendor/BM/APPs/MobileQQ2011.apk vendor/BM/APPs/Renren_Android_3.0.2.apk 。。。。。 通过android提供的PRODUCT_COPY_FILES这个变量来自动拷贝,只需要给此变量赋值。在任何一个确定加入编译的mk文件 中加入(我的是加在msm7627_qrd.mk) PRODUCT_COPY_FILES += / vendor/bm/APPS/MobileQQ2011.apk:system/app/MobileQQ2011.apk/ 这种相对不会很繁琐,不需要一级级的建立目录,在内置很多apk是比较方便。
附加说明:关于android.mk中的LOCAL_OVERRIDES_PACKAGES需要说明一下, 此变量可以使其他的模块不加入编译,如源码中DeskClock的android.mk有 LOCAL_OVERRIDES_PACKAGES := AlarmClock 使 AlarmClock不会加入到编译系统中,不会生成 AlarmClock.apk。 原先我是死活不明白会什么有两个闹钟 AlarmClock和 DeskClock ,源码几乎相同,原先只在 AlarmClock中的文件中修改,就是没有效果,测试说没有修改,原来发布的版本中只有DeckClock.apk,我却在本地make AlarmClock编译出了AlarmClock.apk,>_<!! 试了一下在 DeskClock的android.mk中加入LOCAL_OVERRIDES_PACKAGES := Calendar,删掉Calendar.apk, 然后全部make一下,在system/app下calendar.apk竟然没再生成了????!!! p.s # Some packages may override others using LOCAL_OVERRIDES_PACKAGES.
|
|
来自: lifei_szdz > 《编译》