0

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

android 文档中,这个数字的用途被解释为“指向查看对象的指针”。

假设一个人拥有像 AOSP 这样非常大的 android 项目的源代码。如何通过这个 ID 找出视图背后的 java 源代码是什么?

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

4

1 回答 1

1

如何通过这个 ID 找出视图背后的 java 源代码是什么?

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

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

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

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

其次,有View问题的可能不是来自膨胀的布局。它可能是直接用 Java 代码创建的。

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

于 2012-12-16T15:23:22.813 回答