Android中集成第三方库

http://www.metsky.com/archives/635.html



Android中使用第三方库可能有两种:Java库.jar和原生库.so/.a,如果只是做上层APK开发,这两种库都可以通过Eclipse集成开发环境进行集成,如果是平台级开发,则都可通过源码集成。本文整理这两种集成方式使用步骤,以下假设程序myapp,集成Java库位myjar.jar,原生库libmyso.so/libmya.a。其中,so库要尽量参照Android引用库规范编写,内部函数命名也要规范(尽管不规范也可能可以使用),.a库为静态联编,一般面向C/C++引用使用,如果Java上层使用,一般需要通过动态库(.so)转接。

一、Eclipse集成

1、myjar.jar包集成

A.当前工程myapp下创建libs目录

B.使用Eclipse导入myjar.jar包即可

2、libmyso.so集成

A.当前工程myapp下创建libs/armeabi目录

B.把libmyso.so库文件拷贝到libs/armeabi目录下即可,因为libmyso.so库为原生库,一般做运行时加载的动态库。

C.Java文件引用加载库

最终生成的apk会自动把myjar.jar和libmyso.so文件打包进去。

二、源码集成

源码集成第三方库也至少有两种方式:C/C++链接方式和Android Prebuild方式,当然似乎前者无法集成myjar.jar包。C/C++方式

1、C/C++链接方式

静态库和动态库一般放置在libs/armeabi目录下,如果库文件较多,也可以单独另立目录存放,只要对应修改库文件路径(搜索路径即可)。

修改Android.mk文件,示例链接libmya.a静态库:

LOCAL_LDFLAGS := $(LOCAL_PATH)/libs/armeabi/libmya.a

2、Android Prebuild方式

1) myjar.jar包集成

A.在packages/app/myapp下创建libs目录,这里假设程序包放在packages/app下面。

B.把myjar.jar包拷贝到该目录下

C.修改Android.mk文件,示例如下:

1include $(CLEAR_VARS)
2LOCAL_STATIC_JAVA_LIBRARIES := myjar
3LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=myjar:libs/myjar.jar
4include $(BUILD_MULTI_PREBUILT)

其中,

LOCAL_STATIC_JAVA_LIBRARIES为引用jar库的别名,可以随便取名,一般就是用库名称就可以了。

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES为指定prebuilt java库规则,格式为:别名:jar文件的完整路径,这里的别名就是LOCAL_STATIC_JAVA_LIBRARIES所取的名字。

源码开发时,myapp.apk将会连同myjar.jar打包,一起放在out/target/product/<prjname>/system/app/目录下;

2) libmyso.so集成

A.在packages/app/myapp下创建libs/armeabi目录

B.把.so库拷贝到libs/armeabi目录下

C.修改Android.mk配置文件,添加如下:

1include $(CLEAR_VARS)
2LOCAL_STATIC_LIBRARIES := libmyso
3LOCAL_PREBUILT_LIBS :=libmyso:libs/armeabi/libmyso.so
4include $(BUILD_MULTI_PREBUILT)

其中,

LOCAL_PREBUILT_LIBS指定prebuilt so库规则,格式:别名:so文件路径。

源码开发时,这个libmyso.so将会被放在out/target/product/<prjname>/system/lib/下,其中system/lib为加载动态库时缺省搜索路径。

此外,libmyso.so还可以集成到build/core/user_tags.mk中,不过一般不建议那么做,我们应尽量减少修改系统级配置。

3) 源码集成编译

make prjname mm /packages/apps/myapp

以上指令是在MTK ANDROID平台上使用,其它平台可能不同。

参考资料:

http://blog.csdn.net/lizhiguo0532/article/details/7219349

http://space.itpub.net/7232789/viewspace-736870


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值