Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进行软件选用的决策。

目前,已经有很多可以监控android app 性能的工具可以供开发人员使用,如:基于Eclipse插件体系的MAT,其通过生成.hprof文件对内存泄露情况进行排查;内存检测工具APT:提供CPU利用率实时曲线图,方便对比测试内存泄露问题。

目前最成熟的android性能监测工具往往是发迹于eclipse-ADT时代,而在android-studio日益稳定的如今,android开发人员已经有了更好的选择(遥想3年前用的第一个版本的android studio,跟现在比已经不可同日而语),从 google官网已经不再提供adt集成开发境的下载可以看出,android-studio已经是大势所趋。本文由浅入深的总结几个适用于android-studio的android质量控制工具。

一、lint for android studio工具

在性能测试之前,首先要对工程源码进行排错和调优。Android Lint 可以通过扫描和检查对Android工程可能存在的问题进行审查,其是一种静态测试工具,通过发现代码中可能存在的问题来在应用发布前保证程序质量。 早期的lint工具可以与Eclipse集成,如今android-studio已经内置这一工具。通过在工程标题上右键->Analyze->Inspect Code可以打开该工具。

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第1张图片 图 1-1 在android-studio中调用lint

Android Lint可以检查出的错误包括:

1.Missing translations (and unused translations) 没有翻译的文本
2. Layout performance problems (all the issues the old layoutopt tool used to find, and more) 布局性能
3. Unused resources未使用的冗余资源
4. Inconsistent array sizes (when arrays are defined in multiple configurations)在多个配置中的数组大小不一致文件
5. Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
6. Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
7. Usability problems (like not specifying an input type on a text field)
8. Manifest errors

双击错误信息,可以看到错误的详情介绍和在代码中的位置。(这里的错误往往不是异常或error,而是你代码中可以进一步优化的部分)

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第2张图片 图 1-2 使用android studio lint 优化代码
代码没有问题后,就可以将程序run起来,进行下一步的内存和CPU监测了。

二、Memory Monitor

Memory Monitor 是android studio 提供的性能分析工具, 可以通过视图直观的看到android应用的内存,CPU占用情况。

程序运行后,观察IDE底部的如下视图:

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第3张图片
图 2-1 Memory Monitor 视图(1)

现在可以再avd上或真机上对应用进行操作,Memory Monitor可以反映出当前操作带来的CPU和内存变化。
Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第4张图片
图 2-2 Memory Monitor 视图(2)
作为Android初学者感觉android-studio内置的监控工具已经非常直观和强大,不知道以后会不会接触到更加优秀的开源性能测试项目。 作为美中不足,android-studio的监控功能不能够输出,所以也不方便统计和横向对比。 同时,流量的监控也不被包括其中。

三、Android性能测试工具:Emmagee

Emmagee的功能包括:


  • 检测被测应用占用的CPU使用率和总体使用量
  • 检测被测应用的内存占用量及百分比
  • 检测流量消耗

改项目的真正流弊之处还在于,它不是一种嵌入式工具,而是一个单独的app。所以完全不依赖于开发环境。

Git 地址: https://github.com/kevinkong/Emmagee
Apk地址:http://code.google.com/p/emmagee/downloads/list

使用方式:


  • 启动Emmagee
  • 选择被监控程序
  • 对被监控程序进行操作
  • 返回Emmagee界面,结束监控
  • 导出结果表单

Emmagee 界面如下图所示,我选择监控自己的一个app:alicom-in 。

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第5张图片 图 3-1 Emmagee启动界面

开始测试后,被测应用会自动启动。 这里可以对被测应用进行一些操作,然后返回Emmagee界面,选择结束应用。结果表单会被保存到指定目录。

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第6张图片
图3-2 Emmagee 结束录制

使用excel打开表单。

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第7张图片 表3-3 Emmagee 输出 结果

通过excel自带的表格工具可以对该表单进行分析,也可以进一步比对不同app的测试结果。

Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性能测试工具_第8张图片 图3-4 使用excel直观观察 各指标检测结果


四、总结和展望

Android应用性能指标是开发人员和用户所关注的重点,为了对今后的客户端开发工作进行技术储备,为团队提供先验知识,今天了解了适用于Android Studio的性能保证工具。包括:

1 android studio静态代码审查工具 lint;
2 android studio 内存,CPU实时监测工具Memory Monitor;
3 android应用数据统计工具Emmagee。

这三种工具具有初步支持android开发者对程序性能进行关注的能力。同时,也存在一些不足,比如说Memory Monitor和Emmagee需要互补对方的缺点,如果有一个工具既能实时监控,又能输出表单(包括流量监控结果),就更好了。 另外,Emmagee工具虽然可以对整个应用的性能指标作出观测,但是具体由哪一个函数或服务引起了性能问题,则需要开发人员的进一步排查。 当需求不仅仅是性能控制,而是需要性能调优时,这种功能上的缺憾就不容忽视了。

更多相关文章

  1. 对系统学习与写博客的看法——学完《第一行代码》有感
  2. Android开发——纯JAVA代码方式界面设计
  3. GDB调试Android代码——环境搭建及调试过程
  4. 【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附De
  5. 看这里!顶级必备Android开发者工具
  6. 如何在代码中为组件设置dip,sp值
  7. 教你快速高效接入SDK——iOS多渠道自动打包工具核心原理
  8. TRIM:提升磁盘性能,缓解Android卡顿

随机推荐

  1. 关于php多进程编程(代码详解)
  2. php中array_replace、array_splice与str_
  3. php中常用的正则表达式使用方法
  4. Mac+Apache+PHP安装Xdebug方法步骤
  5. PHP使用递归按层级查找数据(代码详解)
  6. PHP+jQuery开发简单翻牌抽奖的功能(代码实
  7. PHP利用PHPExcel导出数据到Excel
  8. PHP-Curl模拟HTTPS请求(代码实例)
  9. PHP 超全局变量之$_FILES详解
  10. PHP 跨域之header函数(代码示例)