android NDK——搭建Android Studio的NDK环境
2017-08-30 12:45
411 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
我接触jni的时候正在用Android studio,所以我记录一下在as上部署ndk环境的步骤。
首先先看一下大概步骤:
1,下载ndk
2,配置环境变量
3,配置as属性
4,Java测试代码
5,创建.h的头文件
6,创建.c的测试c代码
7,生成so文件
8,测试ndk环境
ok。接下来我们就来一步一步的实现。
1,下载ndk。这里推荐使用as内部下载,google在中国也部署了服务器,所以不用翻墙也可以下载。
2,配置as中ndk路径。如果ndk路径没有自动添加,则点击select即可。并在local.properties配置文件中检查是否正确配置路径。
配置文件里是你所下载ndk的路径,我这里是E:\sdk\ndk-bundle
3,配置ndk系统环境变量,并检测
dos下命令:ndk-build;出现以下信息说明配置成功
4,设置as。将ndk版本差异检测过滤掉,要不然项目无法编译。添加:android.useDeprecatedNdk=true
5,编写调用c的java代码。注意:这里如果方法名报错,不用管他。
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
6,生成调用本地方法的.h头文件。用as自带的Terminal工具来生成。
命令:
进入你项目的java文件夹下
cd app/src/main/java
com.lh.jni是你的完整包名,后面跟具体写有调用c代码的java类
javah -jni com.lh.jni.JniKit
7,生成jni文件夹。用于存放.h和.c文件
8,将步骤6中生成的.h文件移动到jni文件夹下,并创建一个.c文件来写c代码
9,写c的测试代码。
include中指向你创建的.h头文件
Java_com_lh_jni_JniKit_calculate;Java_包名类名方法名(参数)
2
3
4
5
1
2
3
4
5
10,在as中配置生成so文件的信息。
11,用Make Project 生成so文件,然后运行项目。
到这里我们就可以调用本地的c/c++代码了。
12,拿出项目so文件,供其它项目使用。
13,activity,测试本地c代码的调用(这里要注意的是,移到其他项目使用,必须把含有native方法的java文件放在与生成so文件的同包名下)
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
到这里,整个ndk环境的搭建、测试已经全部完成了。只有搭建好了jni环境,才能去编写c/c++。
我接触jni的时候正在用Android studio,所以我记录一下在as上部署ndk环境的步骤。
首先先看一下大概步骤:
1,下载ndk
2,配置环境变量
3,配置as属性
4,Java测试代码
5,创建.h的头文件
6,创建.c的测试c代码
7,生成so文件
8,测试ndk环境
ok。接下来我们就来一步一步的实现。
1,下载ndk。这里推荐使用as内部下载,google在中国也部署了服务器,所以不用翻墙也可以下载。
2,配置as中ndk路径。如果ndk路径没有自动添加,则点击select即可。并在local.properties配置文件中检查是否正确配置路径。
配置文件里是你所下载ndk的路径,我这里是E:\sdk\ndk-bundle
3,配置ndk系统环境变量,并检测
dos下命令:ndk-build;出现以下信息说明配置成功
4,设置as。将ndk版本差异检测过滤掉,要不然项目无法编译。添加:android.useDeprecatedNdk=true
5,编写调用c的java代码。注意:这里如果方法名报错,不用管他。
public class JniKit { /**如果你的native方法报错,没关系,配置完成自然会编译通过 * @param num * @return */ public static native int calculate(int num); static { System.loadLibrary("JniDemo"); } }1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
6,生成调用本地方法的.h头文件。用as自带的Terminal工具来生成。
命令:
进入你项目的java文件夹下
cd app/src/main/java
com.lh.jni是你的完整包名,后面跟具体写有调用c代码的java类
javah -jni com.lh.jni.JniKit
7,生成jni文件夹。用于存放.h和.c文件
8,将步骤6中生成的.h文件移动到jni文件夹下,并创建一个.c文件来写c代码
9,写c的测试代码。
include中指向你创建的.h头文件
Java_com_lh_jni_JniKit_calculate;Java_包名类名方法名(参数)
#include <com_lh_jni_JniKit.h> JNIEXPORT jint JNICALL Java_com_lh_jni_JniKit_calculate(JNIEnv *env, jclass cls, jint num) { return num * num; }1
2
3
4
5
1
2
3
4
5
10,在as中配置生成so文件的信息。
11,用Make Project 生成so文件,然后运行项目。
到这里我们就可以调用本地的c/c++代码了。
12,拿出项目so文件,供其它项目使用。
13,activity,测试本地c代码的调用(这里要注意的是,移到其他项目使用,必须把含有native方法的java文件放在与生成so文件的同包名下)
public class MainActivity extends AppCompatActivity { private TextView test_jni_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test_jni_text= (TextView) findViewById(R.id.test_jni_text); test_jni_text.setText("4*4="+JniKit.calculate(4)); } }1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
到这里,整个ndk环境的搭建、测试已经全部完成了。只有搭建好了jni环境,才能去编写c/c++。
相关文章推荐
- android NDK——搭建Android Studio的NDK环境
- android NDK——搭建Android Studio的NDK环境
- Android NDK 开发环境搭建(二)----来源http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.htm
- 【android NDK JNI】android-ndk-r9d+adt-bundle-windows环境搭建-Hello-jni案例说明
- Android NDK 环境搭建 之 起始篇NDK HelloWorld
- Android NDK 开发(五)AndroidStudio 2.2 NDK的开发环境搭建
- Android studio-NDK环境搭建(Mac版)
- Android NDK环境搭建(Android Studio)
- Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
- Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
- Android NDK开发之旅(1): Eclipse中NDK环境搭建与JNI开发流程
- 王学岗NDK系列(七)OpenCV概述及android studio下ndk OpenCV环境搭建+简单实例
- android之android studio的NDK环境搭建
- Ubuntu下NDK编译环境搭建及在Android Studio中集成NDK
- Android Studio之NDK环境搭建,so文件打包以及使用
- Android NDK开发起步Hello Jni 及NDK开发环境搭建
- Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
- 搭建Window环境下android NDK开发环境——NDK安装
- eclipse上android NDK开发环境的搭建(android-ndk-r10d\docs\Getting Started with the NDK)
- Eclipse + ADT(包括NDK Plugin) + CDT 搭建Android NDK开发环境