關於如何解決編譯的時候,內置apk程序或者導入apk源代碼的解答

回答於eoeandroid,我把我回答的內容放在這裏方便查閱。android

呵呵,確實,我也挺不喜歡LZ這種方式的,好吧,我來解答你們。app

編譯的時候內置APK,也能夠稱爲導入APK,分兩種:
一、單獨的APK文件,已經編譯好的
這種通常存在於本身的產品的vendor目錄下的某個專門用於植入的app目錄內,通常經過編譯腳本.mk內插入變量PRODUCT_COPY_FILES來搞定,規則通常用+=(在變量基礎上附加的意思)。通常遇到LZ這種問題,是因爲用的谷歌官方的AOSP腳本致使的,由於官方的build/core/makefile規則文件包含了校驗,其中就有一段是校驗拷貝的程序是否爲apk,若是是,就被禁止。那麼只須要修改這個腳本,屏蔽掉這條命令便可,不影響系統和其餘編譯。具體代碼在makefile第28行。

二、源代碼的apk,沒有編譯的須要本身編譯的
這種通常放在源代碼packages\app下,目錄的形式,(編譯好的APK文件是不存在也不須要Android.mk文件的,因此LZ說弄Android.mk文件搞定的根本就是文不對題。。。)。通常源代碼APK的目錄都有這個文件,實在沒有,就本身寫一個,大體格式爲:
LOCAL_PATH := $(call my-dir)
        include $(CLEAR_VARS)
        
        LOCAL_MODULE := Superuser.apk
        LOCAL_MODULE_TAGS := eng debug
        LOCAL_MODULE_CLASS := EXECUTABLE
        LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
        LOCAL_SRC_FILES := $(LOCAL_MODULE)
        
        include $(BUILD_PREBUILT)
不用解釋了吧?
恩~~~就回答到這裏。
相關文章
相關標籤/搜索