先写几句,以后逐渐完善。太晚了,要下班。
术语:
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%的位置。都遇到了。
========================================================
总结:最重要的是,要学会佛跳墙。