问题标签 [hierarchyviewer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 是否有 Android 工具可以找到正在运行的应用程序的布局名称?
背景
我最近被雇用来维护一个非常大的程序(只有两个活动,大约一百个片段和数百个布局)。此外,布局的大部分内容(图像和文本)以及布局出现的顺序都是通过公司的 Web API 动态确定的。
不幸的是,没有文档。没有地图,纳达。早在他们还没有 Android 程序员之前,该公司就聘请了第三方来制作这个应用程序。而且代码的质量充其量也很差(甚至变量名也令人困惑和矛盾)。
因此,我花费了大约 70% - 90% 的时间来搜索布局和代码,只是为了更改 Button 的背景。
问题
是否有一种可以运行的工具(可能在 Android Studio 的调试器中?)可以以某种方式吐出当前显示的布局文件的名称?
我的上司经常说,“将背景纹理从黑色更改为浅灰色。” 我在想:改变是微不足道的,但找到xml 文件可能需要一个小时。
- 更新 -
产生这个问题的项目不再在我的控制之下,所以这个问题变得没有实际意义。但这似乎是一个普遍的问题,所以我将这个问题悬而未决。也许将来会出现某种工具/解决方案。我希望这个线程对这种情况下的其他程序员有用。
android - 更有效的布局可能吗?
我有一个看起来像这样的工作布局:
这是相应的xml:
问题是根据 Hierarchy View,这种布局效率不高。下面我指的是 Hierarchy View 的红绿灯配色方案。
- 对于“黄色”
ImageButton
,我得到“红色”用于布局,“黄色”用于测量。 - 对于“蓝色”
ImageButton
,我得到“黄色”用于绘图。 - 对于“绿色”
TextView
,我得到“黄色”的布局。 - 对于内部
RelativeLayout
,我得到“红色”用于测量和绘图。 - 对于外部,
RelativeLayout
我得到“红色”用于测量,“黄色”用于布局和绘图。
有没有办法做我正在做的事情(即使用选择器作为背景和图像源)并且仍然更有效率?
android - 如何在 Hierarchy Viewer 中显示的 Android 视图中添加属性?
我正在尝试检查我的 Android 应用程序的屏幕,以确认每个屏幕上的每一位文本都使用了某种字体。字体各不相同(DIN、Proxima Nova 等),风格各异(粗体、半粗体、常规等),必须在图形设计师使用的工具中在线查看屏幕模型。
对于字体样式,我可以打开 Hierarchy Viewer 工具,单击视图,然后检查字体样式属性是否符合要求。如何为字体执行此操作?在层次结构查看器中没有可见的字体属性。
检查源代码不是确定的,因为字体是由某些视图上的自定义属性设置的,在其他视图的代码中,所有屏幕都由片段、自定义视图和普通视图的大量组合组成。看屏幕并不确定,因为我很难区分不同的字体。
android - 如何知道一个android应用视图的层次结构,除了hierarchyviewer
使用 android/sdk/tools/hierarchyviewer.bat 可以帮助我们了解一个android应用程序的层次结构视图,但是当应用程序崩溃或其他一些原因时,层次结构查看器可能会崩溃。所以我想知道有没有其他方法可以获得应用程序视图的层次结构,特别是父子关系?
android - 子视图花费太多时间在屏幕上绘制
我有 android 布局设计,其中我有一个AppBar
布局,其中包含一个Toolbar
和一个LinearLayout
带有圆形Drawable
的设计TextView
。这是相同的高度。因此,当我尝试获取Toolbar
或AppBar
高度/宽度时,它只返回 0。
活动主.xml:
MainActivity.java:
在这里我正在初始化Toolbar
andAppBar
并尝试在日志中打印两者的宽度和高度,这使我返回零。
我还在stackoverflow中提到了这个问题。
如果我在其中添加以下代码,MainActivity
它将使我得到正确的高度和宽度Toolbar
。从我之前提到的stackoverflow问题中,我了解到,视图没有绘制在屏幕上,所以我必须等待。但我的疑问是,我指定的设计不是一个复杂的设计?为什么要花很多时间在屏幕上绘制?我错过了什么吗?
我已经使用 Hierarchy Viewer 来找出导致子布局加载缓慢的原因。我发现我正在使用多重LinearLayout
,其中单一RelativeLayout
可用于获得相同的结构。我已将布局设计更改如下。我仍然面临同样的问题。
更新:activity_main.xml:
android - 如何在真实设备上分析 ViewHierarchy 并获得绝对时间?
官方参考明确定义分析器消息是相对的,并且在托管的 cpu 上测量。它还说
这意味着报告的绝对时间相对于彼此是正确的,但会根据您的设备和 PC 上的整体和不断变化的 CPU 工作负载而变得臃肿和变化。
问题 我应该怎么做才能获得绝对时间?如何在真实设备上分析视图层次结构?
android - Eclipse logcat 没有来自 Pixel XL 的日志,没有调试,电话无法识别
我已经尝试阅读所有似乎相关的内容,但仍然没有找到答案。这是我所知道的:
我正在使用 Eclipse Juno,Android 7.0 版本,运行 Oreo DDMS 的 Pixel XL 显示我的手机为 HT6B0XXXXXX,在线且未知,即使它是谷歌手机。(出于隐私原因,XXXXXX 是数字。)当我启动应用程序时,我得到:
[2017-10-15 13:22:51 - hierarchyviewer]无法从设备 HT6BG0XXXXXX 获取查看服务器版本 [2017-10-15 13:22:51 - hierarchyviewer]无法从设备 HT6BG0XXXXXX 获取查看服务器协议版本 [2017- 10-15 13:22:52 - ViewServerDevice]无法调试设备:HT6BG0XXXXXX [2017-10-15 13:22:52 - hierarchyviewer]缺少 HT6BG0XXXXXX 的转发端口 [2017-10-15 13:22:52 - hierarchyviewer]无法从设备 HT6BG0XXXXXX 获取焦点窗口
我在 logcat 上没有得到任何输出,我怀疑这是由于上述问题。
有谁知道如何解决这一问题?
android - 如何有效且轻松地测量布局性能?
由于这篇文章,不推荐使用 Hierarchy Viewer。现在您可以使用Layout Inspector来分析您的布局。但 Layout Inspector 不测量。您可以使用systrace查找因布局性能而引起的警报,但它不会向您展示如何查看布局层次结构树以及查看布局、测量和绘制时间。在 Hierarchy Viewer 中,您可以这样做。但是现在您似乎使用Window.OnFrameMetricsAvailableListener编写了一些代码。
我不想编写任何代码来测量布局性能。本文向我们展示了我们可以使用 dmtracedump 。但老实说,我不知道如何绘制这样的树视图:
那么你能告诉我一种无需任何编码即可测量布局层次结构性能的方法吗?也许解释如何调用 dmtracedump 这样做?
还是 dmtracedump 仅用于以人类可读的形式显示跟踪文件?那么如何创建跟踪文件呢?