这几天学习了一下Android NDK开发,在学习的过程中参考了一些资料,但最后总结时却发现没有一份资料能够起到按照步骤一步步来可以完成整个开发过程的,即,从开发环境的搭建到自己建立一个简单的Android NDK项目,倒是Google官方的介绍文档起到了重要的作用。基于此,我就把我在这个过程中遇到的情况写出来。
在我看来,NDK只是一种技术,这种技术提供了在Android应用中使用C/C++进行开发的途径,真正关键的是C/C++。
我是在Windows XP下搭建的NDK开发环境,整个开发环境的搭建有两个重要的部分,第一个是Cygwin的安装与配置,第二个是Android NDK的安装。
需要记录的是,在对Cygwin进行配置时,现在的版本只需要在/home/用户名/.bash_profile文件的最后添加
NDKROOT=/cygdrive/你的NDK根目录
export NDKROOT
即可,配置完成保存后,重新打开Cygwin,输入$NDKROOT,当回显所配置的路径时,则说明配置成功。
而现在的ndk中,所提供的实例则放置在samples文件夹下。
首先,新建Android Project,在src下新建.java源文件,通过native关键字声明本地方法,然后,通过命令行进入项目的bin文件夹下,输入命令:
javah -classpath classes -d jni 包名.class文件名
注意没有.class后缀,即可生成.h头文件。-classpath指定查找class文件的一个临时路径,-d jni意为把生成的.h头文件放入新建的jni文件夹下。
得到.h头文件后,新建.c文件,把.h头文件中的函数拷入.c文件,实现这些函数。
函数实现完成后,新建Android.mk文件,这时要注意该文件内容的格式,格式不对时会出现错误,具体如下:
这时拷过来一个格式正确的Android.mk文件,在此文件的基础上做修改即可。
随后就是为你的ndk项目新建一个构造器,然后就可以创建所建立的java类的对象调用通过C语言实现的方法了。
以上就是我在学习android ndk时的一些有必要做总结的情况。
还是那句话,真正关键的是C/C++。