参考:http://ticktick.blog.51cto.com/823160/1671438
Android build 系统理解:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/
参考一些相关的文章,然后在6818平台下面完成了一些系统自带应用的删除工作,这里只是简单删掉一些明显就对项目没有什么作用的系统应用,具体要精简的系统应用还得在后期继续研究,并继续完善这篇文章。
首先系统应用在编译后都在这个路径下面:~/out/targe/produce/s5p6818/system/app/~xxxx.apk 然后在更下一级目录 : ./arm/xxx.odex 还有.odex文件 经查阅资料发现.odex也类似安装文件,它包括了apk文件的主要信息,意思就是说如果只是删掉了apk文件而没有将odex文件删除那么重新覆盖安装的apk可能就还是原来的应用,这一点我在之间的mtk6572平台上接收过经验教训。
那么,只要修改编译系统里面的配置文件,删除对应应用的编译配置就能够将这些不必要的应用去掉了。编译配置文件在路径:~/build/target/product/core.mk 里面,这里贴上一些具体应用配置片段:
PRODUCT_PACKAGES += \
BasicDreams \
Browser \
# Calculator \
# Calendar \
# CalendarProvider \
CaptivePortalLogin \
CertInstaller \
# Contacts \
# DeskClock \
DocumentsUI \
# DownloadProviderUi \
Exchange2 \
ExternalStorageProvider \
FusedLocation \
InputDevices \
KeyChain \
Keyguard \
LatinIME \
如上述代码块所示:我已经将calculator、calendar等几个应用的配置注释了。现在开始编译Android部分,但是编译后刷机发现并没有去掉对应的系统应用!怎么回事呢?原来out/~~目录下面的apk文件和odex文件还没有删掉,应该是系统编译后打包,又把里面的文件打包到镜像了。
现在找到路径:~/out/targe/produce/s5p6818/system/app/ 将里面对应的apk文件删掉,并将arm/文件夹下面的odex也删掉,再次编译刷机 OK!