Sco*_*ggs 19 debugging layout android hierarchyviewer android-studio
我最近被雇用来维护一个非常大的程序(只有两个活动,大约一百个碎片和几百个布局).此外,布局(图像和文本)的大部分内容以及布局的显示顺序是通过公司的Web API动态确定的.
不幸的是没有文件.没有地图,纳达.在他们拥有Android程序员之前,该公司聘请了第三方来制作这个应用程序.并且代码的质量最好(甚至变量名称也令人困惑和矛盾).
因此,我花了大约70% - 90%的时间只是为了改变Button的背景而只是搜索布局和代码.
是否有可以运行的工具(可能在Android Studio的调试器中?),它可以以某种方式吐出当前显示的布局文件的名称?
我的上级经常说"将背景纹理从黑色变为浅灰色".我在想:改变是微不足道的,但找到 xml文件可能需要一个小时.
产生这个问题的项目不再受我的控制,所以这个问题已经没有实际意义了.但它似乎确实是一个常见问题,所以我将这个问题保持开放.也许将来会出现某种工具/解决方案.我希望这个线程对那种情况下的其他程序员有用.
还有适用于Android 的Developer Assistant应用程序,它可以在运行时检查视图层次结构,然后显示屏幕上可见的最可能的布局名称.涉及启发式,因此它无法100%准确地工作,但仍然可以提供帮助并完全脱机工作(披露:我制作了这个应用程序).
一个例子:
在Android设备监视器中,您可以单击一个名为"用于UI Automator的转储视图层次结构"的按钮.
这将在"设备监视器"中打开UI层次结构查看器,您可以使用该查看器查看每个视图的资源ID.
虽然这实际上并没有为您提供膨胀的XML文件的名称,但它可能非常有用.如果幸运的话,您甚至可以使用资源ID来缩小搜索要查看的XML文件的范围.
如果将鼠标悬停在查看器窗口的标题上,它将显示它创建的实际XML文件的路径.这是一种在一个位置查找所有资源ID的方法.
有关层次结构查看器的更多信息,以防它有用:
Hierarchy Viewer允许您调试和优化用户界面.它提供了布局视图层次结构(布局视图)的可视化表示,以及显示器的放大检查器(Pixel Perfect View).
这是一篇包含有趣内容的博客文章 - 一个拦截所有视图通胀的自定义布局信息:
可以使用该示例代码拦截膨胀调用,并接收XML文件的资源ID:
此时,您需要将资源ID转换为有用的名称.引用此问题(如何从资源ID获取资源名称),您可以使用:
getResources().getResourceEntryName(int resid);
Run Code Online (Sandbox Code Playgroud)
添加一些日志记录,这可能会为您提供每个XML文件,因为它正在膨胀.
这可能是记录整个项目的一种很好的方式.
| 归档时间: |
|
| 查看次数: |
5915 次 |
| 最近记录: |