在安卓定制化开发过程中,难免遇到要把自己的app预置到系统中,作为系统应用使用,其实方法有很多,过程很简单,今天分享一下我是怎么做的,共总分两步:
第一步:要找到当前系统应用apk存放的路径,这个可以通过在源码中搜索来确定,通过桌面上的几个应用就可以确定,如果你是经常编译源码的相信不难,
比如:
图一
图二
如图一示,这个路径不是固定的,每个平台或每家公司都不一样,可以自定义的,这个今天先不说
图二是用于系统OTA的应用,包含了一个Android.mk和安装包两个文件,Android.mk的内容是有格式的,需要修改的并不多,安装包是系统签名的apk文件,看下Android.mk内容:
LOCAL_MODULE和LOCAL_SRC_FILES的内容要和安装包的名字一致 ,LOCAL_CERTIFICATE表示是否使用平台签名,要看情况,一般情况下是platform,这样第一步就完成了。
第二步:修改平台对应的device文件,把我们的apk加入编译模块,这样在源码编译后,我们的apk就合入到固件里面了,要去device目录下找
源码路径: ..\mt9669-ad9.0\device\mediatek\m7642\device_fusion_turnkey.mk
可以看到其他系统app也在这里定义了
这样第二步也算完成了,接下就是编译,烧录固件,检查结果了,可以通过获取设备上所有进程名来确定,因为你的app如果是后台服务型的,就不会显示在桌面上;
adb命令获取运行的进程:adb shell pm list packages
如果打印出我们app的进程名,说明预置系统app就成功了。