跟踪代码发现,应用启动时的白屏会持续到draw调用完成,这个过程中任何耗时操作将导致白屏时间增长。

1.adb shell am start -W -n yourpakagename/MainActivity

-W: wait for launch to complete 这里的launch to complete一直没理解是到哪里

优点:可快速测试启动时间,与其他应用进行对比。

但第一个页面展示的时间不太一样。

2.System.currentTimeMillis()

本打算用它测试1到底是谁的时间,可惜date +%s%N在android里面不好使,只能打印秒,没有纳秒也就无法显示毫秒。

虽然其他应用可以在调用shell之前打印时间,但打印时间到shell执行中途似乎时间很不准备。也就无法考证了。

2. Log.e("TimeRun", "resume " + android.os.Process.getElapsedCpuTime());

打印进程运行时间,和2一样,快速分析不好使,具体分析也不好使。

3.还是traceView在大概知道程序有问题的情况下好使

android.os.Debug.startMethodTracing("application");

android.os.Debug.stopMethodTracing();

生成/sdcard/application.trace文件,使用traceview打开可以跟踪启动时耗时的函数

我的程序启动在1s以上,发现大部分消耗在布局和绘图上,原来如果布局中每增加一个比较大的imageview时,上述时间都会数十上百毫秒的时间递增。

而前面为了匹配各种机型,直接使用了720*720的图片,背景,遮罩,等等有5层,这个速度直线飙升呀。

以后还是针对不同机型采用不同的尺寸吧。对于大尺寸的,希望有哪位朋友能帮忙指点一下。

最好还是结合1和3共同分析

app启动速度的更多相关文章

  1. Tips——App启动速度的优化与监控

    一.App的启动模式 冷启动:App点击启动前,它的进程不在系统里,需要系统新创建一个进程分配给它启动的情况.这是一次完整的启动过程. 热启动:App在冷启动后用户将App退后台,在App的进程还在系 ...

  2. 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩

    抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...

  3. app启动速度怎么提升?

    简介: APP 启动速度的重要性不言而喻.高德地图是一个有着上亿用户的超级 APP,本文从唤端技术.H5 启动页.下载速度.APP加载.线程调度和任务编排等方面,详解相关技术原理和实现方案,分享高德在 ...

  4. Android App启动速度优化

    解决在桌面上点击APP图标后经过一两秒后才显示页面,以及App启动后主界面显示过慢问题 一.应用的启动方式 1.冷启动:当启动应用时,后台没有该应用的进程,这时系统会首先会创建一个新的进程分配给该应用 ...

  5. 4.Android App 优化之消除卡顿

    转载:http://gold.xitu.io/post/582583328ac247004f3ab124 1, 感知卡顿 用户对卡顿的感知, 主要来源于界面的刷新. 而界面的性能主要是依赖于设备的UI ...

  6. 如何优化 App 的启动时间

    http://www.cocoachina.com/ios/20161102/17931.html App 运行理论 main() 执行前发生的事 Mach-O 格式 虚拟内存基础 Mach-O 二进 ...

  7. Android性能优化之启动速度优化

    Android性能优化之启动速度优化   Android app 启动速度优化,首先谈谈为什么会走到优化这一步,如果一开始创建 app 项目的时候就把这个启动速度考虑进去,那么肯定就不需要重新再来优化 ...

  8. iOS 如何优化 App 的启动时间

    App 运行理论 main() 执行前发生的事 Mach-O 格式 虚拟内存基础 Mach-O 二进制的加载 理论速成 Mach-O 术语 Mach-O 是针对不同运行时可执行文件的文件类型. 文件类 ...

  9. Android性能优化之加快应用启动速度

    应用的启动 启动方式 通常来说,在安卓中应用的启动方式分为两种:冷启动和热启动. 1.冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动. ...

随机推荐

  1. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  2. python的路径

    原来可以这么用和那么用 os.mkdir('d:\\su\\help1') os.mkdir('d:/su/help') 为啥提供俩种呢 真乱

  3. post请求接口

    /// <summary> /// post 调用接口 /// </summary> /// <param name="xmlRequest"> ...

  4. spring的helloworld

    前两天接到了支付宝的电话面试,问了我好多java中的知识,知识姐不看java好多年,这猛一问知道的东西还真是不少啊.趁着现在精力还算是比较旺盛,再把spring重新理一理,为下一次面试做准备. 学习每 ...

  5. Python-day-21

    1.请求周期 url> 路由 > 函数或类 > 返回字符串或者模板语言? Form表单提交: 提交 -> url > 函数或类中的方法 - .... HttpRespon ...

  6. -moz-transform: rotate(-5deg);

    目前越来越多的浏览器兼容CSS3标准了,就连IE浏览器老大哥也开始向CSS3低头,微软宣布IE9浏览器支持更多的CSS3属性,IE9更注重 HTML5标准.不过CSS3里有一个使对象旋转的属性tran ...

  7. cordova常用资料源

    cordova的中文资料https://github.com/CordovaCn/CordovaCn 官方文档: http://cordova.apache.org/docs/en/latest/ E ...

  8. 笔记002:javascript简介

    1. HTML服务于内容 CSS服务于表现 Javascript服务于行为(一切东西的粘合剂) 2.javascript能运行多种宿主环境中(Web浏览器最普遍) 3.历史 1995 Netscape ...

  9. hdu4044 GeoDefense

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4044 题意:一个树上的塔防游戏.给你n个结点的树,你要在树结点上建塔防御,在第 i 个结点上有 ki ...

  10. PCIE学习

    PCIe在传输中用8b/10b编码,所以单PCEe2.0的有效带度是4Gb/s x2模式将用于内部接口而非插槽模式 PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x1 ...