是否可以在运行时观察变量?

时间:2015-10-16 14:29:47

标签: android debugging testing android-studio runtime

我知道调试的基础知识,并且我知道我可以将监视添加到一个变量中,该变量可以在给定条件下停止程序的执行。但是每次我需要查看变量的值时,我都不想停止程序。我不想将每个相关变量的值记录到logcat中......我只想看到它们的值,就像我在断点处一样,只是在运行时。

我在Android Studio中编写Android。

感谢您的帮助!

2 个答案:

答案 0 :(得分:12)

当程序在断点处停止时,单击调试器菜单最右侧的图标(参见下图)。您可以在此窗口中键入方法或变量名称,看看它们是什么。

copyPixels()

您可以键入任何您喜欢的表达式(只要它在您破坏代码的范围内)并输入任何硬编码的值或对象,而无需重新运行项目。

enter image description here

将变量添加到观察列表

首先在您想要观看特定变量的类中放置一个断点。运行代码,一旦它从Variables窗口框架到达断点,您应该看到所有可访问的变量。只需选择您想要观看的那个,然后右键单击并从下拉列表中选择“添加到手表”。

enter image description here

继续调试,您应该根据代码在适当的时候看到Watches窗口框架中的变量。

enter image description here

答案 1 :(得分:0)

如果您了解调试的基础知识,则可以轻松地将监视添加到变量中,以在给定条件下停止程序的执行。如果您不想每次都想查看变量值时都停止程序,那么查看变量值的简单方法是使用 Toasts 。 吐司在一个小的弹出窗口中提供操作中任何变量的样本值。烤面包在设置的超时时间后自动消失。

一个简单的代码示例:

Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

为了在Toast中查看变量值:

   int var=1;
   Toast.makeText(getApplicationContext(), "vlaue is "+var, Toast.LENGTH_LONG).show();

为了查看Toast中的变量类型:

   Toast.makeText(getApplicationContext(), "type is "+var.getClass().getName(), Toast.LENGTH_LONG).show();