先介紹一下開發環境,在這個環境下,up主保證是沒有問題的。
當然,在windows環境下通過cygwin等工具也是可以實現gdb調試的,我也確實實現過。但是性能實在太低,卡的根本沒法用。Linux下直接用gdb調試本地方法是很流暢的。
再確定安裝並配置好開發環境之後,就可以開始了。
首先得確定自己能夠正常的運行一個ndk工程,連運行都成問題的話,也就談不上什麼調試了。
新建一個android項目,選擇crete project form existing source,源代碼位於
/home/shaodx/android/android-ndk-r7/samples/hello-jni,即ndk目錄的samples/hello-jni。
Next>
Sdk target 就選2.2吧 ,其他的雖然沒測試,應該也沒什麼問題。
Finsh
Hellojni項目極其簡單,看代碼就懂了。在activitie下建立一個textview,然後調用一個natvie方法來返回一個字符串,然後把textview的text設置為這個字符串。
為了方便看到調試後的效果和局部變量的變化情況,我加了幾行對程序結果沒影響的代碼。
Java代碼:
C++:
當然,這個時候直接運行的話,程序肯定會崩潰的。因為動態鏈接庫還沒編譯好。Ndk根目錄下的ndk-build負責編譯so文件。首先進入項目所在目錄,然後運行ndk-build即可。
效果如下: