因为源码里开发的应用程序是利用Android编译框架进行编译,因此当这样的应用程序引用第三方jar包时也遵守了编译框架规则,也是利用mk文件进行配置编译参数。
比如,现在 packages/apps/ 下开发了一款名为 MyPhotos 的应用程序,应用程序根目录为 packages/apps/MyPhotos ,现在想引用 httpclient.jar,
并将其放置在如下路径 packages/apps/MyPhotos/libs/httpclient.jar 。
那么 Android.mk 看起来是下面这个样子:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_STATIC_JAVA_LIBRARIES := httpclient
LOCAL_PACKAGE_NAME := MyPhotos
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
##############################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := httpclient:libs/httpclient.jar
include $(BUILD_MULTI_PREBUILT)
include $(call all-makefiles-under,$(LOCAL_PATH))
主要是上面绿色绿色部分,
LOCAL_STATIC_JAVA_LIBRARIES := httpclient
指定我们的应用程序将引用的jar包,jar包名与后面预编译指定的名相同即可,
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := httpclient:libs/httpclient.jar
include $(BUILD_MULTI_PREBUILT)
这几行表示预编译libs/httpclient.jar 处的jar包,将被我们的应用程序引用。
赋值处冒号左边值表示编译后的jar包名,应用程序将利用这个名字引用该jar包。
赋值处冒号右边值表示源jar包的路径,从应用程序根目录开始计算相对路径。
如果应用程序引用多个jar包,用空格将它们隔开即可。