android JNI (二) 第一个 android工程_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android JNI (二) 第一个 android工程

android JNI (二) 第一个 android工程

 2014/8/20 19:06:38  IT萌妹子  程序员俱乐部  我要评论(0)
  • 摘要:下载NDK后它自带有sample,初学者可以导入Eclipse运行这里我是自己创建的一个新工程第一步:新建一个Android工程jni_test(名字自取)第二步:为工程添加本地支持右击工程,选择androidtools--AddNativesupport后,会弹出一个对话框让你输入库的名称这个名字你可以做修改,也可以使用默认,点击finish之后,你会发现该工程里多了几个文件夹,其中有一个叫jni,这里就是我们写c代码的地方,jni文件夹里默认产生2个文件,一个是cpp
  • 标签:android 一个

下载NDK 后 它自带有 sample,初学者 可以导入Eclipse 运行

 

这里 我是自己创建的一个新工程

第一步: 新建一个Android工程 jni_test(名字自取)

第二步:为工程添加 本地支持 

   右击工程,选择 android tools -- Add Native support  后,会弹出一个对话框 让你输入 库的名称

 这个名字 你可以做修改,也可以使用默认,点击finish 之后,你会发现 该工程里多了几个文件夹,其中有一个叫 jni,这里 就是我们写c代码的地方,jni文件夹里默认产生2个文件,一个是cpp,还有一个是 mk文件

接下来 需要在 Java代码中 加载 库文件,以及声明 本地方法,如下

 

//声明 本地方法

public native String getStr();

//jni_test  是 库的文件名,也是刚才弹出对话框中 输入的名称,也是编译c文件后 产生的 so文件的名字

static {
  System.loadLibrary("jni_test");
}

注意,如果你需要是在activity里直接使用 本地方法的话,先去掉 extend activity 这段代码

 

接下来 我们用命令生成 头文件

通过cd 命令进入工程,然后执行  javah -classpath bin/classes -d jni 使用本地代码的类的全名

 如果javah 命令不可用的 ,表示你的java环境变量没有配置对

 

执行成功后,可以在 jni这个文件夹里 发现 多了一个 .h的文件 

当然 你也可以不用 javah 去产生头文件。

产生的头文件名字很长,我们可以做个修改,这里我修改为 jni_test.h

 

接下来我们需要在 cpp文件里 根据我们的头文件编写 代码

#include <jni.h>
#include <jni_test.h>
JNIEXPORT jstring JNICALL Java_com_zhangyi_android_jnitest_MainActivity_getStr
(JNIEnv *env, jobject obj){
return env->NewStringUTF("你好,我来自c");
}

 

 

接下来,我们需要修改 activity的代码,因为 java代码 只声明了 本地代码,没有调用, 在布局文件里添加一个文本文件,然后 初始化它(不写代码了哈,能看到这个地方来的人 都是具备一定的android基础) 为该文本控件 设置 内容 为getStr();

 

 

代码编写完成,run吧~~~~~~~

 

上一篇: 谷歌拟模仿iPhone打造高端统一的手机 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名