有时后需要在framework中使用第三方的jar包。本文以在framewrok中添加apache的ant.jar为例记录使用方法。
1、添加jar文件
在android/frameworks/opt/目录下新建ant目录用于存放ant的jar包和mkfile文件,将ant.jar拷贝到该目录下,然后新建Android.mk文件,Android.mk文件内容如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := ant:ant.jar
include $(BUILD_MULTI_PREBUILT)
2、添加jar到framework的jar包中
修改android系统源码android/frameworks/base/Android.mk文件。在其中library部分添加如下配置
LOCAL_STATIC_JAVA_LIBRARIES := ant
如下为本文的Android.mk中的修改部分。
# Build ext.jar
# ============================================================
# NOTICE notes for non-obvious sections
# apache-http - covered by the Apache Commons section.
ext_dirs := \
../../external/nist-sip/java \
../../external/apache-http/src \
../../external/tagsoup/src \
../../external/libphonenumber/java/src
ext_src_files := $(call all-java-files-under,$(ext_dirs))
ext_res_dirs := \
../../external/libphonenumber/java/src
# ==== the library =========================================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(ext_src_files)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVA_LIBRARIES := core
LOCAL_JAVA_RESOURCE_DIRS := $(ext_res_dirs)
#-------add ant.jar----
LOCAL_STATIC_JAVA_LIBRARIES := ant
#-------end add.
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := ext
LOCAL_DX_FLAGS := --core-library
include $(BUILD_JAVA_LIBRARY)
# Include subdirectory makefiles
# ============================================================
3、编译
先编译opt下的ant目录,执行如下命令:
mmm android/frameworks/opt/ant/
然后编译framework,执行如下命令:
mmm android/frameworks/base/
4、使用方法
在framework中的java文件中引入需要使用的jar包,然后使用即可。