NDK开发
文章平均质量分 52
m_xiaoer
这个作者很懒,什么都没留下…
展开
-
Application.mk浅分析
Application.mk是用来描述你的应用程序需要哪些模块,以及这些模块所要具有的一些特性。而相对的Android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等。Application.mk所要描述的内容主要包括:你程序正常运行,所需要到模块的具体列表;程序要编译成什么机器指令集的;所有模块要被编译成Release版本还是Debug版本的;传递原创 2017-05-15 15:34:27 · 872 阅读 · 0 评论 -
JNI的线程处理
《Pro Android C++ with the NDK》学习笔记同步原生线程 JNI技术的一些约束: 1.只在原生方法执行期间及正在执行原生方法的线程环境下局部引用是有效的,局部引用不能在多线程间共享,只有全局引用可以被多个线程共享。 2.被传递给每个原生方法的JNIEnv接口指针在与方法调用相关的线程中也是有效的,它不能被其他线程缓存或使用。一、同步 JNI的原创 2017-05-19 16:09:22 · 616 阅读 · 0 评论 -
JNI的局部和全局引用
《Pro Android C++ with the NDK》学习笔记局部引用全局引用弱全局引用一、局部引用 大多数JNI函数返回局部引用。局部引用不能在后续的调用中被缓存及重用,主要是因为它们的使用期限仅限于原生方法,一旦原生函数返回,局部引用即被释放。例如,使用FindClass函数返回一个局部引用,当原生方法返回时,它被自动释放,也可以用DeleteLocalRef函数显式释放原生代原创 2017-05-19 15:53:21 · 386 阅读 · 0 评论 -
JNI日志打印
《Pro Android C++ with the NDK》学习笔记 在Java环境中我们使用JNI时可以使用printf函数打印,但是Android环境下使用JNI,printf函数就无效了,而我们使用IDE开发工具中的LogCat视图以及Console视图里也没有任何输出。其实,Android NDK完全支持JNI本地日志调试。为了使用日志函数,我们可以按照如下步骤实现:1、原生代码需要先原创 2017-05-19 15:33:02 · 1571 阅读 · 0 评论 -
JNI调用Java方法
《Pro Android C++ with the NDK》学习笔记 获取方法ID调用方法 与域一样,Java中有两类方法:实例方法和静态方法。JNI提供访问两类方法的函数,例如: public class JavaClass {// 实例方法private String instanceMethod(){return "Instance Method";}// 静态方法原创 2017-05-19 14:09:44 · 853 阅读 · 0 评论 -
JNI的访问域
《Pro Android C++ with the NDK》学习笔记 获取域ID获取域 Java有两类域:实例域和静态域。类的每个实例都有自己的实例域副本,而一个类的所有实例共享同一个静态域。 JNI提供了访问两类域的函数,例如: public class JavaClass {// 实例域private String instanceField = "Instan原创 2017-05-19 11:40:02 · 247 阅读 · 0 评论 -
JNI的NIO操作
《Pro Android C++ with the NDK》学习笔记 JNI提供了在原生代码中使用NIO(I/O)的函数,与数组操作相比更适合原生代码和Java应用程序之间传送大量数据。创建直接字节缓冲区 原生代码可以创建java应用程序使用的直接字节缓冲区,该过程是以提供一个原生C字节数组为基础,例如:unsigned char* buffer = (unsigned char*) m原创 2017-05-19 11:14:41 · 537 阅读 · 0 评论 -
JNI对引用数据类型的操作
《Pro Android C++ with the NDK》学习笔记字符串操作数组操作一、字符串操作 JNI把Java字符串当成引用类型来处理,JNI提供了java字符串与C字符串之间相互转换的必要函数。因为java字符串对象是不可变的,因此JNI不提供任何修改现有的java字符串内容的函数。创建字符串 可以在原生代码中用NewString函数构建Unicode编码格式的字符串实例,用原创 2017-05-19 10:50:27 · 300 阅读 · 0 评论 -
JNI的初步探索
《Pro Android C++ with the NDK》学习笔记JNI基础知识NDK环境搭建JNI的初体验 一、JNI基础知识 可以看看这篇文章:Android NDK学习笔记1-基础知识篇 二、NDK环境搭建 这篇文章可以了解,但有点过时了:使用Eclipse开发NDK 基于ndk-build的NDK环境搭建:使用Android Studio开发NDK 基于CMake的NDK原创 2017-05-18 17:40:44 · 361 阅读 · 0 评论 -
jni数据类型及使用
《Pro Android C++ with the NDK》学习笔记java数据类型与jni数据类型的区分与识记java数据类型与jni类型映射表java数据类型在jni中的使用java对象类型在jni中的使用一、java数据类型与jni数据类型的区分与识记java中的返回值void与jni中的void是完全对应的。java中的基本数据类型(byte,short,int,long,fl转载 2017-05-18 18:03:37 · 525 阅读 · 0 评论 -
使用ndk-build脚本与排除构建系统故障
使用ndk-build脚本排除构建系统故障一,使用ndk-build脚本1、ndk-build的用法 Android NDKr4引入了一个新的、小巧的shell脚本ndk-build,来简化源码编译。 该文件位于NDK根目录,进入你的工程根目录或子目录之后,在命令行下调用即可。例如:cd $PROJECT$NDK/ndk-build NDK指向你的NDK的安装目录,PROJ原创 2017-05-15 17:30:10 · 377 阅读 · 0 评论 -
JNI异常处理
《Pro Android C++ with the NDK》学习笔记捕获异常抛出异常JNI异常处理 在JNI中发生的异常和Java完全不一样。我们在写JNI程序的时候,JNI没有像Java一样有try…catch…final这样的异常处理机制,并且在本地代码中调用某个JNI接口时如果发生了异常,后续的本地代码不会立即停止执行,而会继续往下执行后面的代码。一、捕获异常 JNIEnv接口提原创 2017-05-19 14:32:14 · 738 阅读 · 0 评论