本文记录一下,在Android源码中如何引用aar包
在AndroidP之前,仅需要在framework/base/Android.mk(这里也可自己在vendor目录下创建目录,放置aar包及Android.mk,尽量独立,降低后期移植维护成本)将aar包加入如下变量,将aar预编译重命名
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += \
ui-itelui:libs/itelui.aar \
ui-appcompat:libs/appcompat.aar
include $(BUILD_MULTI_PREBUILT)
源码中应用应用时,
1)编译至其自身BUILD_JAVA_LIBRARY模块中
include $(CLEAR_VARS)
LOCAL_MODULE := ui-itel-lib
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_AAR_LIBRARIES := ui-itelui ui-appcompat
include $(BUILD_JAVA_LIBRARY)
2) 将导入的aar包包名添加至LOCAL_AAPT_FLAGS
LOCAL_AAPT_FLAGS += --extra-packages xx.package.name
AndroidP及以上版本,应该是谷歌对此部分做了修改,仅配置上述信息后,会报aar中应用到的资源文件找不到,此时的aar包等同于了jar包,不包含资源包
故需在上述添加不变的情况下,再增加一个配置,即将aar包的res目录也加入
应用在使用时需再添加如下:
itelui_res_dir 即放置res的文件路径