Android系统集成第三方pre-build库和程序
来源:互联网 发布:intellij java 编辑:程序博客网 时间:2024/06/05 00:13
对于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/
vendor/bm/APPS/Renren_Android_3.0.2.apk:system/app/Renren_Android_3.0.2.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.
# Filter out (do not install) any overridden packages.
overridden_packages := $(call get-package-overrides,$(modules_to_install))
ifdef overridden_packages
# old_modules_to_install := $(modules_to_install)
modules_to_install := /
$(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), /
$(modules_to_install))
endif
其他参考:
1.对Android.mk文件中变量做了详细说明
http://www.cnblogs.com/leaven/archive/2011/03/30/1999350.html
2. Android.mk文件语法规范
http://apps.hi.baidu.com/share/detail/15447104
- Android系统集成第三方pre-build库和程序
- Android系统集成第三方pre-build库和程序
- Android系统集成第三方pre-build库和程序
- Android系统集成第三方pre-build库和程序
- Android系统集成第三方pre-build库和程序(转)
- Android系统集成第三方pre-build库和程序(转)
- Android系统集成第三方pre-build库和程序
- Android系统集成第三方pre-build库和程序(转)
- Android系统集成有源码的第三方库和程序
- Android系统集成有源码的第三方库和程序
- Andrid系统集成第三方pre
- Android 笔记:AndroidTrain , Lint , build.gradle , 第三方库
- Jni中执行ndk-build,编译第三方静态库(.a)和动态库(.so)的Android.mk文件写法
- Android调用第三方程序
- NDK build 引入第三方动态库
- Android获取手机中所有应用程序和第三方程序
- Android第三方库和框架
- Android 第三方库
- Android 界面知识积累
- javascript图片滑动效果
- PNG图处作为背景的问题
- 断网不稳定,如何解决(转载)
- Tomcat:IOException while loading persisted sessions: java.io.EOFException解决
- Android系统集成第三方pre-build库和程序
- 字节byte转换为B,KB,MB,GB,TB
- 在win2K中怎样使用route add添加默认网关?
- 彻底删除oracle9i
- Oracle数据库的系统和对象权限
- servlet+jsp 验证码
- RPG游戏之龙腾世纪魔术师养成攻略
- 如何在linux中查看程序占用的内存
- Hive-如何基于分区优化