標籤雲

Android (59) ActionScript (52) PHP (14) JavaScript (11) 設計模式 (10) CSS與Html (8) Flex (7) Material Design (6) frameworks (5) 工具 (5) 串流影音 (4) 通用 (4) DB (3) FlashRemoting (3) Java (3) SQL (3) Mac 操作 (2) OpenGL ES (2) PureMVC (2) React Native (2) jQuery (2) AOSP (1) Gradle (1) XML (1) 軟體設定 (1)

搜尋此網誌

顯示具有 AOSP 標籤的文章。 顯示所有文章
顯示具有 AOSP 標籤的文章。 顯示所有文章

2018/08/07

AOSP - 系統內建 app 的 Android.mk 範例

有玩過 aosp 的人應該都有接觸過 mk 檔的撰寫
今天就來整理下如果要將 app 放進 aosp 裡面
Android.mk 檔要怎麼寫

最簡單的方式是先將 Module 編譯成 apk 檔
這樣子可以使用 gradle 編譯
dependency 也不用寫在 Android.mk 裡
非常簡單
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

# Module name should match apk name to be installed
LOCAL_MODULE := XXXXXXX

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_CERTIFICATE := platform

include $(BUILD_PREBUILT)

如果因為原始碼管理或是其他原因
你必須要把 Module 的專案原始碼放進 aosp 裡面的話
那麼可以參考一下下面的複雜版本

LOCAL_PATH:= $(call my-dir)

# compile time only jar names (for later use)
#COMPILE_LIBRARIES := compiler-a compiler-b

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

# Name of the module to build
LOCAL_PACKAGE_NAME := XXXXXXX

# module src file path
LOCAL_SRC_FILES := \
        $(call all-java-files-under, java)

# path(s) of resources
#LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res)

# List of static libraries to include in the package
#LOCAL_STATIC_JAVA_LIBRARIES := lib-jar-a lib-jar-b lib-jar-c

#LOCAL_STATIC_JAVA_AAR_LIBRARIES := lib-aar-a lib-aar-b lib-aar-c

# path of compile time libs
#LOCAL_CLASSPATH := $(addprefix $(LOCAL_PATH)/libs/,$(addsuffix .jar, $(COMPILE_LIBRARIES)))

# set as privileged application
#LOCAL_PRIVILEGED_MODULE := true

# use platform key to sign the module
LOCAL_CERTIFICATE := platform

# proguard enabled setting
LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_PACKAGE)

############## JAR/AAR Files ####################################
#include $(CLEAR_VARS)
#
## pre built all your jar and aar lib for your module 
## so you can use the lib name in LOCAL_STATIC_JAVA_LIBRARIES and LOCAL_STATIC_JAVA_AAR_LIBRARIES
#LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib-jar-a:libs/lib-jar-a.1.0.0.jar \
#    lib-jar-b:libs/lib-jar-b.1.0.0.jar \
#    lib-jar-c:libs/lib-jar-c.1.0.0.jar \
#    lib-aar-a:libs/lib-aar-a.1.0.0.aar \
#    lib-aar-b:libs/lib-aar-b.1.0.0.aar \
#    lib-aar-c:libs/lib-aar-c.1.0.0.aar
#
#include $(BUILD_MULTI_PREBUILT)

以上是參考不同範例綜合而成
若有錯誤及建議也希望不吝指教