相关文章推荐
酷酷的柑橘  ·  Android ...·  3 周前    · 
深情的可乐  ·  Android ...·  1 周前    · 
才高八斗的茶叶  ·  android ...·  1 周前    · 
不要命的汉堡包  ·  WebView全面解析 ·  2 天前    · 
大力的电池  ·  曹磊 - 抖音百科·  5 月前    · 

今天看到一篇文章,讲的是UI过度绘制,里面有提到很多方法,比较不错。想想确实有时候我们在做开发时候,发现UI性能怎么那边差,也没有做什么复杂的操作。那为什么会性能很差呢。也找不到好的办法来分析。但是Android提供了一个工具:HierarchyViewer可视化调试工具,它帮助我们分析View的计算和绘制时间。

1. 打开Idea开发工具:Tools-->Android-->Android device Monitor

2.打开adb,连接上模拟器。

天天模拟器连接地址:adb connect 127.0.0.1:6555

3.模拟器启动应用程序,进入到应用页面。

4.切换到电脑Android device Monitor, 点击菜单window-->openperspective,选中hierarchy View;就会出来Tree view,该视图可以展示选中avtivity的所有控件层级。

5.再点击左侧要调试的activity等,此时Tree view就会展示出所有的控件。如下:

看   到层级关系,可能会想到: 出现性能慢是否和层级太多,布局耗费太多时间 ?对,所以第一步要检查下布局问题。
那怎么知道每个控件耗费时间?
选中视图树里面的控件,点击,就会展示每个控件的详细信息。

但是这样看比较麻烦,每个控件都要点击看一下。有一个快捷的方式可以把所有控件使用时间一下展示出,步骤就是点击 右上角的下图中红框的按钮

点击或,Tree view里面的所有布局会展示3个点如上图有显示,依次表示:

计算时间、布局时间、绘制时间 。红色就是要关注的了。一张图很好的说明了参数含义:


有3个颜色: 绿色,黄色,红色 ,红色代表着耗时最长,也就意味着我们需要优化,我们可以不断点击,查看  测量布局以及绘制所需要的时间,从而优化。

如果发现出现红色,就需要对该控件进行优化了。

参考:http://www.open-open.com/lib/view/open1421656495031.html

Lay er Visualiz er A simple web-based 3D lay er visualiz er (useful for visualizing mat er ial UI s and oth er things involving depth/shadows) Check the example code (live demo) or template code (live demo) to get started. Tree Visualiz er Also included is a layout XML tree visualiz er , useful for teaching layouts. Check the example code (live demo) or template code (live demo) to get started.
LazyOrg View A Simple Realization of Org View Because I cannot find a valid solution unless Google OrgChart and some OrgChart.js. Installation Gradle Step 1. Add it in your root b ui ld.gradle at the end of repositories: allprojects { repositories { maven { url 'https://jitpack.io' } Step 2. Add the dependency dependencies { implementation 'com.github.onlyloveyd:LazyOrg View :v1.1' Basic Usage Step 1. Add LazyOrg View into your layout.
Android 不同层次的触摸事件监听       APP开发中,经常会遇到有关手势处理的操作,比如向右滑动返回上一个页面。关于触摸事件的处理,我们可以大概处理在不同的层次上。 Activity层:可以看做触摸事件获取的最顶层 View Group层: View Group层可以自主控制是否让子 View 获取触摸事件 View 层:可以决定自己是否真正的消费触摸事件,如果不消费抛给上层 View Group Activity级别的手势监听:(右滑动返回上层界面)         Activity层手势监听的使用场景:一般用于当前页面中没有过多的手势需要处理的时候,至多存在点击事件。对于右滑返回上层界面这种需
获取当前应用的activity屏幕上所有控件的 UI 布局层次 关系 并保存在xml文件里面,可以执行下面命令: adb shell ui automator dump /sdcard/ ui .xml 实质是调用了 Android 系统下的/system/bin/ ui automator.jar的dumpWindow Hierarchy 方法。 http:// android -doc.github.io/tools/help/ ui automator/index.html http:// android -doc.github