业界动态
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/ , 查看更多   
最新文章
迅雷会员激活码免费领2024手机迅雷app「迅雷会员激活码免费领2024」
迅雷会员可以享受高速下载,免广告等优质特权,但是有的小伙伴只是暂时用几天迅雷,所以不想花钱开通会员。这里小编就为大家带来
游戏王决斗链接单机破解版游戏王手机游戏「游戏王决斗链接单机破解版」
游戏王决斗链接单机破解版是一款全新的策略卡牌竞技手游,该游戏版本是已经进行了单机破解,玩家可以在任何场所进行游戏,不用担
篮球——WCBA总决赛:四川蜀道远达胜东莞新彤盛
当日,在四川成都进行的2024-2025赛季中国女子篮球联赛(WCBA)总决赛第三场比赛中,四川蜀道远达队主场96比77战胜东莞新彤盛队
杭州出让8宗宅地 总成交价近93亿元
新京报贝壳财经讯 4月1日,杭州成功出让8宗宅地,其中钱塘区1宗、临安区1宗、萧山区3宗、拱墅区3宗,总出让面积约23.12万平方米
极端大风将袭,北京又有多个景点临时关闭或调整运营
北京市气象台4月10日发布近十年首个大风橙色预警信号。受此影响,今日北京多个景点宣布临时关闭或调整运营时间。北京钟鼓楼:4月
斗罗大陆导演再改原著,江楠楠家人被害死,徐三石做一事求原谅
  斗罗大陆之绝世唐门第97集预告现在已经更新了,而从预告来看,真是出人意料。因为看了预告之后,能够很明显发现,斗罗大陆导
《我的世界》神奇宝贝进化表介绍我的世界神奇宝贝手机版下载「《我的世界》神奇宝贝进化表介绍」
t2627_2_2627_1:3.0t1-t0:29.0t2-t1:6.0t3-t2:0.0t4-t3:3.0t5-t4:11.0t6-t5:16.0t7-t6:3.0t8-t7:0.0t9-t8:12.0t10-t9:0.0t11-t10
既卖内衣又卖厂房,都市丽人营收重回30亿元 董事长郑耀南:今年目标是将门店开到5000家
每经记者:王帆    每经编辑:董兴生“中国内衣第一股”的收入规模重回30亿元。3月28日午间,都市丽人(HK02298)发布2024年
游戏大肆宣传“偷窥女性”,发布者不能“没事”!丨AI热评
“你,有想偷窥的人吗?每个人都有想偷窥的东西吧。”“加入组织吧,可以满足你的偷窥欲。”“可以出卖住户的情报还债,最重要的
Phyphox创新实验分享——陀螺仪手机陀螺仪「Phyphox创新实验分享——陀螺仪」
【Phyphox创新实验分享】陀螺仪Phyphox与物理在手机逐渐普及的今天,将物理实验与手机传感器相结合的创新案例层出不穷,在phypho