最简单的使用 NDK 的程序
来源:互联网 发布:三个月雅思准备 知乎 编辑:程序博客网 时间:2024/05/24 06:37
- 第一步
新建一个工程,这里我的包名是 com.xiao.ndk,然后在新建一个 Test 类
public class Test{ public native String getContent();}
第二步
编译程序后,注意项目目录 app\build\intermediates\classes\debug,此时已经生成了 Test 类的字节码文件。
第三步
根据生成的 class 文件,利用 javah 生成对应的 .h 头文件。
点开AS的Terminal标签,cd命令进入到该项目的app/build/intermediates/classes/debug/ 文件夹下。
然后执行命令:javah -jni com.xiao.ndk.Test然后查看文件夹 app\build\intermediates\classes\debug 会生成一个 .h 文件:com_xiao_ndk_Test.h 文件
第四步
在工程的main目录下新建一个名字为jni的目录,然后将刚才的 .h 文件剪切过来。在 jni 目录下新建一个 c 文件,随意取名,我这叫 jnitest.c 。然后编辑代码如下
#include "com_xiao_ndk_Test.h"JNIEXPORT jstring JNICALLJava_com_xiao_ndk_Test_getContent(JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env, "hello 个屁");}
- 第五步
接下来在工程的local.properties文件中添加NDK路径
ndk.dir=/Users/daiyunzhen/NDK/android-ndk-r10e
在app module目录下的build.gradle中设置库文件名(生成的so文件名)。找到gradle文件的defaultConfig这项,在里面添加如下内容:
项目的 gradle.properties 文件的末尾添加如下代码:
android.useDeprecatedNdk=true
- 第六步
环境都设置好了,现在就可以用 Test 类来获取了。
在 Test 类中引用刚才的 so 文件,加如下代码 :
static { System.loadLibrary("TestJniLib");}
此时 Test 类已经能调用 c 代码了
- 第七步
来测试下吧
在 MainActivity 的 onCreate() 方法中加入如下代码 :
String content = new Test().getContent();if (!TextUtils.isEmpty(content)){ TextView tv = (TextView) findViewById(R.id.tv); tv.setText(content);}
>
好了,编译项目运行,能打印 .c 文件里写的那句话 “hello 个屁” 那就成功了。
- 最后放一下生成的 so 文件路径图 :
0 0
- 最简单的使用 NDK 的程序
- NDK的基础教程 一 最简单的NDK使用
- 最简单的ndk示例程序及编译过程
- NDK的简单使用
- NDK的简单使用
- 最简单的servlet程序【使用Eclipse】
- 最简单的PlayBook NDK应用
- 最简单的android NDK环境搭建
- 最简单的程序
- android ndk 的简单使用
- Android NDK入门(实现简单的NDK程序)
- 最简单的win32程序
- 最简单的引导程序
- 最简单的MONO程序
- 最简单的引导程序
- 最简单的win32程序
- 最简单的struts程序
- 最简单的windowsAPI程序
- 找出集合中最大元素C,满足C=A+B,其中A,B都是集合中的元素
- springmvc+hibernate+sqlite
- Android开发,Android项目打jar包,以及Http请求整合框架的使用(后付文件和使用方法)
- ERROR missing Change-Id in commit message footer
- 织梦dedecms 使用SQL删除指定栏目全部文章
- 最简单的使用 NDK 的程序
- 2016.09.09
- Android Popwindow的使用(从屏幕下方往上弹起,背景变暗)
- json对象和字符串
- 歌德巴赫猜想
- netty4&5之学习之路_2
- Html页面传参获取代码
- 微博同步错误追溯根源
- torch7 error