APP性能测试指标

性能测试的指标总共是三个方面:APP在客户端,网络上,应用服务器上的性能测试。

1:包体

特别是针对游戏类的app,需要从app性能指标及游戏运营两个角度去考虑,一般需要的是包体越小,同时性能越高。

2:cpu的占用率

一般的app(小型)的占用率在20%--30%之间。随着手机的应用配置提高,占用率在70%--80%之间。但超过80%时就需要关注。

3:帧数(FPS)

起作用是用来指示页面是否平滑的渲染,一般在30--60都是可以接受的,当超过60%时,给人的感官差别就不会太大。不一定是FPS越高就越好,

FPS取决于显卡,其次是内存、CPU,然后是网络。

4:物理内存的占用

在Android系统中,每个APP进程除了同其他进程共享(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(=私有内存+比例分配共享内存)

来衡量一个APP的内存开销。移动设备的内存资源是非常有限,为每个APP进程分配的私有内存也是有限制。一方面我们要合理的申请内存使用,以免导致频繁的

GC(垃圾回收机制)影响性能和大对象申请发生内存溢出;另一方面,我们要及时释放内存,以免发生内存泄漏。

5:电量

相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,

CPU,连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。

6:流量

目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类

型之下,我们不仅要控制流量使用,还需要加快请求的响应。另外,对于需要联网的手游来说,部分游戏对不同联网方式的网络类型采用了不同的流量消耗策略,主要分为wifi

环境和蜂窝网络环境。所以针对不同的游戏,我们统计流量消耗时,可能要连接不同的网络进行测试。

 

转载于:https://www.cnblogs.com/zhouzetian/p/6738572.html

### 查找并监测 APP 流量消耗的 ADB 命令 为了通过 `adb` 命令监测 Android 应用程序的流量消耗,可以按照以下方法操作: #### 获取目标应用程序的 UID 首先需要找到目标应用的唯一标识符 (UID),这可以通过以下命令实现: ```bash adb shell dumpsys package your-package-name | grep userId ``` 上述命令会返回类似于 `userId=10123` 的结果,其中 `10123` 是该应用的 UID[^4]。 #### 定位流量统计文件路径 在 Android 系统中,每个应用的网络流量统计数据存储于 `/proc/uid_stat/<UID>/tcp_rcv` 和 `/proc/uid_stat/<UID>/tcp_snd` 文件中。这两个文件分别记录接收和发送的数据字节数。例如,如果获取到的应用 UID 为 `10123`,则对应的流量统计文件位于以下位置: - 接收数据:`/proc/uid_stat/10123/tcp_rcv` - 发送数据:`/proc/uid_stat/10123/tcp_snd` 可通过如下命令读取这些文件的内容以获得具体的流量数值: ```bash adb shell cat /proc/uid_stat/10123/tcp_rcv adb shell cat /proc/uid_stat/10123/tcp_snd ``` 以上两条命令分别显示接收到的数据总量以及发送出去的数据总量(单位为字节)。注意替换实际的 UID 数值[^1]。 #### 自动化脚本监控实时变化 为了持续跟踪某个时间段内的流量变动情况,可编写简单的 Shell 脚本来周期性地查询上述两个文件,并计算差值作为新增加的部分。下面是一个基本示例代码片段展示如何每秒打印一次当前总流量: ```bash #!/bin/bash UID="10123" PREV_RX=$(adb shell cat /proc/uid_stat/$UID/tcp_rcv) PREV_TX=$(adb shell cat /proc/uid_stat/$UID/tcp_snd) while true; do sleep 1 CURR_RX=$(adb shell cat /proc/uid_stat/$UID/tcp_rcv) CURR_TX=$(adb shell cat /proc/uid_stat/$UID/tcp_snd) RX_DIFF=$((CURR_RX-PREV_RX)) TX_DIFF=$((CURR_TX-PREV_TX)) echo "Received Bytes: $RX_DIFF, Sent Bytes: $TX_DIFF" PREV_RX=$CURR_RX PREV_TX=$CURR_TX done ``` 此脚本将每隔一秒输出一次新产生的上下行流量差异。 另外,在某些情况下可能还需要考虑 Wi-Fi 和移动数据分开计费的需求,则需要用到更复杂的工具或者 API 来区分不同类型的连接所产生的具体影响。 #### 结合 Monkey 或其他自动化手段模拟业务场景 当单独测量静态条件下的基础流量不足以反映真实环境表现时,还可以配合使用 monkey 工具随机触发 UI 动作从而制造动态负载来进行综合评估。Monkey 可以直接经由 adb 执行: ```bash adb shell monkey -p your.package.name --throttle 500 -v 500 ``` 这里 `-p` 参数指定要测试的目标包名;`--throttle` 设置每次事件之间的延迟毫秒数;最后面数字代表总共生成多少条伪随机事件序列[^3]。 综上所述,利用 adb 提供的功能加上适当编程技巧即可有效达成针对特定 app 实际运行期间所耗费带宽大小的有效量化分析目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值