android预置第三方apk,android 内置APK成系统应用
一、?這種方法必須要自己編寫Android.mk文件(關(guān)于Android.mk可以參考),在研發(fā)中,自己有源碼時,可以將APK的源碼包置于Android源碼中(比如:alps/package/apps中),然后需要編寫Android.mk文件。然后執(zhí)行命令:
./makeMtk remake android
二、?使用這種方法,會將此APK加入到編譯系統(tǒng)。當(dāng)使用new時,此APK仍然會編譯到系統(tǒng)中。具體步驟為:
1.?在alps/packages/apps/下新建一個目錄,假定為Test。
2.?將###.apk(需要內(nèi)置的apk)改名為Test.apk并放置在第一步新建的Test目錄下。
3.?請將以下內(nèi)容復(fù)制并保存為Android.mk?,同樣放在Test目錄下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := user
LOCAL_PREBUILT_PACKAGE := $(LOCAL_PATH)/Test.apk
LOCAL_PACKAGE_NAME := Test
LOCAL_CERTIFICATE := platform
include $(PREBUILT_PACKAGE)
注意:
要想用戶能卸載內(nèi)置的apk,請在Android.mk文件中把變量值
LOCAL_MODULE_TAGS由user改為tests
4.?在alps/build/target/product/.mk文件中的PRODUCT_PACKAGES這一項添加一行Test
5.?將從###.apk解壓出來的庫###.so拷到
alps/vendor/mediatek//artifacts/out/target/product//system/lib/目錄下(無so庫的apk內(nèi)置時,去掉此步驟)。
6.?在alps目錄下執(zhí)行
./mk remake android。
特別注意:依照上述步驟制作,在編譯時會出現(xiàn)錯誤而停止編譯,這主要是LOCAL_MODULE_TAGS := user而引起的。
LOCAL_MODULE_TAGS?:=user eng tests optional
user:?指該模塊只在user版本下才編譯
eng:?指該模塊只在eng版本下才編譯
tests:?指該模塊只在tests版本下才編譯
optional:指該模塊在所有版本下都編譯
所以將以上Android.mk中的user改為test或者potional都可以,至于user版本的編譯是指在發(fā)布版中。我們這里的發(fā)布版的編譯命令是:./makeMtk -opt=TARGET_BUILD_VARIANT=user yecon73v1 new
三、使用這種方法,僅僅操作out目錄下的文件,來將APK和so文件打包到Image中,所以不會影響工程的源碼或編譯系統(tǒng)。但是當(dāng)重新new時,新系統(tǒng)中不會有此APK。
1.(假定處于alps根目錄下)執(zhí)行命令:source ./build/envstup.sh
2.?執(zhí)行命令:
export TARGET_PRODUCT=
3.?手動將so文件拷貝到(無so庫的apk內(nèi)置時,去掉此步驟)
cp ###.so alps/out/product//system/lib/
4.?將APK文件拷貝到
cp ###.apk alps/out/product//system/app/
5. (假定處于alps根目錄下)執(zhí)行命令:
make snod(或者m snod命令)
除了以上方法外還可以把apk拷貝到alps_53/vendor/mediatek/proprietary/packages/apps/目錄下面的子目錄里面
總結(jié)
以上是生活随笔為你收集整理的android预置第三方apk,android 内置APK成系统应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 按摩器多少钱啊?
 - 下一篇: 丰田霸道27中东版价格 丰田霸道2700