mk文件内容介绍
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := HQ_DevSet
LOCAL_MODULE_TAGS := optional
LOCAL_PROGUARD_ENABLED := full obfuscation LOCAL_PROGUARD_FLAG_FILES := ../../proguard-rules.pro
LOCAL_DEX_PREOPT := false DONT_DEXPREOPT_PREBUILTS := true
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_CERTIFICATE := platform
LOCAL_MULTILIB := 32
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res
src_dirs := java/
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_SRC_FILES += \ src/xx/xx/xx/XxxOne.aidl \ src/xx/xx/xx/XxxTwo.aidl
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \ ../../../xxx/libName:jar
LOCAL_STATIC_JAVA_LIBRARIES += libName \ android-support-v4
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += aarName:../../../xxx/aarName.aar\ aarName2:../../../libs/aarName2.aar
LOCAL_STATIC_JAVA_AAR_LIBRARIES += Name1 \ Name2
LOCAL_AAPT_FLAGS += --auto-add-overlay \ --extra-packages com.xxxx.xxxx.xxxx \ --extra-packages xxx.xxx
version_code = 24 version_name := 1.0.0.0
LOCAL_AAPT_FLAGS += --version-code $(version_code) LOCAL_AAPT_FLAGS += --version-name $(version_name)
LOCAL_SDK_VERSION := 19
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
|
如果使用的系统的包,需要引入他们使用的资源文件,否则会提示编译资源找不到的错误
LOCAL_RESOURCE_DIR += frameworks/support/v7/recyclerview/res LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-recyclerview LOCAL_AAPT_FLAGS += --auto-add-overlay \ --extra-packages android.support.v7.recyclerview
|
编译指令
- 执行模块的编译前需要先将源码环境构建
进入源码根目录执行如下命令,envsetup.sh脚本文件里包含lunch m mm mmm等指令的定义,lunch后是对应型号source build/envsetup.sh lunch xxxx
|
2.编译模块
使用mm
或mma
编译当前目录
mm
和mma
会编译当前目录下的模块,目录目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件
mma
会完全重新编译当前目录和编译当前模块所需要的依赖
mm
只会编译当前目录,在缺少依赖时会失败,一般在源码整编后使用
使用mmm
或mmma
编译指定目录
mmm
和mmma
可以在任意目录下指定对应路径下的模块编译,加a时会同时编译所需依赖
一次性编译某目录下的所有的模块
在改目录创建Android.mk文件,添加以下内容
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) include $(call all-makefiles-under,$(LOCAL_PATH))
|
在该目录下执行编译指令或指向该目录编译即可编译目录下所有包含Android.mk的模块