Android性能优化之工具篇

来源:互联网 发布:网络节点之间的距离 编辑:程序博客网 时间:2024/05/19 14:17

“哈哈,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中,当修改了界面后,需要手工点Refresh按钮,才能同步在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

1 0
原创粉丝点击