Android性能测试 一些适用于Android Studio的代码审查和性能测试工具

导言:

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

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

图 0-1  通过APT实时监测android应用的内存和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可以打开该工具。

图   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,而是你代码中可以进一步优化的部分)

图1-2  使用android studio lint 优化代码

代码没有问题后,就可以将程序run起来,进行下一步的内存和CPU监测了。

二 Memory Monitor

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

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

图 2-1  Memory Monitor 视图(1)

现在可以再avd上或真机上对应用进行操作,Memory Monitor可以反映出当前操作带来的CPU和内存变化。

图 2-2  Memory Monitor 视图(2)

作为Android初学者感觉android-studio内置的监控工具已经非常直观和强大,不知道以后会不会接触到更加优秀的开源性能测试项目。 作为美中不足,android-studio的监控功能不能够输出,所以也不方便统计和横向对比。 同时,流量的监控也不被包括其中。下面介绍一种可以输出表单的,直接运行于真机/模拟器的开源项目:Emmagee

三 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 。

图 3-1  Emmagee启动界面

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

图3-2   Emmagee 结束录制

使用excel打开表单。

表3-1  Emmagee 输出结果

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

图3-3  使用excel直观观察各指标检测结果

四 总结和展望

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

1 android studio静态代码审查工具 lint

2 android studio 内存,CPU实时监测工具Memory Monitor

3 android应用数据统计工具Emmagee

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

实际上,今天也了解到另一个工具:Traceview , 其可通过在关键代码前后设置监视断点来统计各个函数对应用性能带来的影响,这将对提高应用性能起到关键作用,也是我下一步学习的重点。

参考文献:

1 《性能测试 - Android篇》http://www.atatech.org/articles/36920

2《Android系统性能调优工具介绍》http://www.atatech.org/articles/16013

3《Android性能测试工具Emmagee介绍  》http://blog.163.com/[email protected]/blog/static/121650342201312551147909/

4《Android性能测试工具:Emmagee》http://www.open-open.com/lib/view/open1367026451078.html

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

时间: 2024-10-14 08:34:52

Android性能测试 一些适用于Android Studio的代码审查和性能测试工具的相关文章

Android性能測试 一些适用于Android Studio的代码审查和性能測试工具

导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,因为QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进行软件选用的决策. 眼下,已经有非常多能够监控android app 性能的工具能够供开发者使用.如:基于Eclipse插件体系的MAT,其通过生成.hprof文件对内存泄露情况进行排查:内存检測工具APT:提供CPU利用率实时曲线图,方便对照測试内存泄露问题[图0-1] 图 0-1  通过APT实

【Android Developer Blog】Android Studio 2.0(07 APRIL 2016)

Android Studio 2.0 Android Studio 2.0是打造高品质,高性能应用的Android开发平台,包括手机和平板,Android Auto,Android Wear和 Android TV.作为Google官方的IDE,Android Studio包含了你需要的一切,包括代码编辑器(code editor),代码分析工具(code analysis tools),模拟器(emulators )等.Android Studio 2.0 stable有着更快的编译速度,更好

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,On SetTitl

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,OnSetTitleMatchMode,2 ; 激活窗口并单击按钮IfWinExistActiveControlClick

Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio添加Parcelable序列化小工具(快速提高开发效率) Android Studio是google专门为开发Android提供的开发工具,在它内部可以直接的添加一些非常好用的开发小工具,这里就讲解怎样添加这些小工具,并且向大家推荐一个非常有用的对象传递时,必须要把对象序列化的接口Parcelable小工具; 这里先介绍下 Android中实现序列化的两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是An

Android开发环境搭建win7x86+studio

前言说明 相关步骤 > JDK下载安装配置 > Android Stuido下载安装配置 > Android SDK相关配置 > genymotion下载安装配置 程序测试 环境搭建完后,需要测试程序才真正成功 > HelloWorldAndroidStudio程序测试 下载地址 如果不是菜鸟,直接点击下载自己安装把虽然 开发软件 官网地址 我的资源(百度云) JDK1.7 请点击我 请点击我 Android SDK24 不包括SDK,需要下载 请点击我 已包括4.0和2.1

Android学习系列(41)--Android Studio简单使用

1. 环境 UBUNTU 14.04 + Android Studio 0.8.2 2. 安装jdk openjdk-7是一个很好的选择: sudo apt-get update sudo apt-get install openjdk-7-jdk 不排除你需要选择一个默认版本: sudo update-alternatives --config java sudo update-alternatives --config javac 3. 安装Android Studio 在UBUNTU有两种

【Android应用开发】Android Studio 简介 (Android Studio Overview)

一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- Intelij 文档参考 : https://www.jetbrains.com/idea/help/intellij-idea.html ; 1. Intelij 与 Eclipse 区别 (1) Intelij 与 Eclipse 对应关系 Android Studio 与 Eclipse 对应

Android调试系列—使用android studio调试smali代码

1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在idea的基础上修改的 smalidea-0.03.zip:  as插件,需要安装到android studio中 , 下载地址 模拟器或者或者真机:运行要调试的程序 样本:使用网络上的某apk程序,  下载地址 2.前期准备 2.1  手机或者模拟器安装应用 adb instll GGNdkTes

「android」Ubuntu下android studio 编译报错A problem occurred starting process 'command '/Android/Sdk/build-tools/21.1.2/aapt''(转)

转自”http://www.cnblogs.com/jonzone/p/5246531.html“ 此问题在stack  over flow 上找到答案. 原链接地址:http://stackoverflow.com/questions/27589844/android-studio-1-0-2-not-building-appmergedebugresources-error 解决方法: //在终端分别运行下面两条指令,安装lib32stdc++6 和lib32z1 sudo apt-get