业界动态
Android 性能测试小工具 (cpu,内存,电量,流量数据浮窗显示,信息导入数据库、sd卡)手机性能测试「Android 性能测试小工具 (cpu,内存,电量,流量数据浮窗显示
2025-01-12 01:21

【mie haha的博客】转载请注明出处(万分感谢
https://blog.csdn.net/qq_40315080/article/details/98610748

写一个测试各个app/手机性能的小工具app。

功能

  1. 打开app得到手机中已有的应用列表,点击可以跳转进入。
  2. 上方标题栏上有选择菜单,可以选择打开,刷新,关闭浮窗,浮窗可以拖动。
  3. 打开浮窗后,浮窗将显示顶层(当前所在)app的cpu占用、内存、流量,手机总cpu占用、电量数据,每几秒实时更新数据。
  4. 一个开关按钮,点击控制数据导入数据库和SD卡或停止导入。(可选)
  5. 一个选择按钮,点击控制监测限定某个app或监测顶层app的数据。(可选)
  6. 点击浮窗返回该小工具app界面。(可选)

(标记可选的与主要功能无关,只是使使用稍微更方便,可以选择性添加)

主要功能代码

首先小工具app打开是手机中app列表,需要先得到app列表。

1.获取app列表

每个app有它对应的名称,包名,进程号(pid),uid。
【pid:每个app运行时都会开启一个进程来实际运行,用pid来标识这个进程,有的app可能会开启多个进程。
在利用android自带的方法获得数据时都是通过pid获取数据,对于多进程app需要把所有进程的数据相加。】
【uid:像一个身份证,唯一地标识某个app。】
【一般包名和名称相比pid和uid更容易得到。】

将app的信息封装在一个类中方便使用。再用该类创建一个列表来保存所有的app信息。最后将这个列表显示在界面上即可得到app列表。

(1)封装app信息

 

(2)创建列表,把获得的app信息加入列表(以下代码写在MainActivity中)

 

app信息列表用LisView来显示,每一项包括app图标,app名称,包名。这需要给ListView添加适配器,用适配器来指定每一项的形式和内容。

(3)适配器

 

并给ListView列表添加适配器

 

(4)最后,实现点击跳转,需要给ListView添加点击监听器

 

2. 打开,关闭,刷新浮窗(可拖动)

(1)首先把打开浮窗,浮窗显示信息,浮窗跟随手移动都写在一个方法中,这样在界面上直接调用这个方法就好。

在浮窗上显示信息其实就是在浮窗上显示一个文本框TextView,可被拖动就是给TextView添加触摸监听器,每次得到手触摸的位置坐标并按照该坐标更新TextView的显示坐标即可。

 

(2)完成了打开浮窗的方法,接下来调用即可。但不是所有手机都可以允许app打开浮窗,这需要提前判断是否有打开浮窗的权限,如果没有权限,需要跳转到权限界面打开权限,再打开浮窗;如果有打开权限直接打开。

手机安装的sdk版本不同,有不同的默认权限设置。sdk高于23的手机一般默认没有打开浮窗权限,需要跳转权限界面打开。低于23的手机一般有权限,可直接打开。

 

浮窗已经有了雏形,但是缺少数据信息来显示。
因为要检测顶层app(即当前app)的数据,需要得到顶层app。

3. 获得顶层app

因为不同信息获取要用到的app信息不一样,取得顶层app时要取得app包名,名称,pid。uid。

包名

 

名称

 

pid

 

uid

 

4. 获得cpu总占用率

获得总体cpu占用率比获取某个app的cpu占用率简单。手机的性能数据都保存在系统中,我们只需要输入命令来调取即可。先来看一下系统中怎么保存的cpu信息

我们需要的数据信息全部保存在/proc文件下。数据根据系统自动更新。
连接手机,在命令行输入adb shell进入shell模式,再输入cat进行 /proc/stat文件 的查看。可以看到
在这里插入图片描述
(图片来自https://www.jianshu.com/p/6bf564f7cdf0

第一行是总cpu使用情况。一个手机可能有多个cpu,下面几行是多个cpu的各自使用情况。由cpu0—cpu3可知该连接的手机共有4个cpu处理内核。cpu数据的单位是jiffies,jiffies 是内核中的一个全局变量,用来记录系统启动以来产生的节拍数,根据不同的linux系统在1ms 到 10ms 之间。

用获取的信息计算使用率

公式:totalCPUrate = (非空闲cpu时间2-非空闲cpu时间1)/(cpu总时间2-cpu总时间1)x100%

一般在较短时间内进行2次取样,计算。
取得的cpu数据是10元组,包括user、nice、system、idle、iowait、irq、softirq、stealstolen、guest、guest_nice。

代码

 

5. 获得某个app的cpu占用率

用获取到的顶层cpu信息,取相应的数据获得某app的cpu使用率。

2.中已经得到了顶层app的pid,用pid获取该app的cpu信息

 

最后规定下显示的小数形式。

 

6. 获得某个app的内存

由app的包名得到app占用的全部内存

 

7. 获得某个app的流量

流量是接受量和发送量的总和。

由app的uid获得流量使用量

 

(app的uid的获得方法在2.中)

8. 把数据信息显示到浮窗,并实时刷新

要实时刷新,就是要不停重新获取数据。这就需要使用线程,把设置显示信息的语句放到线程中执行。安卓中不能直接写在Thread的run()方法中然后调用.start(),而要借助Handler,把更新数据语句写在的post()方法中,再调用.start()。否则会卡顿严重。

代码

 

然后在主界面(MainActivity)调用,开始线程即可

 

9. 把数据导入数据库

导入数据库是指以数据库文件.db形式导入到手机sd卡中,没有安装查看软件的手机无法直接点开.db文件查看,但是可以方柏霓导出到其他设备进行分析。

因为信息是实时更新,实时更新是在线程中实现的,所以导入数据库的语句也写在线程中。

把7.中的run方法稍作修改

 

10. 把数据以.txt形式导入手机sd卡

比数据库文件形式导入更简单

 

仍然在线程中修改,添加如下语句

 

修改后的导入.db和.txt文件到sd卡的线程代码

 

测试手机/某app性能的小工具完成。

以上代码全部完整,工程代码已上传。

仍在入门,如有错误,欢迎指出

    以上就是本篇文章【Android 性能测试小工具 (cpu,内存,电量,流量数据浮窗显示,信息导入数据库、sd卡)手机性能测试「Android 性能测试小工具 (cpu,内存,电量,流量数据浮窗显示】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/32444.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
9款超大屏手机 大屏大视野就是爽!大屏手机「9款超大屏手机 大屏大视野就是爽!」
很多人都说现在的手机越做越大了,比如新一代的 iPhone XS Max , 6.5 英寸的 OLED 显示屏,看起来更像一块平板。 虽说大屏手机
56个民族——藏族
56个民族有:汉族、蒙古族、回族、苗族、傣族、傈僳族、藏族、壮族、朝鲜族、高山族、纳西族、布朗族、阿昌族、怒族、鄂温克族、
Android Crash 定位手机定位系统「Android Crash 定位」
本文介绍了如何在 Android 手机发生 Crash 时进行 Log 分析的方法,它可以帮助测试人员快速定位 Android 手机 Crash 发生
android 主界面 round,一秒将安卓变WebOS!RoundR圆角界面体验palm手机「android 主界面 round,一秒将安卓变WebOS!RoundR圆角界面体验」
相信经常关注智能手机发展的朋友还会记得Palm Pre和WebOS这两个名词。Palm在智能机的发展史上扮演过不可或缺的角色,可惜
2018年10大手机处理器:骁龙845竟然不是最“街”?手机处理器「2018年10大手机处理器:骁龙845竟然不是最“街”?」
本文为雷科技所原创,无抄袭,首发为雷科技官网,请审核并处理,非常感谢!-----------------------------------2018年即将结束
360手机卫士Pro版免费WiFi强力来袭360免费wifi手机版「360手机卫士Pro版免费WiFi强力来袭」
出门在外没有WiFi,想蹭免费WiFi又担心安全问题?现在,已越狱的iPhone手机用户可以通过360手机卫士Pro 4.7.0版接入免费WiFi,越
ETF周观察|深度调整!沪指周跌5.55%退守3200点,AI全线重挫,创业板人工智能ETF华宝跌出机会?“抄底”资金狂涌!
周五(2025年1月3日),A股延续震荡行情,午后加速走低,沪指续跌1.57%收出三连阴,创指跌2.16%,全市场逾4700股下跌。A500收涨
ACER导航手机超值 一周GPS热点行情点评GPS手机「ACER导航手机超值 一周GPS热点行情点评」
  【PConline 海选导购】一周里面的行情不少,单只算编辑采集的行情文章就达到5、60条之多,还未算厂家直接提供的渠道信息。本
618充值优惠手机用户「618充值优惠」
1、直接打开京喜app的话费充值即可,会自动弹出,点击领取即可。且实测用完一张后第二天还可以再领一张。OPPO和一加同属一家,一