背景:

在App的开发过程中,application是一个程序的入口,一般好多程序都是在这里初始化,抢占初始化最佳时机。由于很多初始化抢占时机会导致进程在初始化的时候特别耗时,这样会导致app的体验急剧下降。如何监控app冷起已成为一个热门话题。

冷起占用时间过长,会导致在体验等各方面都很不好。这时,我们需要统计哪些设备在冷起比较耗时。

冷起:又叫新进程创建,指当前app进行不在虚拟机内,需要创新创建。从创建和第一个页面的过程,叫冷起。

如何统计冷起:

1:我们只需要在application中进行即可。每个页面或者application在被加载到内存中都会回调

attachBaseContext(Context)。即当前已被添加成功。所以在application中,我们只需要在
attachBaseContext(Context)中记录一下启动时间,
@Override
protected void attachBaseContext(Context base) {super.attachBaseContext(base);starttime = System.currentTimeMillis();
}

2:监听第一个页面(action=Main)的入口页面,如何监听?其实我们可以通过

registerActivityLifecycleCallbacks()监听activity的生命周期回调来监听。

在application中注册一个生命周期回调,

public interface ActivityLifecycleCallbacks {void onActivityCreated(Activity activity, Bundle savedInstanceState);void onActivityStarted(Activity activity);void onActivityResumed(Activity activity);void onActivityPaused(Activity activity);void onActivityStopped(Activity activity);void onActivitySaveInstanceState(Activity activity, Bundle outState);void onActivityDestroyed(Activity activity);
}

我们根据自己的业务在指定的回调方法进行业务判断,接下来我们采用onActivityCreated()进行处理。如果你认为onActivityStarted()才算启动完成,也可以将代码添加在此处。

接下来处理tagActivity的启动模式,判断是否是入口页面

public static final String ACTON_MAIN = "android.intent.action.MAIN";
Set<String> set = activity.getIntent().getCategories();
//<category android:name="android.intent.category.LAUNCHER" />
String action = activity.getIntent().getAction();
//<action android:name="android.intent.action.MAIN"/>
if (TextUtils.equals(ACTON_MAIN, action)) {endTime = System.currentTimeMillis();long total = endTime - starttime;
}

如果当前action是android.intent.action.MAIN,代表是程序入口。我们只要统计一次即可。

通过时间做减法,即可得出冷启动的耗时。

Android 冷启动耗时,时长统计相关推荐

  1. android 统计app使用时间,android开发之app在线时长统计sdk开发

    引言: 很多app的在线时长统计都是通过在activity的生命周期中埋点来完成的.我这里既然是封装成sdk,当然就不能这样来了.封装sdk的规则,我想大家都清楚,入参尽量少,回调尽量全,权限尽量不要 ...

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

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

  3. 通过video.js或原生事件统计实际观看视频时长,支持多视频时长统计

    前言:1.根据评论提问,优化了视频统计逻辑,增加了网络卡顿时暂停计时,重新播放后重新计时的功能.根据以下下载地址可以下载完整代码示例, 更新于:2022年8月26号,2.新增通过原生事件的写法统计观看 ...

  4. 58 Hive案例(访问时长统计)

    需求 从web日志中统计每日访客平均停留时间 实现步骤 1.由于要从大量请求中分辨出用户的各次访问,逻辑相对复杂,通过hive直接实现有困难,因此编写一个mr程序来求出访客访问信息(详见代码) 启动m ...

  5. 学生学习时长统计--python程序设计

    python程序设计课程的最后一次作业:统计学生学习时长:这是python程序设计课程的最后一次课的作业. 程序要求: 输入学生的信息,统计学生的学习时长.输入数据字段包括 :学生姓名.学号.学习时长 ...

  6. 文件内音频的时长统计并生成csv文件

    目录 一.需求 二.相关库 三.完整代码 四.一些问题 一.需求 请编写 Python 脚本,统计附属压缩文件"wav.zip"中音频的时长,并将统计结果保存在与 "wa ...

  7. HTML5停留时长统计,平均停留时间

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 这个指标由于其看上去是一个很容易理解的度量指标(不就是访客在这浏览这个网站时花了多少时间吗).因此不少管理人员特别是其他非网站 ...

  8. android 获取录音时长_录音转文字,支持安卓和IOS和PC

    在生活过过程中,我们需要用笔去记录一些比较重要的会议记录,但是在这个过程中我们肯定会遗漏一些关键的要点 还有电话录音的时候我们需要做案例分析的时候,如果反反复复去听感觉大脑没有那么容易反应过来,对于分 ...

  9. android 设置动画时长,XamarinAndroid组件教程设置动画的时长参数

    XamarinAndroid组件教程设置动画的时长参数 在添加动画的时候,开发者还可以动画参数进行设置,如动画持续的时长.插值器等.下面依次讲解动画参数的设置方法. 1.设置动画时长 设置动画持续的时 ...

最新文章

  1. 用python写搜索引擎_用python做一个搜索引擎(Pylucene)的实例代码
  2. hbase 客户端_HBase架构与原理详解
  3. Java练习 SDUT-2401最大矩形面积
  4. Matlab图像处理创新实践-实验3【图像锐化】
  5. ocp oracle 考试报名_获得Oracle认证对拓展职业前景的影响
  6. IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置...
  7. 数据治理---Apache Atlas元数据管理
  8. 为语音社交平台加一个防护罩,即构上线实时语音安全方案
  9. Visual Studio Code中设置HTML/HTML5模板
  10. NetSuite中如何使用Workbook制作销售同比分析表
  11. Surface reconstruction from unorganized points
  12. VMware中Ubuntu20.04网卡丢失
  13. 中文技术文档写作规范【转载】
  14. H.264中的SPS和PPS
  15. wasm转c调用与封装至dll案例
  16. 关于高德地图定位到非洲
  17. nginx mysql 网页显示_Win10+Python+Django+Nginx+MySQL开发教程及实例(3)——Nginx运行html网页...
  18. 纯前端excel导出
  19. 石头科技: 决胜百亿扫地机器人“价值高地”
  20. console接口是干嘛的

热门文章

  1. 一个程序员创业一年的感悟
  2. 如何用LLMs来赚钱?基于ChatGPT的商业模式指南
  3. 顶尖商业模式:只用3万就能收购30万的实体店,绝对让你震撼
  4. docker下hitchhiker安装
  5. Ubuntu 安装GTK,Glade
  6. 电梯仿真程序设计报告+任务书+仿真电梯MFC源程序
  7. 这5款黑科技手机APP,瞬间提高手机逼格!
  8. 多云管理平台发展的几个阶段
  9. osgearth设置osgEarth::Util::Viewpoint视口
  10. 国标(GB28181)摄像头无插件对讲及网页直播