Android系统性能监控最全面分析与实践(一)_android性能监控,2024年最新写给程序员的物联网嵌入式详细教程

103 阅读5分钟

1、背景

随着移动互联网技术的发展,安卓APP的功能越来越多,对于APP性能的要求也随之提高。目前有很多应用性能监控(APM:Application perfmance monitor)的工具,如阿里的mobileperf,网易开源的Emmagee,腾讯的Matrix等等。

以上主流的性能监控是针对APP层,对安卓系统性能的监控也非常重要。谈及系统性能,我们很容易想到CPU使用率、CPU使用率TOP5的进程、内存、内存占用TOP5进程、网络速度、磁盘速度这6个常见的系统性能指标,本文针对这6个指标,通过查阅资料和实践,在应用层开发出一套更高效低耗的Android系统性能通用监控工具,本文也争取成为当前网上分析“Android系统性能监控指标获取和上报”最全面的文章。

2、方案实现

2.1 方案需求分析

结合上述背景分析,为在应用层实现“Android系统性能监控指标获取和上报”这个目标,在此说明本文的需求分析:

  1. 高效低耗低介入:开发一个系统性能监控工具,自然不希望该工具本身为系统性能造成负担,所以在保证完成性能监控的同时还要考虑工具本身的性能。要避免使用耗时较长或者阻塞的方法,同时该功能应该在业务最少介入的情况下,完成性能指标获取和上报;
  2. 本地保存:因为CPU使用率等指标都需要较频繁采集,需要将获取到的数据本地保存,等收集到一定数量数据再一次性压缩上报到后台;
  3. 灵活配置:不同指标获取的频率不同,因此针对不同指标能配置不同的获取频率;同时该监控功能可灵活配置开启和停止,以保证只在规定时间内进行性能监控,其他时间不会对系统造成任何影响。

2.2 方案流程框图

性能上报流程图.png

  1. 设置6个指标获取和上报的间隔时间,每个指标可以独立配置;
  • 配置获取间隔,不配置上报间隔:仅获取数据,并作本地保存;
  • 不配置获取间隔,配置上报间隔:不获取数据,则上报动作无效;
  1. 根据获取间隔获取对应指标数据保存在本地,达到上报时间则读取文件,将获取到的数据压缩上报到后台;
  2. 重复以上动作直到服务结束,期间可以灵活修改获取和上报时间;

3、CPU性能指标获取

CPU是性能监控最重要的指标之一,可以更好的帮我们监控设备的真实使用情况。其中CPU使用率的获取更是老生常谈的事情,那么关于CPU,有哪些指标对分析设备性能有帮助呢?在此推荐以下指标:

  1. CPU整体使用率和每个核的使用率;
  2. CPU有效核数;
  3. 实时CPU使用率最高的5个进程名;

3.1 CPU整体使用率和每个核的使用率

方案一:top指令

说到CPU使用率,熟悉linux或者Android的小伙伴第一个想到的办法一定是top指令,因为top指令非常强大,如下图我们可以知道,系统当前有432个进程,总CPU使用率为800%,其中697%处于空闲状态,其中占用CPU使用率最高的是system_server进程,占用了23.6%的CPU。由此可见top指令可以监视系统整体和各个进程的CPU使用率,但无法获取每个核的使用率,且比较的耗时,因此并不是最好的选择。

image.png

方案二:ps指令

ps(Process Status的缩写)指令是最基本同时也是非常强大的进程查看指令,可以查询系统内每个进程的运行状态、CPU使用率、占用的内存等,因为现在需要获取CPU使用率,可以执行:

ps -eo pid,%cpu,CMD --sort=-%cpu |head -n 6
指令解析:使用-o参数可自定义格式,这里只显示进程号、CPU使用率、进程名,并按CPU使用率降序排序,最后显示前5个进程。



**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/66bda442b9704d61a851cb3889bb3540~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1751903711&x-signature=eVHb2LYN64viHkYYNMAYM7ZRfPs%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/49c79436db3345be9037fc1508ce1cd8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1751903711&x-signature=qxRlMukmsSZDNgY4TXe8oNGCeNw%3D)

**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**