Android 性能测试及优化

原创 2016年08月30日 15:02:05

Android 开发,性能方面优化很重要,相对也比较难。有时候为了一点内存的优化,或者降低界面的绘制时间损耗,可以说是煞费苦心。接下来,就内存、layout两方面的优化,介绍一下。

一、内存直观的查看最容易的要是monitors里面memory展示图了,可以直观的查看内存的占用及走势。通过创建跟销毁activity,查看内存的变化,判断有没有内存泄漏等等。当然,这个只是一个简单的查看,不能详细的定位内存泄漏的具体位置。如果要找内存泄漏具体位置,需要android device monitor中 dump HPROF file,生成的文件,以前需要转化一下,用mat工具打开分析。现在大家都用androidstudio了,更加强大,只需要,将文件拖入androidstudio中即可打开,可以具体查看具体heap情况,信息非常详细,实乃内存分析一大利器。

二、layout性能问题,同样是android开发的一大问题。没人喜欢用一个卡顿,不流畅的app。理论上人眼识别是一秒60帧,及每帧16毫秒,这样才能出线流畅连贯的画面,否则就出现丢帧,造成看着卡顿等问题。这里的16ms指的是每个界面measure+layout+draw <= 16ms 。那么如何查看界面绘制时间呢?可以在设置》开发者选项》gpu呈现模式分析中选择一个,可以看条形图或线形图,也可以用adb shell dumpsys gfxinfo中,得到数据查看时间有没有超过16ms。还可以通过hierarchyviewer工具查看(确保root、remount),查看每个界面根view的layout+draw+measure时间。更具体的分析当然要用traceview了,traceview可以直观的定位到问题所在,然后可去优化。

那平时开发中应该怎么注意,来尽量优化这些性能呢?有以下建议:

1、绘制界面时,只绘制可见区域

a、使用recyleview等可回收view控件;

b、懒加载数据;

2、控制图片占用内存

a、图片能用.9,尽量使用,使用wpeg格式图片格式

b、小图展示可以用tingPNG有损压缩

c、根据绘制窗口大小加载制定大笑的bitmap

3、避免频繁绘制、频繁reload,以及多余的reload

4、控制view数量,减少过度绘制,优化布局层次

5、采用线程池,限制线程数量、空闲存活时间,线程需要命名

6、关注scrolling状态,scrolling过程中不要操作ui

7、检查ui主线程中是否含有非ui操作逻辑,比如json解析、文件读写、数据库操作等。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android性能测试

  • 2017年11月01日 15:27
  • 554KB
  • 下载

[iTest]Android开发者性能测试工具

  • 2012年03月06日 16:26
  • 3.59MB
  • 下载

强烈推荐转载-Android 性能测试

关于Android的性能测试,看到一篇很好的文章,转载过来和大家分享下。    Android性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类,对于应用性能测试,...

性能测试诊断分析与优化

  • 2017年07月19日 11:44
  • 4.04MB
  • 下载

android性能测试之APT测试工具

  • 2014年08月23日 08:34
  • 3.93MB
  • 下载

Android性能测试之fps获取

关键点 在testerhome看到一个好的帖子,说的是fps的获取方式,值得好好研究一下。 获取的方式是通过下面的命令获取 adb shell dumpsys SurfaceFlinger -...

性能测试优化

  • 2014年03月20日 11:27
  • 7.65MB
  • 下载

强烈推荐转载-Android 性能测试

关于Android的性能测试,看到一篇很好的文章,转载过来和大家分享下。    Android性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类,对于...

性能测试与优化

  • 2016年05月14日 11:37
  • 119KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 性能测试及优化
举报原因:
原因补充:

(最多只允许输入30个字)