众所周知APP启动时间是用户对一款APP的第一印象,如果某一款APP启动时间要耗费8秒之久,那么,用户对研发成员的能力就会产生质疑,也会否定开发者辛辛苦苦熬夜赶出来的成果,这也是我们不想看到的,但是产生了性能问题我们就要勇敢的去面对,怎样检测APP启动时间呢?怎样能实时检测启动中发生的性能问题呢?就这篇文章来浅谈相关知识!

一、冷启动的相关知识

启动分为冷启动和热启动,一般的优化都是针对冷启动来进行,本文主要分析冷启动。

冷启动是Android性能测试中的重要指标,即应用从进程未创建到完全启动的时间,一般要求时长<1.5s,过长需要考虑优化。

比如:设备启动后,APP第一次Launch或者APP被Kill掉后的重启。这种类型的启动优化存在很大挑战,因为Android系统或应用还有其他更多的后台进程在运行。

启动流程大致如下:

点击Launcher 上的 icon开加载app -->立即显示白屏或黑屏等 --> Application onCreate --> Activity Init----> Activity onCreate ---> 初始化数据,填充显示View ---> Activity onResume等。

二、App 启动时间测量与分析

如何获取APP启动时间,请看以下测量方法

1.通过 adb 命令测量APP 冷启动时间

使用adb 命令直接启动APP进而测量APP启动耗时 的方法如下:

