Android性能监控

Android性能监控

一、搭建Android性能测试环境,参见《Android性能测试之Monkey使用》中内容。

二、启动Android虚拟机,可以通过eclipse启动,也可以通过命令启动:

1、通过android list avd命令查看已创建的虚拟机;

2、通过命令emulator @name启动虚拟机;

三、内存采集

1、通过dumpsys来取值,可以看到所有进程的内存信息,命令如下:

adb shell dumpsys meminfo

2、查看详细的内存信息,命令如下:

adb shell  dumpsys  meminfo  $pakagename or $Pid

如:adb shell  dumpsys  meminfo 1019

可以看到Native Heap和Dalvik Heap占用了Heap size列显示的大小,Dalvik Heap就是常说的堆内存,Dalvik Heap不能超过最大限制;超过单个程序内存的最大限制时,就可能出现OOM。

查看内存最大限制命令:

adb shell getprop|grep heapgrowthlimit

得到结果:

|[dalvik.vm.heapgrowthlimit]: [96m]       单个程序内存最大限制为96M。

3、使用/system/xbin/procrank来查看内存信息,命令如下:

adb shell procrank

VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放!

四、CPU监控

1、查看前5个进程cpu使用情况

adb shell top -m 5 -s cpu

可查看占用cpu最高的前5个进程(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)

2、CPU数据采集

adb shell dumpsys cpuinfo

CPU占用率为60%,其中用户(user)占用45%,内核占用15%。

如果想筛选指定的应用,使用下面命令:

adb shell dumpsys cpuinfo |grep $packagename 

五、流量监控

1、查找被测应用PID

adb shell ps

找到被测应用com.gewara的PID为1970;

使用命令:adb shell cat /proc/$Pid/net/dev查看流量信息;

如:adb shell cat /proc/1970/net/dev

可以看到发送字节数,如果是联机测试,会显示wlan0列,表示WiFi上传下载标识,上传下载量单位是字节,打开/关闭手机飞行模式,可以初始化wlan0数据。

电量采集命令:

adb shell dumpsys battery

注:如果不能使用grep命令,下载安装Cygwin工具。

时间: 2024-10-22 16:27:51

Android性能监控的相关文章

使用ddmlib实现android 性能监控

使用ddmlib实现android 性能监控 原理: cpu adb shell dumpsys cpuinfo packageName memory adb shell dumpsys meminfo packageName 流量 cat /proc/uid_stat/uidxxx/tcp_rcv cat /proc/uid_stat/uidxxx/tcp_snd 其中 uid的获得通过 adb shell dumpsys package packageName 取得 userId=(\d+)

Grafana + Influxdb Android性能监控部署

目录 简介 一.前提准备 二.安装 Grafana 三.安装 Influxdb 四.Grafana 添加 Influxdb 数据源 五.Shell 脚本写入数据到 Influxdb 简介 一.前提准备 本实例在 CentOS 7 虚拟机环境下实践,并通过 docker 进行 grafana+ influxdb 的安装 确保虚拟机能识别到 Android 设备(若不能识别,查看 VMware USB Arbitration Service 虚拟机USB相关服务是否开启) 已配置 AndroidSD

Google 发布 Android 性能优化典范

2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议.主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化.下面是对这些问题和建议的总结梳理. 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计

MongoDB运行状态、性能监控,分析

转自http://tech.lezi.com/archives/290 MongoDB运行状态.性能监控,分析 Posted by neilxp on 十月 26, 2011Leave a comment (2)Go to comments 这篇文章的目的是让你知道怎么了解你正在运行的Mongdb是否健康. mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取mongodb的当前运行状态,并输出.如果你发现数据库突然变慢或者有其他问题的

[Android Pro] Android性能优化典范第一季

reference to : http://www.cnblogs.com/hanyonglu/p/4244035.html#undefined 2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议. 主要从三个方面展开,Android的渲染机制,内存与GC,电量优化.下

Android性能优化典范(一)

2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议.主要从三个方面展开,Android的渲染机制,内存与GC,电量优化.下面是对这些问题和建议的总结梳理. 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计师的

Android 性能优化探究

使用ViewStub动态加载布局,避免一些不经常的视图长期握住引用: ViewStub的一些特点: 1. ViewStub只能Inflate一次,之后ViewStub对象被置空:某个被ViewStub指定的布局被Inflate后,就不会够再通过ViewStub来控制它了. 2. ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中. 基于以上的特点,那么可以考虑使用ViewStub的情况有: 1. 在程序的运行期间,某个布局在Inf

Android性能优化典范

2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议.主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化.下面是对这些问题和建议的总结梳理. 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计

android 性能分析案例

本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo 下载bug项目:https://github.com/lzyzsd/MemoryBugs,请注意配合使用MemoryMonitor, AllocationTracker以及HeapDump,LeakCanary等工具来查找潜在的内存问题,并尝试解决. 2.测试工具介绍 (1)memory monit