如何把应用程序app编译进android系统

发布网友 发布时间:2022-04-24 05:02

我来回答

1个回答

热心网友 时间:2023-10-30 11:13

把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;同时也可以删减系统自带的应用程序,精简系统;1.\build\target\proct目录下generic.mk文件:Java代码收藏代码PRODUCT_PACKAGES:=\AccountAndSyncSettings\DeskClock\AlarmProvider\Bluetooth\Calculator\Calendar\Camera\testMid\CertInstaller\DrmProvider\Email\Gallery3D\LatinIME\Launcher2\Mms\Music\我们添加一个testMid\应用名称。2.把testMid包放入\packages\apps目录下,修改android.mk文件。Java代码收藏代码LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE_TAGS:=optionalLOCAL_SRC_FILES:=$(callall-subdir-java-files)LOCAL_PACKAGE_NAME:=testMidLOCAL_CERTIFICATE:=platforminclude$(BUILD_PACKAGE)注:LOCAL_PACKAGE_NAME:=testMid(包名必须和generic.mk中添加的相同)编译源码,可以看到在\out\target\proct\smdkv210\system\app目录下生存了testMid.apk了。这时system.img也包含了此应用。-------------------------------------------------------------------特殊情况:有时,应用需要包含jar包,这时的app导入源码时会出现问题:MODULE.TARGET.JAVA_LIBRARIES.libarityalreadydefinedbystop由于LOCAL_STATIC_JAVA_LIBRARIES:=libarity会引发错误信息。目前解决方法是:\build\core目录下修改base_rules.mk注释掉错误信息:ifdef$(mole_id)#$(error$(LOCAL_PATH):$(mole_id)alreadydefinedby$($(mole_id)))endif$(mole_id):=$(LOCAL_PATH)--重新编译,这时可以通过了。(2)、删除原厂(Telchips)带源码的应用程序,如DTV_DVBT在/device/telechips/m801/device.mk注释掉相应语句:#PRODUCT_PACKAGES+=\#SampleDVBTPlayer\同时,在/out/target/proct/m801/system/app找到相应的.APK包,并删除

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com