把第三方或自己開發的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下,再編譯後就可以運行