最近到了新公司了之后 使用的这个工具是特别的多。 也很好用。看网上讲解的都很多。我就简单记下就好了。
工具位于 android-sdk\tools\hierarchyviewer.bat
这个是首先这个手机是要root的 ,我的小米没有root 是用不了这个工具的
双击打开后,就可以看到显示了你的手机 还有下面是 竖着的一列 东西(其实这个东西就是 你的界面啦)
1.想要看哪个,双击 或者,点击 最上面的 三个按钮中的 “Load View HierarchyView”
进去到 View HierarchyView 界面了, 就可以看到的 整个界面的框架结构了,
左边界面是框架结构, 右边是 界面模型,点击的时候, 都会左右 相互联动
2.1 会显示的信息有:
控件类型 例如: TextView
对象地址 例如: @XXXXXX
控件ID 例如: id/abc
性能指示器 三个点分别是 measure ,layout ,draw 的渲染速度(红色代表最慢,黄色中等,绿色最快),上面还会显示 时间 单位(ms)最上边的很多按钮的大概意思
3.1 Save as PNG 保存 png图
3.2 Capture Layers:
3.3 Load View Hierarchy: 加载view
3.4 Evaluate Contrast: 打开了一个单独的窗口显示当前选中的内容
3.5 Display View: 也是打开一个单独的窗口显示内容多
3.6 Invalidate Layout: 重绘当前窗口
3.7 Request Layout: 请求这个view进行layout
3.8 Dump DisplayList:
3.9 Dump Theme: 下载这个view主题的资源 ,然后也是打开一个单独的窗口,里面就是那些信息
3.10 Profile Node: 得到measure,layout,draw的性能指示器。基本用法就这样,
在网上还看到一些其他的 这里记录一下
1.如果没有 root的手机是链接不上的
Android系统出于安全考虑,Hierarchy Viewer只能连接开发版手机或模拟器,我们普通的商业手机是无法连上的,这个限制在
frameworks/base/services/java/com/android/server/wm/WindowManageService.java
public boolean startViewServer(int port) {
if (isSystemSecure()) {
return false;
}
if (!checkCallingPermission(Manifest.permission.DUMP, "startViewServer")){
return false;
}
//……
}
我们要做的就是,修改并替换掉这个文件,使其通过判断。
检验一台手机是否开启了View Server的办法为:
adb shell service call window 3
若返回值是:Result: Parcel(00000000 00000000 ‘……..’) 说明View Server处于关闭状态
若返回值是:Result: Parcel(00000000 00000001 ‘……..’) 说明View Server处于开启状态
2. 我们可以使用以下
命令打开View Server:
adb shell service call window 1 i32 4939
使用以下命令关闭View Server:
adb shell service call window 2 i32 4939
3.HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法
http://www.cnblogs.com/coding-way/p/4294225.html