在原始碼環境中編譯Android studio專案時的mk指令碼編寫
阿新 • • 發佈:2019-01-08
1、Main專案是主工程,下面有名為app的專案
CommonLib是庫工程,下面有名為lib的專案
Main專案會用到CommonLib庫。
2、原始碼環境中兩個專案是在同一個目錄下,平級的。Android.mk分別在各自的根目錄下。
3、參考了android原始碼中Contacts包含庫ContactsCommon時mk的編寫。
4、Main的Android.mk
LOCAL_PATH:=$(call my-dir) <span style="background-color: rgb(240, 240, 240);">LOCAL_PATH:= $(call my-dir)</span>include $(CLEAR_VARS) #LOCAL_MODULE_TAGS := optional LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 fmmr commonlib_dir = ../CommonLib/lib src_dirs = app/src/main/java $(commonlib_dir)/src/main/java res_dirs = app/src/main/res $(commonlib_dir)/src/main/res LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs)) LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) LOCAL_MANIFEST_FILE := app/src/main/AndroidManifest.xml LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.carl.lib LOCAL_PACKAGE_NAME := Main LOCAL_SDK_VERSION := current #LOCAL_PROGUARD_FLAG_FILES := proguard.flags include $(BUILD_PACKAGE) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += android-support-v4:$(commonlib_dir)/libs/android-support-v4.jar fmmr:app/libs/fmmr.jar include $(BUILD_MULTI_PREBUILT) # Use the folloing include to make our test apk. #include $(call all-makefiles-under,$(LOCAL_PATH))
5、CommonLib的Android.mk
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) #LOCAL_MODULE_TAGS := optional LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 src_dirs = lib/src/main/java res_dirs = lib/src/main/res LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs)) LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) LOCAL_MANIFEST_FILE := lib/src/main/AndroidManifest.xml LOCAL_AAPT_FLAGS := --auto-add-overlay LOCAL_PACKAGE_NAME := CommonLib LOCAL_SDK_VERSION := current #LOCAL_PROGUARD_FLAG_FILES := proguard.flags include $(BUILD_PACKAGE) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += android-support-v4:lib/libs/android-support-v4.jar include $(BUILD_MULTI_PREBUILT) # Use the folloing include to make our test apk. #include $(call all-makefiles-under,$(LOCAL_PATH))
6、Android原始碼根目錄 下執行source build/envsetup.sh
然後在Main工程根目錄下執行mm -B
大功告成!!