第一次接触NDK开发,嘿嘿,刚写了个Demo测试成功,记录下环境的搭建过程和遇到的问题。

1、首先去下载一个NDK开发包,我使用的是android-ndk-r7,直接解压就OK了,D:\android-ndk-r7

记得设置环境变量 path = D:\android-ndk-r7;


2、安装CygWin,用来在Windows下模拟linux环境,编译我们写的的JNI代码。


3、CygWin安装成功之后,进入到安装的根目录,找到这个文件  ->  /home/(你的用户)/.bash_profile,在文件的最后里面加入

NDK=/cygdrive/D/android-ndk-r7
设置NDK的路径,在CygWin里面测试设置是否成功 cd $NDK,进入NDK的目录则说明设置OK。


4、有时候NDK使用的awk.exe会过期,造成编译源码的时候失败,可以直接进入D:\android-ndk-r7\prebuilt\windows\bin目录,删除掉awk.exe即可。


接下来就可以开始写一个测试Demo了

C语言写的 native 函数的实现源码必须放到一个名字为jni文件夹内进行编译,这是必须的,不然会编译出错。

first-jni.c

#include#includejstringJava_com_iqiwh_car_MainActivity_firstJni(JNIEnv *env, jobject obj){return (*env)->NewStringUTF(env, "This is my first jni test!");}
对应的JNI函数命名规则:

Java_ + 包名(com.lucyfyr) 类名(MainActivity) + 接口名(firstJni):必须要按此JNI规范来操作

在CygWin里面进入到JNI目录,使用$NDK/ndk-build,来编译源码,编译成功会产生对应的.so文件,拷贝到Android项目工程libs目录里面。

然后在Activity里面加入代码,用来加载库文件

static {System.loadLibrary("first-jni");}

然后定义对应的native 函数

public native String firstJni();

在适当的位置直接调用就行了,函数会返回一个Java的String字符串。


一个简单的Demo。


更多相关文章

  1. C语言函数的递归(上)
  2. Android系统给第三方app签名流程
  3. Android开发主页框架搭建
  4. Android(安卓)aar打包及引用
  5. Vitamio打造android个性化得播放器
  6. [置顶] Android存储选择
  7. android assets 的说明与应用
  8. Android:支持不同分辨率的屏幕设计
  9. Android应用程序UI设计(1)_布局

随机推荐

  1. android系统信息(内存、cpu、sd卡、电量、
  2. Android中使用log4j
  3. Android中GridView组件的使用
  4. Android(安卓)事件触发机制
  5. Android热插拔事件处理流程--Vold
  6. 关于Android方法数量限制的问题
  7. Android(安卓)HLS协议相关记录及部分解析
  8. android apk 签名信息 相关
  9. android之动画(一)通过AnimationDrawable控
  10. Android(安卓)uevent