Android App启动优化之二

启动流程

在这里插入图片描述

启动状态

应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动、温启动与热启动。。

  • 冷启动:
    冷启动是指应用从头开始启动:系统进程在冷启动后才创建应用进程。发生冷启动的情况包括应用自设备
    启动后或系统终止应用后首次启动。
  • 热启动:
    在热启动中,系统的所有工作就是将 Activity 带到前台。只要应用的所有 Activity 仍驻留在内存中,
    应用就不必重复执行对象初始化、布局加载和绘制。
  • 温启动:
    温启动包含了在冷启动期间发生的部分操作;同时,它的开销要比热启动高。有许多潜在状态可视为温启动。例如:
    • 用户在退出应用后又重新启动应用。进程可能未被销毁,继续运行,但应用需要执行 onCreate() 从头开始重新创建 Activity。
    • 系统将应用从内存中释放,然后用户又重新启动它。进程和 Activity 需要重启,但传递到
    onCreate() 的已保存的实例savedInstanceState对于完成此任务有一定助益。
    • …

启动耗时统计

在这里插入图片描述

启动耗时统计

adb 命令启动应用,一般会输入三个值:ThisTime、TotalTime与WaitTime。
• WaitTime:包括前一个应用Activity pause的时间和新应用启动的时间;
• ThisTime:表示一连串启动Activity的最后一个Activity的启动耗时;
• TotalTime:表示新应用启动的耗时,包括新进程的启动和Activity的启动,但不包括前一个应用Activity pause的耗时。
在这里插入图片描述
在这里插入图片描述

StrictMode

StrictMode是一个开发人员工具,它可以检测出我们可能无意中做的事情,并将它们提请我们注意,以便我们能够修复它们。
StrictMode最常用于捕获应用程序主线程上的意外磁盘或网络访问。帮助我们让磁盘和网络操作远离主线程,可以使应用程序更加平滑、响应更快。
在这里插入图片描述

启动优化相关

1). 合理的使用异步初始化、延迟初始化、懒加载机制。
2). 启动过程避免耗时操作,如数据库 I/O操作不要放在主线程执行。
3). 类加载优化:提前异步执行类加载。
4). 合理使用IdleHandler进行延迟初始化。
5). 简化布局

代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值