adb shell am start -W [packageName]/[packageName.MainActivity]`

adb [-d|-e|-s ] shell am start -S -W [packageName]/[packageName.MainActivity] -c android.intent.category.LAUNCHER -a android.intent.action.MAIN

2.通过 adb logcat 查看APP 启动时间

在Log中,主要是 通过分析 logcat中APP在 ActivityManager: Displayed的时间值 ,此时间值包含以下时间综合信息:

Launch 进程

初始化对象

创建并初始化Activity

填充布局

第一次绘制app 内容

3. 在代码中测量app启动性能的方法如下:

在Activity代码用调用 reportFullyDrawn(); 方法,将绘制完成后信息反馈到Log上,此方法跟logcat中查看的时间相似。

比如自己运行ProgramAndrod APP的启动时间信息如下

11-24 11:47:00.363 982 1191 I ActivityManager:

Fully drawn com.programandroid/.MainActivity: +998ms

reportFullyDrawn()方法告知系统app Launch 成功时间

4.使用工具——u-apm

友盟+u-apm性能检测工具

随着线上用户诉求的提高,很多开发同学也从线下测试性能演变到更关注线上性能问题,以此保障用户体验。根据这一问题友盟+也非常重视开发者面对应能监测的各类问题,新增了启动分析、内存分析、卡顿分析功能这里主要讲启动分析功能。

启动分析:

启动场景是用户使用App的第一道关卡,启动慢、启动闪退都会直接从源头阻断客户使用,甚至会造成启动不成功新客户卸载的情况。很多技术团队都会以启动耗时作为重点性能监控指标。U-APM中启动分析包含启动趋势、慢启动分析和启动崩溃分析三大功能模块。

1、启动分析支持通过预置采集和个性化自定义两种方式定义启动阶段,可以分别查询首次启动、冷启动、热启动的情况效果,并可以与设备、系统、版本、地域等维度做交叉筛选查询。

2、用户也可以分别对首次启动、冷启动和热启动设置慢启动的业务定义。一般情况下,热启动的时间要远低于冷启动、首次启动的时间。慢启动分析可以分别监控三种情况下的慢启动设备数量,以及设备系统分布等信息,并且支持单一设备定点查询启动时序,精准定位问题。

3、启动崩溃分析中筛选出自定义的启动时限下的崩溃列表,更便于定位启动问题。

三、总结

根据文章介绍,随着用户诉求的提高,对于APP优化时间用户等不了太久,那么传统的启动时间检测耗费人力物力资源,性价比并不高,友盟根据这些性能问题研发了启动分析功能,将帮助开发者渡过难关。

APP启动时间检测——u-apm相关推荐

  1. android进程自动启动时间,如何统计Android App启动时间

    随着App的逻辑不断庞大,一不注意就会将耗时的操作放置在应用启动过程之中,导致应用启动速度越来越慢,用户体验也越来越差.优化启动速度是几乎所有大型App应用开发者需要考虑的问题.优化启动速度之前首先需 ...

  2. iOS开发--APP性能检测方案汇总(一)

    Linux编程点击右侧关注,免费入门到精通! 作者丨青苹果园 https://github.com/SilongLi 1 . CPU 占用率 CPU作为手机的中央处理器,可以说是手机最关键的组成部分, ...

  3. 《iOS APP 性能检测》

    colawyeeqiu | 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能检测的一些方法, ...

  4. Android启动优化实战(有效降低APP启动时间)

    1.概述 手机点击一个APP,用户希望应用能够及时响应并快速加载.启动时间过长的应用不能满足这个期望,并且可能会令用户失望.这种糟糕的体验可能会导致用户在 Play 商店针对您的应用给出很低的评分,甚 ...

  5. struts启动时加载_iOS优化篇之App启动时间优化

    原文:橘子不酸丶http://www.zyiner.com/article/5 前言 最近由于体验感觉我们的app启动时间过长,因此做了APP的启动优化.本次优化主要从三个方面来做了启动时间的优化,m ...

  6. adb-获取包名/界面名、获取app启动时间、卸载app、退出app、查看所有进程

    获取包名/界面名 Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp adb shell dumpsys window win ...

  7. 安卓实现APP自动检测软件版本并提示更新

    安卓实现APP自动检测软件版本并提示更新 前言 当我们在做安卓项目的时候,客户的需求往往难免会发生变动.但是我们的产品已经上线了,却又需要修改的话我们该怎么办呢?也许很多应用商店已经集成了这个功能,只 ...

  8. 移动 app安全评估检测技术分析

    由于现今的网络技术日益发达,安卓 APP 的安全也有很多隐患,这些都需要我们不断地去注意,从而提高其安全性.人们基于系统程序.系统数据.基础业务的安全性以及应用程序出现的漏洞这几个方面,来不断地完善并 ...

  9. 测试打呼噜的软件,打呼噜人群福音!这款app能检测鼾声并提供一站式止鼾方案...

    原标题:打呼噜人群福音!这款app能检测鼾声并提供一站式止鼾方案 少侠,你睡觉会打鼾吗? 呃,呼噜这个事情,一般情况下,大家是不愿意承认的,毕竟没有证据,想怎么说都可以. 然而今天推荐的这款APP就能 ...

  10. Android踩坑经验--App启动时间正确统计姿势

    在这里讨论的是指冷启动,热启动不在讨论范围内.如何正确衡量App的启动时间,一般有以下几种方法:AMS日志分析法,录屏分帧法,代码埋点法,logicat分析法等,本文重点阐述最常用的AMS日志分析法, ...

最新文章

  1. LVS+Keepalived-DR模式负载均衡高可用集群
  2. ASP.NET MVC Core的TagHelper (高级特性)
  3. 茶香账簿小程序开发进度(1)
  4. 46 关于Linux的I/O重定向
  5. centos7 git安装
  6. kubernetest master 节点恢复灾备恢复操作指南
  7. java js跳出循环_[Java教程]js循环的总结
  8. 前端学习(3063):vue+element今日头条管理-总页码处理2
  9. g++: command not found的解决
  10. Palindromic Twist(CF-1027A)
  11. VUE自学日志02-应用与组件实例
  12. c#.net操作注册表RegistryKey
  13. selenium webdriver (6) -- iFrame
  14. 微软 Windows 10 将支持 8 英寸以下 ARM 平板设备
  15. Python设计模式——责任链模式
  16. 安卓逆向助手反编译apk后文件夹为空
  17. C++语句 与简单方法
  18. 手机浏览器获取某东cookie
  19. Java里面的Lambda表达式
  20. 华为复制加密门禁卡_将多种累赘门禁卡归一合并的最佳选择

热门文章

  1. 计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办
  2. Java.util.ArrayList详解
  3. LINUX——正则表达式
  4. android TV 插入U盘检测
  5. 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置怎么解决
  6. 阿里云盘帮我扩容了10个T,拿来吧你!
  7. MATLAB混度系统仿真其二:蔡氏电路系统和三阶RC梯形移相振荡器仿真
  8. 施努卡:机器视觉公司排名(机器人视觉系统)
  9. 一个牛人在美国的跳槽经历(转)
  10. 数据库--流程控制语句的应用