Android NDK开发C语言部分的单步跟踪

先写几句,以后逐渐完善。太晚了,要下班。

术语:

AVD

NDK

SDK

ADT

adt-bundle

android strudio

x86 image

debug模式

debug编译参数

命令行起动AVD


1. 根据需要,下载自己需要的版本的开发环境。

比如,我用的是android 4.4.3,而网上,只有4.4.2,android的最后一个版本号,看来关系并不大。前面两个对上就可以了。

比如4.4对应的是api 19

android-ndk-r9d

apache-ant-1.9.3


adt-bundle-windows-x86-20131030


2. 下载这些东西,最相当困难的。要与方校长斗智斗勇。

3. 下载后,利用ndk中的Hellojin例子,开始练手。

4. adt-bundle-windows-x86-20131030 事实证明,懒,是要付出代价的。adt-bundle-windows-x86-20131030里的sdk,缺很多重要的东西。

缺:Intel HAXM

缺:Intel x86 Atom System Image

5. 想到调C代码,一定需要在Adt中Native方式来debug,而这个deubg必须用x86的AVD

6. adt-bundle-windows-x86-20131030里的sdk,无法下载缺少的东西。

6.1 所以,到网上下了更新的版本的23.1,用它把19版本的下载下来,然后考到了adt-bundle-windows-x86-20131030/sdk里。

==============================================

然后要会配AVD,选用x86

然后设置成debug模式。

然后C++ setting里,也设置成为debug模式。

然后,启动个程序,因为那个Hellojni是不成的。

新建一个Android程序,

然后Native support

写完jni部分的c代码后(学会javah的使用)

回到MainActive中,在构造函数中,或是在一个static函数中,加载.so,这一步有两个含义,除了加载,更重要的是等待gdb 服务启动。否则会出现  .. file.

然后配置native debug,开始调试。先打上断点。

对了,最重要的是,要学会加入button,在程序启动后,在从button中调用native函数,才靠谱。因为你不会知道什么时候gdbserver启动。

========================

还有网上所有的错,我都遇到了,什么 abi之类,

还有开发环境卡死在init 1%的位置。都遇到了。

========================================================

总结:最重要的是,要学会佛跳墙。



你可能感兴趣的:(debug,NDK,sdk,单步)