关键在于:hello-jni.c

hello-jni.c文件内容如下:

#include <string.h>

#include <jni.h>

jstring Java_com_gcx_ndkjni_HelloNdkJni_stringFromNDKJNI(JNIEnv* env,jobject thiz )

{

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>return (*env)->NewStringUTF(env,"Hello from NDK JNI !");

}


要注意Java_com_gcx_ndkjni_HelloNdkJni_stringFromNDKJNI这段语句的意思。

在你的so库里面定义的方法需要跟你java工程中的包类名一致才行的。
例如你在so库中定义的native方法为:
Java_com_example_test_hellojni_HelloJni_stringFromJNI( JNIEnv*env,jobject thiz )
则你需要定义一个HelloJni的类,包名为com.example.test.hellojni,然后在HelloJni类中定义native方法tringFromJNI。这样都会找到相应的函数。

也就是说:比如如果是这样的xxx_xxx_xxx_stringFromJNI()
那么你的JAVA工程里,应该有xxx_xxx这个Packeage,Packeage中有xxx这个类,类中调用。


然后打开命令行,这么搞一下:

[email protected]:~/workspace/HelloNDKJNI# $NDK/ndk-build
Compile thumb
<wbr><span style="font-size:18px"> : hello-ndk-jni &lt;=hello-jni.c<br> SharedLibrary</span><wbr><span style="font-size:18px"> : libhello-ndk-jni.so<br> Install</span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px"></span><wbr><span style="font-size:18px">: libhello-ndk-jni.so =&gt;libs/armeabi/libhello-ndk-jni.so</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>


$NDK这个命令因人而异,要看在.basrch当中的环境变量设计,可以看我的前几篇当中,有介绍。


然后在项目中会多出两个文件夹。不用去管它。


最后在

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>static{

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>System.loadLibrary("libhello-ndk-jni");

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>}

这里确定包的名称,就可以了。

更多相关文章

  1. android 9.0获取mac地址的方法
  2. Android实现音量调节的方法
  3. android常用intent的方法
  4. Android 下陀螺仪、加速度和磁场传感器数据定义
  5. 自定义Toast,从顶部掉下,然后再弹一下
  6. 2012-7-20 android 图片叠加效果——两种方法
  7. Android右滑返回上一个界面的实现方法
  8. 系统关闭GPRS数据流量和 GPS的方法
  9. Android添加半透明操作提示的方法

随机推荐

  1. android中的UI中的窗口之Window类介绍
  2. Android官方架构组件DataBinding双向绑定
  3. 【Android(安卓)Studio使用教程2】Androi
  4. Android(安卓)Studio设置国内镜像网站
  5. Android(安卓)系统framework 概述
  6. Android有用代码片断(六)
  7. android:关于主工程和library project
  8. android EditText中inputType的属性列表
  9. android线性布局之比例
  10. Android(安卓)TextView内容过长加省略号