APP启动时间检测——u-apm
众所周知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相关推荐
- android进程自动启动时间,如何统计Android App启动时间
随着App的逻辑不断庞大,一不注意就会将耗时的操作放置在应用启动过程之中,导致应用启动速度越来越慢,用户体验也越来越差.优化启动速度是几乎所有大型App应用开发者需要考虑的问题.优化启动速度之前首先需 ...
- iOS开发--APP性能检测方案汇总(一)
Linux编程点击右侧关注,免费入门到精通! 作者丨青苹果园 https://github.com/SilongLi 1 . CPU 占用率 CPU作为手机的中央处理器,可以说是手机最关键的组成部分, ...
- 《iOS APP 性能检测》
colawyeeqiu | 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能检测的一些方法, ...
- Android启动优化实战(有效降低APP启动时间)
1.概述 手机点击一个APP,用户希望应用能够及时响应并快速加载.启动时间过长的应用不能满足这个期望,并且可能会令用户失望.这种糟糕的体验可能会导致用户在 Play 商店针对您的应用给出很低的评分,甚 ...
- struts启动时加载_iOS优化篇之App启动时间优化
原文:橘子不酸丶http://www.zyiner.com/article/5 前言 最近由于体验感觉我们的app启动时间过长,因此做了APP的启动优化.本次优化主要从三个方面来做了启动时间的优化,m ...
- adb-获取包名/界面名、获取app启动时间、卸载app、退出app、查看所有进程
获取包名/界面名 Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp adb shell dumpsys window win ...
- 安卓实现APP自动检测软件版本并提示更新
安卓实现APP自动检测软件版本并提示更新 前言 当我们在做安卓项目的时候,客户的需求往往难免会发生变动.但是我们的产品已经上线了,却又需要修改的话我们该怎么办呢?也许很多应用商店已经集成了这个功能,只 ...
- 移动 app安全评估检测技术分析
由于现今的网络技术日益发达,安卓 APP 的安全也有很多隐患,这些都需要我们不断地去注意,从而提高其安全性.人们基于系统程序.系统数据.基础业务的安全性以及应用程序出现的漏洞这几个方面,来不断地完善并 ...
- 测试打呼噜的软件,打呼噜人群福音!这款app能检测鼾声并提供一站式止鼾方案...
原标题:打呼噜人群福音!这款app能检测鼾声并提供一站式止鼾方案 少侠,你睡觉会打鼾吗? 呃,呼噜这个事情,一般情况下,大家是不愿意承认的,毕竟没有证据,想怎么说都可以. 然而今天推荐的这款APP就能 ...
- Android踩坑经验--App启动时间正确统计姿势
在这里讨论的是指冷启动,热启动不在讨论范围内.如何正确衡量App的启动时间,一般有以下几种方法:AMS日志分析法,录屏分帧法,代码埋点法,logicat分析法等,本文重点阐述最常用的AMS日志分析法, ...
最新文章
- LVS+Keepalived-DR模式负载均衡高可用集群
- ASP.NET MVC Core的TagHelper (高级特性)
- 茶香账簿小程序开发进度(1)
- 46 关于Linux的I/O重定向
- centos7 git安装
- kubernetest master 节点恢复灾备恢复操作指南
- java js跳出循环_[Java教程]js循环的总结
- 前端学习(3063):vue+element今日头条管理-总页码处理2
- g++: command not found的解决
- Palindromic Twist(CF-1027A)
- VUE自学日志02-应用与组件实例
- c#.net操作注册表RegistryKey
- selenium webdriver (6) -- iFrame
- 微软 Windows 10 将支持 8 英寸以下 ARM 平板设备
- Python设计模式——责任链模式
- 安卓逆向助手反编译apk后文件夹为空
- C++语句 与简单方法
- 手机浏览器获取某东cookie
- Java里面的Lambda表达式
- 华为复制加密门禁卡_将多种累赘门禁卡归一合并的最佳选择