最近学习Android,用到Android的串口,本来使用的是友善之臂自带的库去实现了,无奈这个有bug,程序长时间运行,会出现ReferenceTable overflow的问题。开始时使用挺方便的,但后面发现,程序由于需要长时间、大数据量的串口通信,所以时间已久就出出现整个Activity就死掉退出了。上网一查才知道,原来是该库使用JNI机制调用c/c++写的程序,但由于我频繁的java和C相互调用,产生了很多垃圾,得经常释放空间。
于是不得不看看NDK了。
先是几个链接:
http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html
http://blog.csdn.net/pengchua/article/details/7582949
http://www.eoeandroid.com/thread-188434-1-1.html
关于android ndk出现ReferenceTable overflow (max=1024)的解决方法
http://blog.csdn.net/xiechengfa/article/details/6228524
Android NDK下载地址:http://developer.android.com/tools/sdk/ndk/index.html
下面是阅读上面的说明的理解:
NDK是一个运行你的app部分使用C/C++代码的工具箱。对于特定种类的apps,你可以再次使用用这些语言写的存在的代码库是非常有帮助的,但是大部分的app不需要使用Android SDK.
在下载NDK前,你必须理解NDK将对大部分apps没有好处。作为一个开发者,你需要平衡它的有利之处来克服它的缺点。显然,在Android上使用原代码不会带来显而易见的性能改进,但是它经常增加你的app的复杂性。一般来说,你只在NDK对你的app必不可少的时候使用它——不要因为你简单地更加喜欢用C/C++编程。
NDK典型的好处就是独立、节约CPU和内存。比如信号处理、物理仿真等。考虑是否采用原代码进行开发,考虑你的需求,和Android架构的APIs是否提供你需要的函数。
安装NDK:
在你的开发的计算机上安装NDK是很简单的,包含从下载的打包文件中提取NDK
在你开始前,确定你已经下载了最新的Android SDK和升级你的应用程序和环境到你需要的版本。这个NDK适合老版本的平台但是不适合老版本的SDK工具。
安装NDK按照以下的步骤:
1、 从顶部的表格中选择适合你开发电脑的NDK包,然后下载这个包。
2、 解压下载的包。你可以按照你的需要重命名,可以移动到你电脑的任意位置。这个文件简称NDK的路径为<ndk>
等学通了再来总结吧~~~