先介绍一下开发环境,在这个环境下,up主保证是没有问题的。
Ubuntu 11.10 eclipse 3.7(indego) for java jdk 6 Android sdk 2.2 andrid ndk r7当然,在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即可。
效果如下: