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

本文详细介绍了如何在Android源码中编译应用并添加第三方静态库。主要步骤包括:编写Android.mk文件,指定依赖库及其路径,修改user_tags.mk文件以包含静态库,并通过执行编译命令生成APK。最终,编译完成后可在指定目录找到APK文件。
摘要由CSDN通过智能技术生成

源码编译,我们可以只留下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、付费专栏及课程。

余额充值