您的位置:首页 > 移动开发 > Android开发

在android源码编译中导入第三方jar包

2012-11-06 09:40 363 查看
参考了http://fanwei51880.blog.163.com/blog/static/32406740201152014035893/ fanwei51仁兄的文章

源码编译,我们可以只留下app的src,res目录和androidmanifest.xml文件,在app的根目录添加一个android.mk文件,还有我们需要导入的jar包,我这里是libjsoup-1.7.1.jar;

1.我们先写好Android.mk文件;

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := libjsoup
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := FileExpert

include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libjsoup:libjsoup-1.7.1.jar
include $(BUILD_MULTI_PREBUILT)
include $(call all-makefiles-under,$(LOCAL_PATH))


 LOCAL_STATIC_JAVA_LIBRARIES指明我们apk依赖的库,libjsoup是依赖库的别名。

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libjsoup:libjsoup-1.7.1.jar , 在这里定义了我们上面使用的libjsoup,规则是 “库别名:jar包在app下的路径”,比如这里的libjsoup.jar就是在app的根目录下面;

2.接着 要修改一下user_tags.mk文件;

user_tags.mk有两个 一个在build/core下面(这个是google的),一个在vendor/xxx/product_name下面(这个是方案厂商的),建议修改vendor下的;

向user_tags.mk文件里的GRANDFATHERED_USER_MODULES变量追加libjsoup,加在文件末尾就行了,记住是 += 而不是 = ;还有libjsoup前面是tab键,不是空格;

# OTA server modules
GRANDFATHERED_USER_MODULES += \
libjsoup


  

Android.mk文嘉的其它部分就按上面的写好了,只是LOCAL_PACKAGE_NAME := FileExpert要换成你想要的,按照这个编译出来,最后就是FileExpert.apk文件了。

  至此,Android.mk文件编辑好,回到Android源码总目录,叫Android-src好了。在Android-src目录下,执行命令:

. build/envsetup.sh

  执行这个命令主要是设置一下当前shell的环境变量。

然后a: 在Android-src目录下 make FileExpert

或者b: 进入到你apk的源码目录,如我这里放到Android-src/packages/apps/FileExpert,所以我就到这个目录下执行这个命令

mm TARGET_PRODUCT=product_name

  这个TARGET_PRODUCT=product_name随你了,如果你原来编译系统直接用的是make命令,那么这个TARGET_PRODUCT=product_name也可以省下了,直接执行mm就可以了。

  编译完后,你就可以去Android-src/out/target/product/product_name/system/app目录下找你的apk文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: