上篇文章讲述了Android NDK开发的一些基本概念,以及NDK的环境搭建,相信看过的朋友NDK开发环境搭建应该是没有问题了,还没有搭建或者不知道怎么搭建的朋友请点击这里。那么这篇文章,我们跟刚学Java编程语言一样,从世界知名程序“Hello World!”开始,开发出我们的第一个NDK程序。
一、NDK目录简单介绍
在进行NDK开发之前,我们有必须熟悉一下ND...
分类:
移动开发 时间:
2014-12-26 09:40:51
阅读次数:
302
Android下的NDK开发是Android开发中不可或缺的一部分,通过Google提供的NDK套件,我们可以使用JNI这座桥梁在Java和C/C++之间建立联系(互相调用)。那么,为什么在Android开发中需要了解NDK开发呢?诚然,这些原因有很多说法,在我总结来是这样的。C/C++是比Java还要古老的编程语言,由于其古老的特性,导致早期有很多优秀的类库出现,譬如处理视频编解码的FFMPEG类库,这些复杂的类库早就被C/C++编写过,我们在处理视频编解码的时候没必要重复“造轮子”,所以能直接拿来用的就...
分类:
移动开发 时间:
2014-12-25 22:11:52
阅读次数:
296
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了...
分类:
移动开发 时间:
2014-12-25 22:06:15
阅读次数:
237
【问题】当在Android项目路径下,使用javah指令生成.h文件时,javah -classpath bin/classes -d jni com.example.myhellojni.MainActivity出现--->错误:无法访问android.app.Activity 找不到androi...
分类:
移动开发 时间:
2014-12-25 21:46:54
阅读次数:
202
今天在使用Eclipse的时候,需要使用64位的jdk和64位的版本的Eclipse,但是本地电脑上安装的都是32位的。开始的时候64位的Eclipse在没有64为jdk的时候会报错:Failed to load the JNI shared library "E:\java\bin\..\jr.....
分类:
系统相关 时间:
2014-12-25 14:29:41
阅读次数:
260
本篇文章由:http://www.sollyu.com/use-macro-definitions-to-reduce-tedious-jni/本篇文章由:http://www.sollyu.com/use-macro-definitions-to-reduce-tedious-jni/x的朋友,或...
分类:
其他好文 时间:
2014-12-25 12:45:12
阅读次数:
167
Jni中还可以采用RegisterNatives来注册jni的方法,注册以后的jni函数的命名可以不需要符合类似javah命令生成的函数的规则RegisterNatives为JNIEnv的成员函数,声明为: jint (JNICALL *RegisterNatives) (JNIEnv *env, ...
分类:
移动开发 时间:
2014-12-24 21:28:14
阅读次数:
170
注册native函数有两种方法:静态注册和动态注册。1、静态注册方法根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联联系,以后在调用时会直接使用这个函数,这部分的操作由虚拟机完成。静态方法就是根据函数名来遍历java和jn...
分类:
移动开发 时间:
2014-12-24 21:24:03
阅读次数:
221
http://stackoverflow.com/questions/7940484/jni-passing-multiple-parameters-in-the-function-signature-for-getmethodidASK :I am trying to execute a func...
分类:
其他好文 时间:
2014-12-24 09:51:58
阅读次数:
157
JNI把Java中的所有对象当作一个C指针传递到本地方法中,这个指针指向JVM中的内部数据结构,而内部的数据结构在内存中的存储方式是不可见的。只能从JNIEnv指针指向的函数表中选择合适的JNI函数来操作JVM中的数据结构。第三章的示例中,访问java.lang.String对应的JNI类型jstring时,没有像访问基本数据类型一样直接使用,因为它在Java是一个引用类型,所以在本地代码中只能通过GetStringUTFChars这样的JNI函数来访问字符串的内容。...
分类:
其他好文 时间:
2014-12-24 01:18:30
阅读次数:
259