seed 值一样就能使操作序列一样,虽然保证不了每次事件操作时的状态一样,总体差不多,可以增强复现操作的一致性。
monkey 的 log 有 seed 值,可以要来 monkey 执行 log 看开头的 seed 值,将 monkey 命令后配-s seed 值进行复现。
PS:看截图是 ANR,这不得跟 trace?摆 log 有啥用。。。
这得具体问题具体分析,时间得和实际现象对的上,准确的方式还得从其他测试手段入手,am start 的形式,结果可分析意义不大。
初期介绍原理时做的,主要是考虑引导手底下人不要死执行,要了解原理才没写。目前这个工具方案做了维护,昨天竞品对比需求刚调整的兼容安卓 7.0。
再有做分享是主要为了介绍原理和实现,本身这个 fps 计算的算法已经让我作为函数 “模块” 话,集成到其他监控专项的评估中了。
apk 会受系统限制,比如管家的后台清理的管理,不在白名单会被后台服务回收的。dumpsys SurfaceFlinger --latency-clear 是清除历史数据,之后新数据生成才能取到。无新数据的也会取到 127 行 “0 0 0”。按窗口名抓取,不在显示的窗口无数据。安卓 6.0 之后,surfaceFlinger dump 到的格式内容有变化,我是用 dumpsys SurfaceFlinger|grep "|......|" 获取。
#64 楼 @lixingdeyongyuan 我实现的思路方式首先是考虑提供脱机解决办法,也就是执行后可断开连接,等结束后再收集处理结果。很实际的是测试过程可以减少设备占用,另一点是规避数据线或网络 adb 连接的稳定性及性能传输不稳定场景的因素。
所以我把部分数据分析处理的工作放在设备端,毕竟现在移动平台的硬件性能能力在正常使用下可以承担脚本开销。再有这只是实现抓取 FPS 的数据脚本,目前我已经把这部分改善维护成函数形式,整体应用到综合测试场景的数据抓取。
#60 楼 @merlin.zhou 乐视的手机、TV、盒子都是可以正常使用脚本测试获取数据,可能是窗口名参数传错了。testerhome 群里有我的 qq,而且我的招聘贴也留过联系方式。
#58 楼 @merlin.zhou 本身这个方案就只有两点限制:
1、支持 dumpsys SurfaceFlinger --latency 命令
2、依赖 push 的 busybox,(可以 busybox 官网下对应版本)
个别 Rom 在开发限制上可能会禁止 dumpsys 在非 root 下使用,很少量的 Rom 是做这种严格限制的。
个人观点是否笔试看技术面试官的想法,如果技术面试官可以通过沟通直接判定就不需要,我自己在面试应聘者时多数都是直接聊。沟通过程中聊到需要动笔写写的部分,准备张纸写写代码或画画流程图。
对于笔试本身有多重作用,一是表现应聘者基本的一个态度,哪怕手机百度也得交份答案。这是做事的基本态度,安排下任务了总得交份结果。再有就是为了通过笔试筛除一些不想面试的人提高面试效率,具体的就看面试题的设计了。
报名链接怎么 520 了?
#52 楼 @yonglezhu adb shell dumpsys SurfaceFlinger --latency 会有 128 行数据,如果存在同名窗口会空行间隔追加另一组 127 行数据。
第一行代表刷新周期
第一列是开始绘制的时间
第二列是垂直同步的时间
第三列是硬件绘制完成的时间
jank 非零代表硬件绘制掉帧,和屏幕硬件性能及相关驱动性能有关。
每两行垂直同步的时间差代表两帧绘制的帧间隔,如果差值小于第一行刷新周期或为负数,说明第二帧提前准本好的进行了又一次绘制,这里我是按刷新周期时长进行累加总时间的。
等简历啊,等简历。哎,一个还没见到。
#33 楼 @kevin_zsj 看维护的
#46 楼 @caicaiwu2016 引擎的帧数超 30 了?安卓的帧管理底层是 SurfaceFlinger,而绘制时根据垂直同步时间来周期绘制的。 service call SurfaceFlinger 1013 用的应该是句柄变化时间估算的,原理不太一样。SurfaceFlinger 是利用每个 window 历史 127 帧的垂直同步时间进行的计算。
游戏引擎是通过 GL 在 SurfaceView 上绘制,实际帧率变化以垂直同步为准,引擎应该是已绘制耗时为准的吧。
#44 楼 @caicaiwu2016 锁帧是游戏设计,很多游戏为了保证流畅度做了锁帧 30 的设计,这是代码写死的。
#42 楼 @caicaiwu2016 游戏是监控 SurfaceView。而且有些游戏是锁帧 30 的。
提醒注意下:dumpsys meminfo 和 dumpsys cpuinfo 不要混用,dumpsys meminfo 操作会引起 cpu 数据升高不准
#39 楼 @lvkuchadechuntian 你没给 busybox 付权限吧。
adb shell chmod 755 /data/local/tmp/busybox
#37 楼 @xiaolinzi TesterHome 的 QQ 群可以找到我