Android性能优化之工具篇
“哈哈,bug改完啦。准备准备上线了。好开心。”这句话简直喜闻乐见,我自己也没少说,但我想说的是,我们的App真的能够了么?或许在我们没有注意到的地方。还有很多问题在潜伏着,等待着上线后破土而出。出于求稳的目的,我用lint工具检測了一番,炸了,5000+条须要优化的地方。哭的心都有了。所以这个故事告诉我们:永远不要觉得自己的App没毛病。
言归正传。在上一篇博客中跟大家分享了AndroidUI优化中的布局优化。今天就做一个补充。
工欲善其事,必先利其器,想要做好Android优化,准备几把好刀并只是分吧。接下来就跟大家分享下Android开发中UI优化相关的几个利器。
The Android SDK includes a variety of tools that help you develop mobile applications for the Android platform. The tools are classified into two groups: SDK tools and platform tools. SDK tools are platform independent and are required no matter which Android platform you are developing on. Platform tools are customized to support the features of the latest Android platform.
以上是官方文档中关于开发工具的概述,Android SDK包括了很多工具来帮助我们开发Android App,这些工具呢大概分为两类:SDK工具和平台工具。SDK工具是独立于平台之外的。而平台工具是为了支持最新的Android开发平台而定制的。
今天我们来看一下SDK工具中比較有用的有关UI优化的两个开发工具。Hierarchy Viewer (hierarchyviewer)和lint。
Hierarchy Viewer (hierarchyviewer)
概述
Hierarchy Viewer是我们的布局文件的层级结构变的可见。而且在每个节点标注此节点的性能相关的信息。通过此工具能够具体的理解当前界面的控件布局以及某个控件的属性(name、id、height等)。
同一时候,我们能够借助Hierarchy Viewer学习别人优秀的布局方式,也能更深入更全面更总体的把握xml布局文件。
用法
1.连接设备真机或者模拟器。
2.启动你要观察的应用(真机可能无法连接,我用的小米4。连接上了。没读到内容,例如以下图);
3.Androidstudio中启动Hierarchy Viewer的方式如图所看到的
然后点击
选择Hierarchy Viewer。
4.然后选中我们要查看的进程,等待载入完毕。
具体说明
载入完毕后效果如图。这张图是小火箭的界面的view树。
观察单个view,选择单个view后会出现例如以下图所看到的图形。这里会看到Measure、Layout、Draw的耗时。
我们看一下官网相应的介绍
看小火箭的view层级结构图,35views表明这个framelayout下包括35个子控件了。而下方的带颜色的三个圆圈指示灯,分别说明了在測量(measure)、布局(layout)以及画视图(draw)三个阶段,这个控件所占用的时间百分比。假设是绿色的。表示该控件在该阶段比起其它的50%的控件的速度要快,为黄色的表示比起其它的50%的控件的速度要慢,为红色的则表示该控件在该阶段的处理速度是最慢的。
要注意的是。在Hierarchy Viewer中。当改动了界面后,须要手工点Refreshbutton,才干同步在Hierarchy Viewer中显示更新过后的界面情况。
lint
概述
Android中的lint,是一个静态代码分析工具,它能够帮助我们检測我们项目中的资源文件里的潜在bug,而且提供最优的改进方案。
The lint tool checks your Android project source files for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization. You can run lint from the command-line or from Android Studio.
通过看官方文档我们了解到,lint能够帮我们做检查资源文件,而且提高app的正确性,安全性。性能,有用性以及国际化等。我们能够通过命令行或者直接在Androidstudio中使用lint来扫描我们的app。
功能
1.布局性能
2.未使用到资源
3.不一致的数组大小
4.国际化问题(硬编码)
5.图标的问题(反复的图标,错误的大小)
6.可用性问题(如不指定的文本字段的输入型)
7.manifest文件以及gradle文件的错误
在AndroidStudio中的使用
如图所看到的,找到Analyze,点击Inspect Code。然后弹出一个选择范围的对话框
这里我们使用默认的整个工程。然后看下结果:
左边显示的是检測到的全部问题,点击某个节点。右边会显示相应的具体信息。比方我这张图中显示的是避免使用小于12sp的单位。由于谷歌官方是不推荐使用小于12sp的单位的。
这里仅仅是简介下lint的应用,我们还能够在Androidstudio中设置link的偏好。配置lint.xml文件,配置lint检測java和xml布局文件。具体能够參照官方文档操作,戳这里。
參考连接:
http://developer.android.com/tools/debugging/debugging-ui.html
http://developer.android.com/tools/debugging/improving-w-lint.html