赞
踩
图/摄 天玉
安卓学习过程中,很多时候需要查看视图,去定位问题,通过找寻的节点,进行代码检索,最终定位到流程,进行修改,分析源码。
今天我们就来说说如何查看一个界面的视图。看不到进程,说明你用的不是eng版本,或者你的app不是调试版本。
(系统开发,不用eng版本,你怎么发挥工具强大的能力)
1我们使用Android Studio自带的工具:
在菜单栏Tools ->Android -> Layout Inspector 打开即可
在打开后,选择当前打开的界面(这里我打开了图库,我们就看下图库的界面)
选中 com.android.gallery3d,点击确定就会出来当前界面的视图信息。
1是ViewTree ,通过这个可以看到xml的对应布局信息,点击各个View,在2上面会显示出来对应View的区域,3会显示这个View的对应属性,绘制信息。
通过点击1或者2的对应位置,找到你所关注的View,通过3的显示,找到属性信息,比如text 和id信息
如此可以分析这个界面的所有View的信息,然后通过一些特征信息(text id 或者自定义的view类型等等),去检索代码,找到代码位置,进行调整修改。
2 Sdk\tools\bin的uiautomatorviewer.bat
试用了下,没有显示出来界面,只有视图列表信息。这个我平时也不用,就不做深入研究为什么不出来界面了。
3 我们的主角,我平时用的最多的工具hierarchyviewer。虽然怀旧,但是经典。
从网上下载adt-bundle-windows-x86_64-20140702 开发包,sdk\tools\hierarchyviewer.bat 运行起来。
这里显示的信息,是window的title信息,我们可以看到状态栏和虚拟按键的window也显示了出来。
DockedStackDivider 这个是分屏的那个view,通过代码搜索这个title,就能找到代码位置。
通过目录树,可以知道这个是在SystemUI的源码里面。
我们这里就看下GalleryActiivty的视图。选中这个,点击Load ViewHierarchy进入界面。
1 大视图的view信息,可以拖动寻找你要的界面,双击会出现对应的视图界面。
2 小视图的view信息,可以快速点击选中一个区域,然后使用1去寻找目标view。
3选中的view的相关信息。
4 整体视图显示,可以勾选show extras,显示更多信息。
5 放大缩小区域,20%-200%,还可以使用id进行搜索
6 回到主界面,重新选择界面。
我们一般借用这个界面去定位我们的目标view,使用的方式是,从左向右查找,从父类快速的收敛,定位目标View的位置。
通过定位到View之后,我们双击这个view
这里可以操作上面的On White或者On Black 这个是用来设定背景色的。通过选择黑色白色,可以查看这个View是否真的有背景色。
如果选中白的,界面显示为白,选中黑的,显示黑,意味这个view背景是透明的。这个为方便定位颜色到底是哪个父类设定的,很方便。
这里我们再来看看上面的菜单:
这边常用的就是Profile Node,点击后界面很多view下面出现三个点,这个从左到右便是,测量,布局,绘制所耗的时间。红点和黄点表示速度慢,而蓝绿则相对好一些。
不知你学会了吗?希望课后大家能够实际使用起来,多看看它的属性信息,那里可以看到布局信息,是否绘制,是否透明,主题的信息,都是帮助我们定位问题的方式。
如果你有任何问题,欢迎加入星球,一起学习,助你一臂之力。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。