最近學習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>
等學通了再來總結吧~~~