公司最近要做启动时长,需求是在每次周版本分别记录一下
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启动时长的做法相关推荐

  1. ionic3实现app启动时进行网络监测功能

    需要联网的app一般都需要进行网络监测,尤其是在app启动时,若未发现网络连接应给出提示,本文在参照官网的基础上实现了app启动进行网络监测,实现该功能其实非常简单,只需用到cordova的一个插件- ...

  2. android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法

    1.产生原因 其实显示黑屏或者白屏实属正常,这是因为还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景. 示例: 2.解决办法 通过设置设置Style (1)设置背 ...

  3. App启动时黑屏问题

    问题:app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示 分析:黑屏或者白屏这里并不是不正常,而是还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗 ...

  4. php录音时长统计,音频app阅读时长统计分析

    描述 分析学习喜马拉雅app阅读时长统计机制,并应用到自己app中去 分析 使用抓包工具charles观测app统计发送时机,发现切换音频源,或本地缓存有阅读数据进入首页app时发送(nyx/v2/t ...

  5. Android 获取 App 累积时长

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:淮左明都 链接:https://www.jianshu.com/p/ec8627fe3fd7 声明:本文已获淮左 ...

  6. Android APP启动时出现白屏或者黑屏怎么办?

    1.为什么APP启动时会出现白屏或者黑屏? 当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要 ...

  7. APP启动时白屏/黑屏 或者 Activity打开时白屏/黑屏

    绘制整个窗口需要按顺序执行以下几个步骤: 1. 绘制背景. 2. 绘制View本身的内容. 3. 绘制子View. 4. 绘制修饰内容(例如滚动条). 在Theme中可以指定窗口的背景,Activit ...

  8. android+闪屏启动优化,Android分享笔记(2) APP启动时闪屏

    App在启动时,即在欢迎界面.老是出现白屏或黑屏,闪一下然后才出现欢迎界面. 我欢迎界面原先是这样的:<?xml  version="1.0" encoding=" ...

  9. 解决App启动时白屏的问题

    第一次 03-25 11:02:34.431 6908-6908/com.newenergyjinfu.jytz D/App: before_onCreate: 239 03-25 11:02:34. ...

最新文章

  1. 使用Cookie记录信息
  2. 【青少年编程】【三级】打气球游戏
  3. android好用的第三方库2018使用总结
  4. [导入]php 安全基础 附录C. 加密
  5. 2021-12-27
  6. 牛客网(剑指offer) 第九题 变态跳台阶
  7. 疫情与资本寒冬双重危机下,智领云为何能拿到数千万融资?
  8. 信息安全系统设计基础第四周学习总结—20135227黄晓妍
  9. 【重难点】【Java基础 01】一致性哈希算法、sleep() 和wait() 的区别、强软弱虚引用
  10. alphac测试和bata测试区别_绝缘电阻测试仪和接地电阻测试仪的测试方式区别
  11. 权重的计算方法,主要有两种:1.线性加权法; 2.层次分析法
  12. 平安京因服务器升级维护什么意思,阴阳师4月27日维护更新公告 堀江由衣猫掌柜降临平安京...
  13. c语言命令笔记本电脑快捷键,实用的电脑操作技巧(附快捷键)
  14. 计算机等级考试四级网络工程师必备考点总结
  15. Android Jetpack之DataBinding+ViewModel+LiveData+Room
  16. 安全框架-SpringSecurity
  17. 最新ChatGPT商业运营版网站源码+支持AI绘画+支持用户会员套餐+邀请分佣功能+支持后台一键更新+网站后台管理+永久更新!
  18. 量子能--下一代能源革命
  19. sequoia负载均衡
  20. Python 实现获取【昨天】日期

热门文章

  1. over(Partition by…) 一个超级好用的特有(开窗)函数。
  2. 论文投稿指南——中文核心期刊推荐(国家财政)
  3. Web网站有什么特点?
  4. 经营之圣稻盛和夫演讲:首先你必须得这么想
  5. 手机游戏直播 : 悟空TV客户端设计与技术难点
  6. GLSL 与布丁晃动艺术
  7. Json问题:万国码转成汉字
  8. javascript公有静态成员
  9. 2021最全数学建模必备资料
  10. 亚马逊卖家遇到发货与收货数量不一致该如何申请有效赔偿?