说到NDK开发,其实是为了有些时候为了项目需求需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高些。 但是很多时候能不用就不用;这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 NDK 还要 下载 Cygwin ,配置 Cygwin ,然后需要编译生成,哎太麻烦了。如果你说使用Ec....
分类:
移动开发 时间:
2015-09-16 17:20:55
阅读次数:
358
网上百度了开发环境,好像早期要下载各种文件,比如eclipse,SDK。下载完后再整合在一起才能使用,感觉好麻烦的样子,我一开始在找Anroid开发软件时也是最先考虑eclipse,毕竟我电脑上原本就有eclipse。后来在和同学聊天中发现了一个更好用的软件,那就是Android Studio,A....
分类:
移动开发 时间:
2015-09-15 23:34:06
阅读次数:
413
1.下面通过一个HelloWorld案例来说明一下JNI利用NDK开发过程(步骤)分析:我们在Win7系统下编译的C语言代码,我们知道C语言依赖操作系统,不能跨平台,所以我们要通过NDK工具把在Win7系统下编写的C代码,转化为可以在Linux(Linux2.6.6---Android内核)运行的二...
分类:
移动开发 时间:
2015-09-15 23:18:59
阅读次数:
232
注:低版本的源码内容比高版本的源码简单,分析起来方便,但是高版本源码更为严密。View的事件响应机制涉及2个方法dispatchTouchEvent和onTouchEvent1.View的dispatchTouchEvent方法(事件传递到View,View的这个方法就自动执行。)dispatchTouchEvent返回true,响应事件;返回..
分类:
其他好文 时间:
2015-09-12 00:58:53
阅读次数:
371
与NDK开发之访问域中介绍的一样,Java中的方法也是分为两类:实例方法和静态方法。JNI提供了访问两类方法的函数,下面我们一起来看看怎么在C中访问Java中的方法。
我们的MainActivity中有两个方法,分别是: private String instanceMethod(){
return "Instance Method";
}
private s...
分类:
其他好文 时间:
2015-09-05 15:08:23
阅读次数:
180
Java有两类域,实例域和静态域。类的每个实例都有自己的实例域副本,而一个类的所有实例共享一个静态域(Java SE基础)。JNI提供了相应的函数来访问这两类域,总体步骤是这样的:1.通过对象引用获得类
2.通过类获得域ID
3.通过域ID获取域下面我们按步骤一步一步来:
我们的Java类中有两个域,一个静态域,一个实例域: private static String staticFil...
分类:
其他好文 时间:
2015-09-05 12:34:04
阅读次数:
168
要在NDK中打印日志,只需要以下三步:一、在Android.mk中添加以下内容:LOCAL_LDLIBS := -lm -llog注意,这行代码要添加在include $(CLEAR_VARS)之后,否则没有效果。二、引用头文件#include 三、定义变量//定义TAG之后,我们可以在LogCat通过TAG过滤出NDK打印的日志
#define TAG "JNITES...
分类:
其他好文 时间:
2015-09-05 11:14:06
阅读次数:
193
在JNI中,Java字符串被当作一个引用来处理。这些引用类型并不像原生C字符串一样可以直接使用,JNI提供了Java字符串与C字符串之间转换的必要函数,因为Java字符串对象是不可变的(如果对这里有异议,请复习Java SE),因此JNI不提供任何修改现有的Java字符串内容的函数。JNI支持两种编码格式的字符串,分别是Unicode和UTF-8。好了,废话说完了,下面按部就班来。一、创建字符串我们...
分类:
其他好文 时间:
2015-09-04 18:41:31
阅读次数:
239
即使我们Java层的函数没有参数,原生方法还是自带了两个参数,其中第一个参数就是JNIEnv。
如下:
native方法:
public native String stringFromC();
public native String stringFromCpp();
原生方法:
jstring Java_com_example_jni_MainActivity_s...
分类:
其他好文 时间:
2015-09-04 14:22:42
阅读次数:
177
毫无疑问,通过执行ndk-build脚本启动android ndk构建系统。
默认情况下,ndk-build脚本在工程的主目录中执行,如:
我们可以用使用-C参数改变上述行为,-C指定工程的目录,这样我们就可以在任何目录执行ndk-build脚本了。
如果源文件没有被修改,那么android ndk构建系统不会重新构建目标,这时我们可以使用参数-B来强制重新构建所有源代码。
如果想要清理生成...
分类:
其他好文 时间:
2015-09-03 20:27:51
阅读次数:
137