一:aar文件如何引用
系统Settings中引用bidehelper-1.1.12.aar
文件为例
源码地址:packages/apps/Settings/Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)LOCAL_SRC_FILES := \$(call all-logtags-files-under, src)LOCAL_MODULE := settings-logtagsinclude $(BUILD_STATIC_JAVA_LIBRARY)# Build the Settings APK
include $(CLEAR_VARS)LOCAL_PACKAGE_NAME := Settings
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_USE_AAPT2 := trueLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_STATIC_ANDROID_LIBRARIES := \android-support-v4 \android-support-v13 \android-support-v7-appcompat \android-support-v7-cardview \android-support-v7-preference \android-support-v7-recyclerview \android-support-v14-preferenceLOCAL_JAVA_LIBRARIES := \bouncycastle \core-oj \telephony-common \ims-common \telephony-extLOCAL_STATIC_JAVA_LIBRARIES := \jsr305 \settings-logtags+ LOCAL_STATIC_JAVA_AAR_LIBRARIES := bide_helper+ LOCAL_AAPT_FLAGS := \
+ --auto-add-overlay \
+ --extra-packages com.blackberry.bidehelperLOCAL_PROGUARD_FLAG_FILES := proguard.flagsifneq ($(INCREMENTAL_BUILDS),)LOCAL_PROGUARD_ENABLED := disabledLOCAL_JACK_ENABLED := incrementalLOCAL_JACK_FLAGS := --multi-dex native
endifinclude frameworks/opt/setupwizard/library/common-gingerbread.mk
include frameworks/base/packages/SettingsLib/common.mkinclude $(BUILD_PACKAGE)+ include $(CLEAR_VARS)+ LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
+ bide_helper:libs/bidehelper-1.1.12.aar+ include $(BUILD_MULTI_PREBUILT)# Use the following include to make our test apk.
ifeq (,$(ONE_SHOT_MAKEFILE))
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
主要代码如下:
#名称可以随便写
LOCAL_STATIC_JAVA_AAR_LIBRARIES := bide_helper#写入aar文件中的包名
LOCAL_AAPT_FLAGS := \--auto-add-overlay \--extra-packages com.blackberry.bidehelper
aar文件中的包名可以用压缩工具直接打开,查看AndroidManifest.xml文件
<?xml version="1.0" encoding="utf-8" ?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.blackberry.bidehelper" android:versionCode="1" android:versionName="1.0.0.219"><uses-sdk android:minSdkVersion="21" android:targetSdkVersion="26" /> <application android:allowBackup="false" android:label="@string/app_name" android:supportsRtl="true" /> </manifest>
include $(CLEAR_VARS)#构建静态java库
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \bide_helper:libs/bidehelper-1.1.12.aarinclude $(BUILD_MULTI_PREBUILT)
编译后文件生成路径:out\target\product\msm8909\obj\JAVA_LIBRARIES
喜欢源码分析系列可参考其他文章:
Android源码分析(一)-----如何快速掌握Android编译文件
Android源码分析(二)-----如何编译修改后的framework资源文件
Android源码分析(三)-----系统框架设计思想
Android源码分析(四)-----Android源码编译及刷机步骤
Android源码分析(五)-----如何从架构师的角度去设计Framework框架