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

Android下用JNI让Java调用C函数

2012-03-26 08:27 218 查看
原文地址:http://blog.csdn.net/ariesjzj/article/details/7388874

基本步骤是首先将C函数编译成一个.so库,然后用Java主程序通过JNI载入库和调用其中的函数。

 

第一步是下载NDK,其中有些很适合入手的例子,按官方文档说的装好或解压好。

 

第二步:编译动态链接库。以NDK自带的sample之一hello-jni为例,先进入到该目录下,然后执行ndk-build(在NDK目录下)就能生成以下一些目录:

libs: stripped过的.so,这个是一般情况下拿来链接进最终app的库。

obj: 没stripped过的.so,这个带符号表等调试信息,debug的时候可以用。

assets, gen, res等一坨其它的东西

注意JNI下的Application.mk可指示生成的目标为针对arm还是x86平台。如果要将.so编译成x86平台的,在jni下创建Application.mk:

APP_ABI    := x86

 

第三步:编译整个app的apk。初始的时候工程目录一般包含两个文件夹,一个jni,包含c文件,另一个src,包含java文件。在上一步编译完so后用eclipse导入项目(File->New->Project->Android Project),然后有个选项是从已有工程中载入,选中后它会自动解析Android.mk文件帮忙填好各项。



最后点eclipse中的运行,就会自动用刚才编译完的指定平台的so生成最后的可执行文件,而且自动打包成apk。如果连了n个设备记得运行前设置下用哪个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: