Android Framework中引入第三方框架jar包

来源:互联网 发布:淘宝双11后生意不好 编辑:程序博客网 时间:2024/04/30 00:59

公司在做framework开发,所以有时候经常需要引入第三方框架更快捷的进行开发,这里我吸取前人的经验,总结如下:
1.比如我现在负责模块是这个/work/current360/alps/packages/apps/Settings,那么我就在此目录下新建一个libs目录,里面存放我需要导入的包,如图:
这里写图片描述

2.在Android.mk里加入以下字段:

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := okio-1-7-0:libs/okio-1.7.0.jarLOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += okhttp-2-7-5:libs/okhttp-2.7.5.jarLOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += gson-1-7-1:libs/gson-1.7.1.jarinclude $(BUILD_MULTI_PREBUILT)include $(CLEAR_VARS)ifeq ($(strip $(MTK_CLEARMOTION_SUPPORT)),no)LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets_no_clearmotionelseLOCAL_ASSET_DIR := $(LOCAL_PATH)/assets_clearmotionendifLOCAL_JAVA_LIBRARIES := bouncycastle conscrypt telephony-common ims-common \                        mediatek-frameworkLOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 android-support-v13 jsr305 \                               com.mediatek.lbs.em2.utils \                               com.mediatek.settings.extLOCAL_MODULE_TAGS := optionalLOCAL_STATIC_JAVA_LIBRARIES += okio-1-7-0 okhttp-2-7-5 gson-1-7-1LOCAL_SRC_FILES := \        $(call all-java-files-under, src) \        src/com/android/settings/EventLogTags.logtagsLOCAL_RESOURCE_DIR := $(LOCAL_PATH)/resLOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res_extLOCAL_PACKAGE_NAME := SettingsLOCAL_CERTIFICATE := platformLOCAL_PRIVILEGED_MODULE := trueLOCAL_PROGUARD_FLAG_FILES := proguard.flagsifneq ($(INCREMENTAL_BUILDS),)    LOCAL_PROGUARD_ENABLED := disabled    LOCAL_JACK_ENABLED := incrementalendifinclude frameworks/opt/setupwizard/navigationbar/common.mkinclude frameworks/opt/setupwizard/library/common.mkinclude frameworks/base/packages/SettingsLib/common.mkinclude $(BUILD_PACKAGE)ifeq (,$(ONE_SHOT_MAKEFILE))include $(call all-makefiles-under,$(LOCAL_PATH))endif

我们只需要注意看

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES
include (BUILDMULTIPREBUILT)include(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES

这四个标签:
第一个标签是自己预置的jar包,里面第一个按照规范写,okio-1-7-0:libs/okio-1.7.0.jar,:前面的标签可以任意写,但是后面就要写libs下的真正路径,比如我的就算放置在libs/okio-1.7.0.jar下,所以写的就是这个,比如我要放置EventBus,那我这样写LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := eventbus-3.1.0-RC:libs/eventbus-3.1.0-RC.jar就没错;

第二个标签是编译预置的jar,必须要写;

第三个标签是清除上面的变量(反正记住加完第三方jar就写这个,防止对后面的java library造成干扰);

第四个就是写libs下jar包的文件名。注意,如果有多个文件就要添加+操作符号,比如上面看到的

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := okio-1-7-0:libs/okio-1.7.0.jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += okhttp-2-7-5:libs/okhttp-2.7.5.jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += gson-1-7-1:libs/gson-1.7.1.jar

这里后面两个jar就是加了+,同理,LOCAL_STATIC_JAVA_LIBRARIES += okio-1-7-0 okhttp-2-7-5 gson-1-7-1也是如此,同样的标签都需要进行这样操作,不然就是覆盖了,显然不合理,我们要的只是追加。经过这些操作,我们已经完成jar
包的添加,可以很方便的使用了(编译完成也没出错,记得在使用的时候进行导入,framework下的导入还是比较麻烦的)。

原创粉丝点击