在Android项目中可以写JNI,也就是可以写C的代码,C里面的代码也可以使用断点调试,AndroidStudio支持4种调试模式:
当我们点击调试运行时,默认使用的是自动检测,即如果没有C代表,则使用仅Java的模式,如果有C代码,则使用Java + Native的模式,即使我们没有在C中打断点,只在Java代码中打了断点,它也会使用双模式来运行调试,今天我就发现我调式模式运行不起来,很是奇怪,后来稳约记得有这个事情,才想起来项目中有C代码,但是我只需要调试Java代码,于是把调试模式设置为仅Java,这样就能正常进入调试模式了,设置如下:
点击“运行”菜单 > 调试…,快捷键为Alt + Shift + F9,然后会弹出一个对话框,如下:
选择“编辑配置”,然后会再出现一个对话框,如下:
如上图,在左边选择需要调试的app,在右边选择“Debugger"标签,在Debug type处选择需要的模式即可。以后再点调试按钮时就会默认使用Java Only模式来进入调试模式了。
我们也可以调试一个正在运行的程序,即程序先运行了,然后你不想在AndroidStudio中重新运行了,不想退出当前的程序,想直接调试,此时可以点”将调试器附加到Android进程“按钮,如下:
然后会出现一个对话框,如下:
如上图,我们选择[Create New],然后就可以设置Debug Type为Java Only模式了,在最下面选择要调试的app的进程即可。其中“Show all processes"可以显示所有正在运行的可调试的进程(即debug运行的app,release版本的不能调试),[Create New]的地方是选择使用哪个配置,默认是使用项目之前的默认配置,即我们最前面介绍的那种设置方式,可以选择继承那里的设置,如果想指定一个新的模式,则选择[Create New]。
更多调试详情,查看官方文档:https://developer.android.google.cn/studio/debug