如何逐行调试 Android Studio 项目(使用 NDK 和 JNI)以查看工作流程?



我正在使用Visual Studio,它的调试机制对我来说非常有用。在一个项目中有许多头文件和 C 文件,只需一个简单的 F10,它就可以带我从 main() 函数的开头浏览一下,这样我就可以看到正在执行的代码的顺序。

现在我跳入Android Studio,从一个使用NDK,JNI的项目开始(例如这个项目:https://github.com/googlesamples/android-ndk/tree/master/gles3jni),这让我感到困惑,因为有很多.java文件和其他文件C++(本机代码)文件,我不知道哪个文件首先执行哪个代码以及它是如何进行的。

我的问题是:我正在寻找一种从一开始就在Android Studio中逐行调试的方法,以查看其工作流程,就像Visual Studio所做的那样,但我从搜索中得到的只是如何在调试时从断点开始。

我尝试将断点放在启动器活动的onCreate()方法中,并使用F8Step Over并使用F7Step Into,但它没有像我预期的那样工作。它一直把我带到超级类Activity.javaGLSurafaceView.java,而不是带我去C++代码。有没有办法在Android Studio中做到这一点,如何做到这一点?

我已经尝试过其他项目,但问题仍然保持不变。希望有人能帮忙。

这不会发生。你的应用(Java 样板代码)设置为响应用户使用应用和安装应用的设备时发生的许多系统事件。如果你的 C++ 代码是一段单片简单的算法,你可以在一开始就设置断点,然后真正一步一步地遵循。但是对于Android Studio,即使这个过程也不像Vusial Studio那么容易。首先,它始终是远程调试,依赖于微妙的通信协议。

也就是说,您可以尝试将Visual Studio设置为Microsoft用于调试本机Android代码的IDE。它令人惊讶地强大,也可能更熟悉。

既然你问了Android Studio,我会回答这个问题 - 我不熟悉Visual Studio for Android,也许它更适合你的要求。

在 Android 工作室中,这样的调试非常困难 - 尽管有些人说他们设法让它工作,但我无法做到。尤其是在复杂的环境中。因此,我正在做的是广泛的日志记录,包含尽可能多的详细信息和可视化调试 - 在屏幕上放置一些文本视图并使用您需要的信息更新它。在某些情况下,这可能非常强大。或者,根据您定义的某些条件对 UI 或场景进行一些更改 - 以便可以看到视觉效果。同样,它比调试有用得多,但仍然可以非常强大。

最新更新