在Android系統原始碼下編譯apk
阿新 • • 發佈:2019-02-18
步驟:
一.找到Android原始碼目錄下packages/apps目錄,在此目錄下新建一個資料夾,以你的apk名字命名,這裡以Test為例。
二.將自己寫的應用目錄下的src和res以及清單檔案複製到Test目錄下。另外,如果你的專案有用到assert檔案或是第三方jar包,還需要將assert資料夾和jar包複製到Test根目錄下。
三.編寫Android.mk檔案。下面為我寫的例子:
LOCAL_PATH:= $(call my-dir) //設定當前模組的編譯路徑為當前資料夾路徑。即當前Android.mk 所在的目錄
include $(CLEAR_VARS) //清除變數
LOCAL_MODULE_TAGS := optional //指該模組在所有版本下都編譯(user,eng,debug等)
LOCAL_CERTIFICATE := platform //使用平臺簽名,PRESIGNED 表示這個apk已經簽過名了,不需要再簽名
LOCAL_ASSERT_DIR := packages/apps/Test/asserts //匯入assets目錄下的檔案
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=android-support-v4 \ //匯入jar包
LOCAL_DEX_PREOPT :=false //是生成apk程式時只生成apk的包,不再生成odex
LOCAL_SRC_FILES := \
$(call all-java-files-under,src) \ //把src下的所有java檔案包含進來
src/com/android/internal/telephony/ITelephony.aidl //如果有aidl,還需單獨將aidl檔案加進來
LOCAL_PACKAGE_NAME :=Test //應用名稱
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app //應用生成路徑
include $(BUILD_PACKAGE)
一.找到Android原始碼目錄下packages/apps目錄,在此目錄下新建一個資料夾,以你的apk名字命名,這裡以Test為例。
二.將自己寫的應用目錄下的src和res以及清單檔案複製到Test目錄下。另外,如果你的專案有用到assert檔案或是第三方jar包,還需要將assert資料夾和jar包複製到Test根目錄下。
三.編寫Android.mk檔案。下面為我寫的例子:
LOCAL_PATH:= $(call my-dir) //設定當前模組的編譯路徑為當前資料夾路徑。即當前Android.mk 所在的目錄
include $(CLEAR_VARS) //清除變數
LOCAL_MODULE_TAGS := optional //指該模組在所有版本下都編譯(user,eng,debug等)
LOCAL_CERTIFICATE := platform //使用平臺簽名,PRESIGNED 表示這個apk已經簽過名了,不需要再簽名
LOCAL_ASSERT_DIR := packages/apps/Test/asserts //匯入assets目錄下的檔案
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=android-support-v4 \ //匯入jar包
LOCAL_DEX_PREOPT :=false //是生成apk程式時只生成apk的包,不再生成odex
LOCAL_SRC_FILES := \
$(call all-java-files-under,src) \ //把src下的所有java檔案包含進來
src/com/android/internal/telephony/ITelephony.aidl //如果有aidl,還需單獨將aidl檔案加進來
LOCAL_PACKAGE_NAME :=Test //應用名稱
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app //應用生成路徑
include $(BUILD_PACKAGE)