在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_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键,不是空格;
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文件了。
源码编译,我们可以只留下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文件了。
相关文章推荐
- android 源码环境下,编译apk时,导入第三方的jar包
- android 源码环境下,编译apk时,导入第三方的jar包
- Android系统开发之三:源码添加编译多个第三方jar包
- android 源码环境下,编译apk时,导入第三方的jar包
- android 源码环境下,编译apk时,导入第三方的jar包
- Android源码编译apk导入第三方包报错
- 求解答,Android源码编译时怎样添加第三方jar包
- Android 源码apk导入多个第三方jar包
- android2.3 源码编译及导入模拟器
- 在Android源码中如何吧so库打包编译进入apk, 集成第三方库(jar和so库)
- Android Studio导入第三方源码库的方法
- Android 导入第三方静态库编译成动态库 c_a_so
- (转)将 \packages\apps 下的 android 源码导入Eclipse编译的方法
- Android导入第三方静态库.a编译成动态库.so
- Android4.2.2源码编译-如何把第三方的动态库重新编译到Android系统的/system/lib目录
- Ubuntu编译Android源码之导入Eclipse
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- [安卓]Android导入第三方静态库.a编译成动态库.so
- eclipse导入编译后的android源码
- Android Studio导入android源码技巧(源码无需编译即可导入)