JNI/NDK开发流程简介
来源:互联网 发布:软件测试零基础教程 编辑:程序博客网 时间:2024/05/23 18:32
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 24buildToolsVersion "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不擅长的领域(如图像处理)才会使用到。
- JNI/NDK开发流程简介
- 【NDK开发】JNI简介
- Android NDK 开发(一)JNI简介及调用流程
- NDK开发 - JNI开发流程
- JNI入门 NDK开发流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- Android的NDK开发(1)————Android JNI简介与调用流程
- (OK) Android的NDK开发(1)————Android JNI简介与调用流程
- JNI与NDK的开发流程
- java中关键字volatile
- 北大OJ:1005
- 关于Android5.0SD卡读写的问题
- 如何通过调节gamma曲线以调节图像的对比度,亮度等参数
- Java基础--基本数据类型(布尔型)
- JNI/NDK开发流程简介
- java基础改学C++(五)数组(1)
- spring中插入aop时报错
- Python二维数组的建立
- Lambda+Android Studio
- CountDownTimer 倒计时
- LLVM 三本书
- Centos7 安装vnc
- 【caffe】Caffe学习系列:solver及其配置