如何在hierarchyviewer中查找视图后面的代码

时间:2012-12-16 14:57:01

标签: android android-layout hierarchyviewer

Android hierarchyviewer在树视图中显示每个视图的ID。 ID是@符号后跟一个数字,例如@ 4051d698

android documentation中,此数字的目的被解释为“指向视图对象的指针”。

假设有一个像AOSP这样非常大的Android项目的来源。 如何使用此ID找出视图背后的java源代码?

是否有一个我可以调用的方法告诉我什么是绑定到这个指针的R.java条目?

1 个答案:

答案 0 :(得分:1)

  

如何通过使用此ID来确定视图背后的java源代码是什么?

你不能,至少没有调试器。如果您习惯于C / C ++开发,那十六进制值大致类似于指针。仅仅因为你有一个指向C / C ++中一大块RAM的指针并不意味着你可以确定驻留在该指针的对象背后的源代码。

现在,调试器中有一种方法可以提供此十六进制值,并且调试器将匹配对象和源代码。我不是Eclipse专家,也不是其他IDE调试器的专家,知道是否有办法执行此操作。但是,即使可以这样做,它也可能只会为您提供对象类的来源(例如,如果ViewListView,它可能会将您发送到ListView源代码),而不是创建对象的源代码。

  

是否有一个我可以调用的方法告诉我什么是绑定到这个指针的R.java条目?

首先,R.java不会“绑定”任何指针。

其次,有问题的View可能不是来自夸大的布局。它可能是直接在Java代码中创建的。

如果View有“查看对象ID”(例如id/content),那么可以更好地帮助您找到它的来源,因为它将是android:id值,可能来自你的布局资源。