build/envsetup.sh
lunch xxxx
cd <path-to-package>
mm
- way 1
adb push - way 2
make snod
有一些apk 文件比较重要的,想直接打包到系统中,开机就能使用。网上百度了一下,只有说如何把apk文件打包到system.img 里面,应该也是类似的。试试参考是否行。
把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法:
1 (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中。
(2) 执行命令make snod , 把添加的spk编到system.img 中
缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。
2 "方法一"的改进。
(1) 新建一个文件夹目录,用来存放apk文件
mkdir packages/apps/Prebuilt_apps
cd packages/apps/Prebuilt_apps
在Prebuilt_apps中新建make文件
vi Android.mk
并写入
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/)
保存退出。
(2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out\target\product\generic\system\app中。
(3) 执行make snod 。完成。
此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out\target\product\generic\system\app没有需要添加的apk,此时再make一次即可,速度很快)。
感谢11楼提供的关于编译成功但无法运行问题的解决方法。
解压apk,如其中lib(.so)文件,把 .so文件copy到system\lib下,再编译。
本人在模拟器上直接加入angrybird.apk(愤怒的小鸟)编译,编译后无法运行。把libangrybirds.so拷贝到system\lib下,再编译后就可以运行