环境
成都创新互联公司从2013年创立,先为右玉等服务建站,右玉等地企业,进行企业商务咨询服务。为右玉企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。Android Studio:1.3.2
JRE:1.7.0
Android SDK Tools:24.3.4
Android NDK:r10e
Android Studio安装步骤略,下载地址:http://developer.android.com/tools/studio/index.html
找到下载地址后,复制到迅雷下载后安装,Studio很好用的一个地方就是有更新直接下载安装,不用像Eclipse那样重新下载新版。
Android NDK下载地址:https://developer.android.com/tools/sdk/ndk/index.html
同样迅雷下载安装,唯一提醒一点,先把安装包拷贝到要安装的目录,exe文件自动提取到当前目录下,害的我又拷贝了一般,3个多G呐!
上述环境安装完毕,启动Android SDK Manager更新好Android SDK,进入正题;
首先Studio中新建一个工程,默认就是这个样子:
在Project的local.properties文件中告知Android Studio你的ndk所在目录:
注意':'和'\'要进行转义
ndk.dir=D\:\\Android\\android-ndk-r10e
创建一个JNI文件(我放在一个单独的jni包中),简单的一个native方法add,计算两个整数相加的值:
接着我们就要写C层的代码了,在main文件夹下建立一个jni的子文件夹(跟java文件夹并列,Android会默认知道这事底层的代码源文件夹),声明头文件和源码文件:
tips:可以使用javah -jni 'your jni java class with package name'来自动生成.h文件
用法:打开命令行,切换到..\your project path\app\build\intermediates\classes\debug目录下,执行上述命令,然后把这个生成的.h文件拷贝到刚建立的jni目录下
建一个cpp文件,名称自己起名,我起名为math.cpp,实现头文件中声明的方法:
// // Created by dell on 2015/9/10. // #include "math.h" JNIEXPORT jint JNICALL Java_com_lbrant_jni_MathJNI_add (JNIEnv *env, jobject, jint a, jint b) { return a + b; }
在gradle.properties中添加如下,不然编译器会提示错误:
android.useDeprecatedNdk=true
在app module中(注意不是项目根目录),配置ndk编译(这里只配置了moduleName和平台):
defaultConfig { applicationId "com.lbrant.x_project" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk { moduleName "math" abiFilters "armeabi", "armeabi-v7a", "x86" } }
由于是JNI和应用层是在同一个工程中,直接运行系统会自动编译,生成Android.mk和对于so:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。