zoukankan      html  css  js  c++  java
  • 2-启动时间

    启动时间

    启动时间一般分为两种:冷启动/热启动

    从功能上说

        冷启动:进程首次创建并加载资源(首次安装启动app,强制停止再启动app)

        热启动:app进程未完全被杀死,重新唤醒app(home键退出,返回键退出)

    从系统上说

        冷启动:在我们点击启动app的时候,安卓会创建出一个新的进程分配给该应用,然后会创建application,然后才是启动Activity

        热启动:一个app只会创建一个application,所以进程没被彻底干掉之前,热启动的只有Activity

    热启动快于冷启动```因为少了很多步骤嘛~

    获取启动时间:adb shell am start -W  package/Activity

    此方法可以返回如下数据(时间单位毫秒.豌豆荚冷启动,接近3S```):

    经过求教开发们,得之以上三个Time的区别看丑图:

    TotalTime:创建进程到启动最后一个Activity的显示时间(黄线+绿线)

    WaitTime:totaltime+系统的一些耗时,所以这个永远是最长的(红+黄+绿)

    ThisTime:通常和Totaltime一样,但是当启动Activity不止一个的时候,它记录最后一个Activity的时间(绿线)

    黄线:为啥有这么一个无界面的Activity呢?具开发描述,有时候它们会创建一个无界面的Activity来初始化一些数据吧啦吧啦(据说知乎就有)

    所以,我们一般关注TotalTime就可以了

    相关命令

    强制停止运行:adb shell am force-stop package

    模拟返回键:adb shell input keyevent 3

    logcat:adb logcat | find "ActivityManager"

    logcat能够抓到一个ActivityManager的Display,也是启动时间,暂不知道是Totaltime还是Thistime,我猜是Totaltime

    数据应用

    我们拿到比对数据后,可以先同竞品进行数据比对,然后和自己往期版本进行比对.

    如果发现某场景数据异常,那么首先要沏茶一壶,再找个舒服的凳子,然后来到程序猿旁边,最后心平气静的问他你在这块代码里都干啥了?

    -----华丽的吐槽线-----

    ((╯‵□′)╯︵┻━┻ 鬼知道程序猿们会写出什么BUG)

  • 相关阅读:
    react 学习
    swiper
    日历插件
    插件 uploadify
    前端 websocket用法
    jQuery插件Highcharts
    可用于nodejs的SuperAgent(ajax API)
    git的基本命令
    自己对javascript闭包的了解
    函数中的this的四种绑定形式
  • 原文地址:https://www.cnblogs.com/dianxiao2/p/6187137.html
Copyright © 2011-2022 走看看