Android Framework中引入第三方框架jar包
2017-10-21 12:06
525 查看
公司在做framework开发,所以有时候经常需要引入第三方框架更快捷的进行开发,这里我吸取前人的经验,总结如下:
1.比如我现在负责模块是这个/work/current360/alps/packages/apps/Settings,那么我就在此目录下新建一个libs目录,里面存放我需要导入的包,如图:
2.在Android.mk里加入以下字段:
我们只需要注意看
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下的导入还是比较麻烦的)。
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.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 include $(BUILD_MULTI_PREBUILT) include $(CLEAR_VARS) ifeq ($(strip $(MTK_CLEARMOTION_SUPPORT)),no) LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets_no_clearmotion else LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets_clearmotion endif LOCAL_JAVA_LIBRARIES := bouncycastle conscrypt telephony-common ims-common \ mediatek-framework LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 android-support-v13 jsr305 \ com.mediatek.lbs.em2.utils \ com.mediatek.settings.ext LOCAL_MODULE_TAGS := optional LOCAL_STATIC_JAVA_LIBRARIES += okio-1-7-0 okhttp-2-7-5 gson-1-7-1 LOCAL_SRC_FILES := \ $(call all-java-files-under, src) \ src/com/android/settings/EventLogTags.logtags LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res_ext LOCAL_PACKAGE_NAME := Settings LOCAL_CERTIFICATE := platform LOCAL_PRIVILEGED_MODULE := true LOCAL_PROGUARD_FLAG_FILES := proguard.flags ifneq ($(INCREMENTAL_BUILDS),) LOCAL_PROGUARD_ENABLED := disabled LOCAL_JACK_ENABLED := incremental endif include frameworks/opt/setupwizard/navigationbar/common.mk include frameworks/opt/setupwizard/library/common.mk include frameworks/base/packages/SettingsLib/common.mk include $(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下的导入还是比较麻烦的)。
相关文章推荐
- Android.mk如何引入第三方jar包
- Android小知识——关于引入第三方jar包引发的java.lang.NoClassDefFoun
- Android.mk如何引入第三方jar包
- Android Studio引入第三方框架的方法总结
- android中引入第三方jar包方法( java.lang.NoClassDefFoundError: com.sina.weibo.sdk.auth.AuthInfo)解决办法
- android引入第三方jar包步骤
- Android配置环境与引入第三方jar包
- Android项目中如何正确的引入第三方jar包
- Android第三方框架之xListView的使用方法
- maven引入第三方jar包
- SmartAndroid 2.0 第三方框架
- 王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V1(20140809)之Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HT
- Android 引入Airbnb Lottie框架后,报错Error inflating class com.airbnb.lottie.LottieAnimationView
- cocos2dx和CocosCreator的android端引入第三方库的配置
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
- android存储访问框架Storage Access Framework
- iOS 解决Xcode引入第三方Framework 找不到头文件
- IOS开发~解决引入第三方framework出现duplicate symbol错误
- Hush Framework框架配置(续) 转自《Android和PHP最佳实践》官方站
- android第三方框架 xlistview 的使用