SDK性能测试

本文详述了安卓和iOS应用的性能测试方法,包括启动时间、内存、CPU、包体大小、流量和稳定性等方面。针对启动时间,强调了2-5-8原则;内存测试建议不超过40M;CPU占用需关注网络请求、图片加载等因素;流量测试涵盖不同场景;还提到了内存泄漏检测和Monkey压测。同时,介绍了ios的Instruments工具进行性能分析,并提及了弱网测试工具QNET和iOS内置网络调试工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安卓性能测试:adb,ios:xcode-instrument

  1. 启动时间:装包后首次启动,热启动、杀进程后的冷启动耗时,遵循2-5-8原则,2s进入第一帧体验最佳,2~5s体验正常,5~8s感觉慢但可以接受,超过8s用户会选择丢弃
    1. 检测方法-安卓:
      1. 获取MainActivity名称:adb shell dumpsys package 包名,找出包含category.LAUNCHER的活动即可发现
      2. 查找启动时间adb shell am start -W 包名/com.jd.ad.splash.SplashAdActivity(主activity的名称),WaitTime即为所查找内容
  2. 内存:非浏览器、游戏,运行时超过100M不可接受,实际值40M以内
    1. 检测命令:adb shell dumpsys meminfo -d 包名
    2. 检测方法:sdk后台长时间后执行命令,检测Pss Total,杀掉进程-启动-加载广告:检测Pss Total,计算差值
  3. sdk包体大小:300k左右,ios-319k
  4. cpu大小:不可长时间占用太高,游戏正常应该在20%~40%,偶发性增高可以,超过80%需要关注
    1. 命令:adb shell dumpsys cpuinfo 包名    
    2. cpu问题可能情况:
      1. 网络请求过多
      2. 进程过多 or 其他应用开启影响
      3. 大量图片、视频等加载或布局
      4. 刷新类服务(如GPS)、特殊加载(视频、GIF、音频加载等)
      5. 当前页面有过多图表或曲线图绘制操作
      6. 输入monitor查找哪个Activity或者方法一直不停运算消耗cpu,如不停止的while或者for循环
  5. 流量测试:首次冷启动耗流、热启动耗流、后台耗流、广告加载&跳转等耗流
  6. 其他:
    1. 执行monitor开启DDMS
      1. 内存泄漏:一直操作,查看内存是否一直增加,如果一直增加表示有内存泄漏;保存内存曲线、TP99等等,绘制对比图
        1. 静态Activity没有被回收、静态view
        2. 内部类:通过静态变量持有了Activity的引用
        3. 匿名类:activity内定义了一个匿名AsyncTask对象,可activity被销毁后AsyncTask仍在执行会导致内存泄漏,执行结束才会被回收
      2. GC:Mirror GC和Full GC的频次和时间,FULL GC会造成明显卡顿
      3. ios的指标-UI Loop :反映 SDK 对 App 流畅度的影响,理论上 60 fps 是最流畅的值
  7. monkey压测

二、ios性能测试:xcode-instrument

  1. 启动时间:time profiler
  2. 内存、CPU:Core Animation
  3. 内存泄露:leaks,红色点代表内存泄露,点击leaked object可以看详细信息;allocation,每次push控制器后内存上涨
  4. 流量测试:Network Activity

三、弱网测试:

  1. 安卓:使用QNET app,https://wetest.qq.com/product/qnet/
  2. ios:添加测试设备-xcode激活后,能开启ios自带的网络调试工具,https://www.jianshu.com/p/2e02994d6b73
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值