记录一下公司中对于app启动时长的做法
公司最近要做启动时长,需求是在每次周版本分别记录一下
app的整体功耗(耗电量以后更新),和app的启动时长
前置条件:
一.app启动没有广告,闪屏,特殊弹窗
有广告:猎豹清理大师,首页开屏会出广告,可以使用ssp聚合过滤,把渠道置为0关闭
app大多数弹窗有云控,以安卓aid尾号做下发,也可以通过adb命令修改aid
特殊弹窗:权限给足,首先要至少启动一次检查无误后kill掉,保持第一次冷启动
二.使用wifi连接(可选)
1.保持电脑和设备在同一个网段能够ping通
2.插线,adb tcpip 5555
三.常规启动时长测试方法
使用adb命令
adb shell am start -W -n com.cleanmaster.mguard_cn/com.keniu.security.main.MainActivity
包名/第一个activity
app冷启动后检查到最上面activity出现后结束,会记录三个时间
分别是
使用totaltime 即为adb启动时长
四.使用图像识别计算启动时间(符合用户习惯)
1.思路
通过图像识别的像素对比,选取app启动后首页的某一个区域模块,app每次启动后图像识别到这一个区域,就说明启动完成,记录这一段的时间
注意事项
1.这段区域为截图,比对时候上传这一块的图片。
截图必须使用当前设备来截取,不可以使用外置截图,比如裁剪,微信截图之类的,会影响图片质量分辨率
2.选取的区域不能有颜色、样式等的变化,不然识别不到
3.默认从屏幕的左上角为(0,0)坐标开始检索,理论上有速度差异,但是差异不大
2.步骤
先代码截图icon
- 使用adb命令录屏,把视频文件保存下来
def video_recording(time_limit=10, fime_name='demo.mp4'):"""视频录制."""adb = ADB()cmd = 'screenrecord --time-limit %d /sdcard/%s' % (time_limit, fime_name)return adb.shell(cmd)
- 使用python 的cv2模块,将视频分帧,然后选取一张首页的清晰图
def video_separate_to_frame(video_file, pic_path):"""视频分帧@ video_file: 视频文件@ pic_path: 分帧后图片存储目录"""if os.path.exists(pic_path):os.system('rm -rf ' + pic_path)os.system('mkdir ' + pic_path)print('开始视频分帧')cap = cv2.VideoCapture(video_file)frame_count = 1total_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)while 1:success, frame = cap.read()if not success:breakcv2.imwrite(pic_path + '/' + "%d.jpg" %(frame_count), frame)frame_count += 1return int(total_frames)
- 开始截取
def capture_target_image(args):"""截取模版.:return:"""serial, main_activity, flag, src_pic, pos = argsdes_pic = os.path.join(os.path.dirname(__file__), 'lib', serial, main_activity.split('/')[0].strip(' ') + '.png')if not os.path.exists(os.path.dirname(des_pic)):os.makedirs(os.path.dirname(des_pic))print(des_pic)image = cv2.imread(src_pic)def on_EVENT_LBUTTONDOWN(event, x, y, flags, param):if event == cv2.EVENT_LBUTTONDOWN:xy = "%d,%d" % (x, y)print(xy)cv2.circle(image, (x, y), 1, (255, 0, 0), thickness=-1)cv2.putText(image, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,1.0, (0, 0, 0), thickness=1)cv2.imshow("img", image)cv2.namedWindow("img", 0)cv2.setMouseCallback("img", on_EVENT_LBUTTONDOWN)if flag == 'see':cv2.imshow('img', image)cv2.waitKey(0)elif flag == 'save':x1, y1, x2, y2 = posimg = image[y1: y2, x1: x2]cv2.imwrite(des_pic, img)
``
后续操作可以参考:
https://github.com/williamfzc/stagesepx
https://blog.csdn.net/longlong2015/article/details/88825956
记录一下公司中对于app启动时长的做法相关推荐
- ionic3实现app启动时进行网络监测功能
需要联网的app一般都需要进行网络监测,尤其是在app启动时,若未发现网络连接应给出提示,本文在参照官网的基础上实现了app启动进行网络监测,实现该功能其实非常简单,只需用到cordova的一个插件- ...
- android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法
1.产生原因 其实显示黑屏或者白屏实属正常,这是因为还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景. 示例: 2.解决办法 通过设置设置Style (1)设置背 ...
- App启动时黑屏问题
问题:app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示 分析:黑屏或者白屏这里并不是不正常,而是还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗 ...
- php录音时长统计,音频app阅读时长统计分析
描述 分析学习喜马拉雅app阅读时长统计机制,并应用到自己app中去 分析 使用抓包工具charles观测app统计发送时机,发现切换音频源,或本地缓存有阅读数据进入首页app时发送(nyx/v2/t ...
- Android 获取 App 累积时长
code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:淮左明都 链接:https://www.jianshu.com/p/ec8627fe3fd7 声明:本文已获淮左 ...
- Android APP启动时出现白屏或者黑屏怎么办?
1.为什么APP启动时会出现白屏或者黑屏? 当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要 ...
- APP启动时白屏/黑屏 或者 Activity打开时白屏/黑屏
绘制整个窗口需要按顺序执行以下几个步骤: 1. 绘制背景. 2. 绘制View本身的内容. 3. 绘制子View. 4. 绘制修饰内容(例如滚动条). 在Theme中可以指定窗口的背景,Activit ...
- android+闪屏启动优化,Android分享笔记(2) APP启动时闪屏
App在启动时,即在欢迎界面.老是出现白屏或黑屏,闪一下然后才出现欢迎界面. 我欢迎界面原先是这样的:<?xml version="1.0" encoding=" ...
- 解决App启动时白屏的问题
第一次 03-25 11:02:34.431 6908-6908/com.newenergyjinfu.jytz D/App: before_onCreate: 239 03-25 11:02:34. ...
最新文章
- 使用Cookie记录信息
- 【青少年编程】【三级】打气球游戏
- android好用的第三方库2018使用总结
- [导入]php 安全基础 附录C. 加密
- 2021-12-27
- 牛客网(剑指offer) 第九题 变态跳台阶
- 疫情与资本寒冬双重危机下,智领云为何能拿到数千万融资?
- 信息安全系统设计基础第四周学习总结—20135227黄晓妍
- 【重难点】【Java基础 01】一致性哈希算法、sleep() 和wait() 的区别、强软弱虚引用
- alphac测试和bata测试区别_绝缘电阻测试仪和接地电阻测试仪的测试方式区别
- 权重的计算方法,主要有两种:1.线性加权法; 2.层次分析法
- 平安京因服务器升级维护什么意思,阴阳师4月27日维护更新公告 堀江由衣猫掌柜降临平安京...
- c语言命令笔记本电脑快捷键,实用的电脑操作技巧(附快捷键)
- 计算机等级考试四级网络工程师必备考点总结
- Android Jetpack之DataBinding+ViewModel+LiveData+Room
- 安全框架-SpringSecurity
- 最新ChatGPT商业运营版网站源码+支持AI绘画+支持用户会员套餐+邀请分佣功能+支持后台一键更新+网站后台管理+永久更新!
- 量子能--下一代能源革命
- sequoia负载均衡
- Python 实现获取【昨天】日期