NDK开发
一、环境配置
1、NDk下载
打开管理器,勾选NDK,Android Studio会自动下载ndk。
下载完成后,可以如下方式查看目录:
2、NDK环境变量配置
在PATH系统变量下添加:ndk的目录即可
在cmd中输入:ndk-build,如果出现如下界面,表示成功安装。
二、开发
文件配置
1、android.useDeprecatedNdk=true,在
2、添加ndk,在app级别的build.gradle中添加ndk{},如下图所示
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "com.yf.jar"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"
//注意此处的位置
ndk {
moduleName "JNIDEMO" //模块名称,系统自动生成的.so文件将会以“lib+模块名称”命名,比如本例的libJNIDEMO.so
stl "stlport_static"
ldLibs "log"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
JNI开发
1、新建一个activity或者是一个普通的java类,这里以普通java类为例:
package com.yf.jar.jnidemo;
/**
* 类功能:
* Created by lenovo on 2017/5/9 22:13.
*/
public class JniTest {
public native String test();
}
2、运行Build菜单下的Make Project选项(Ctrl+F9),可以在app/build/intermediates/classes/debug/目录下,找到整个项目的.class文件,如图所示:
,
当然你也可以使用javac命令行生成JniTest.class文件,效果一样。
然后利用javah命令行,生成.h文件。具体到本项目就是:
cd app/build/intermediates/classes/debug/
javah com.yf.jar.jnidemo.JniTest,
然后在app/build/intermediates/classes/debug/目录下就会生成一个com_yf_jar_jnidemo_JniTest.h文件。文件中主要是一个C语言版本的test()方法。
3、新建一个JNI文件夹,如图:
。
将com_yf_jar_jnidemo_JniTest.h拷贝到jni文件夹中,同时右键新建一个c/cpp文件,名字可以是任意的,但是必须要
ndk开发
ndk的开发是以jni开发为基础的,只是大部分时间是将本地方法定义在activity或者工具类中,从而达到隐藏实现细节的目的。
1、在activity中定义native方法;
2、实现native方法;
3、生成.so文件;
4、使用so文件。
扩展
ndk开发对c/c++语言的功底要求较高,一般也只会在对安全性较高或者一些java不擅长的领域(如图像处理)才会使用到。