原文地址: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个设备记得运行前设置下用哪个。