依赖jar包
先声明
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := moduleName:libs/xxx.jar
moduleName2:libs/xxx2.jar
再使用
LOCAL_STATIC_JAVA_LIBRARIES := moduleName
moduleName2 \
如何依赖aar
先声明
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := widget-项目名:路径/widget.aar
再使用
LOCAL_STATIC_JAVA_AAR_LIBRARIES := widget-项目名
给aar添加包名
LOCAL_AAPT_FLAGS := --auto-add-overlay
--extra-packages android.support.v7.appcompat \
aar和jar一样的依赖方式;
配置assets目录
LOCAL_ASSET_DIR := $(LOCAL_PATH)/app/src/main/assets
配置resource
LOCAL_RESOURCE_DIR :=
$(addprefix $(LOCAL_PATH)/../../library/yxp_src/dictenginelib/, res)
$(LOCAL_PATH)/res
配置源码
LOCAL_SRC_FILES := $(call all-java-files-under, src)
src/com/noahedu/synclearning/engine/IBookService.aidl
src/com/noahedu/synclearning/engine/IBookServiceCallback.aidl
(extrafunction)/src/main/java)\
#需要引入library/aar的包名
LOCAL_AAPT_FLAGS := --auto-add-overlay
--extra-packages com.noahedu.DictEngine
--extra-packages android.support.v7.appcompat
--extra-packages android.support.constraint
--extra-packages android.support.v7.recyclerview \
‘:=’是赋值的意思;’+=’是追加的意思;‘\’表示连接符。
LOCAL_MODULE_TAGS :=user eng tests optional
- user: 指该模块只在user版本下才编译
- eng: 指该模块只在eng版本下才编译
- tests: 指该模块只在tests版本下才编译
- optional:指该模块在所有版本下都编译
#指定arm目录
LOCAL_PREBUILT_JNI_LIBS_arm := libs/armeabi-v7a/libdecrypt.so
libs/armeabi-v7a/liblasa.so
libs/armeabi-v7a/libspeex.so \
#指定androidmainfest.xml目录
LOCAL_MANIFEST_FILE := app/src/main/AndroidManifest.xml
#########################################
以apk方式引用
#########################################
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ${moduleName}
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_SUFFIX := .apk
LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/app
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
include $(BUILD_PREBUILT)
参考
1. https://blog.csdn.net/hegan2010/article/details/88710201
2. https://www.jianshu.com/p/63715928063b
3. LOCAL_PRIVILEGED_MODULE 详解 https://blog.csdn.net/zhanglianyu00/article/details/75099025