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

参考了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文件了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值