Android 启动优化总结

本文详细探讨了Android应用的启动优化,涵盖启动定义、分类、流程、耗时检测和优化策略。通过分析启动的不同阶段,如冷启动、温启动和热启动,以及使用adb、TraceView和Systrace等工具进行性能监测,提出了预览窗口优化方案以解决启动白屏问题。文章还介绍了异步初始化等优化手段,旨在提高应用的启动速度和用户体验。
摘要由CSDN通过智能技术生成
1、简述

之前这篇文章仅仅只是抛出来一些案例,没有深度,而且并不一定效果良好(充其量只是参照牛人积累了一点案例),这里我需要在这里重新调整书写,力求有更好的说明,让自己对该块只是理解的更深刻透彻一点(2020/07/23)
我对启动优化存在如下困惑

  1. 什么是app启动?app的启动分类?
  2. 如何统计app启动时长?方式多种可以吗?
  3. app启动的流程熟悉?我们针对优化的重点应放在哪呢?
  4. 你平时是如何做app启动优化的呢?效果好吗?
2、 启动优化知识积累

我们针对上述提出的问题,积累一下启动优化的知识,最终达到我们进行优化的目的。

闪屏优化、业务梳理、业务优化、线程优化、GC 优化和系统调用优化

工具主要是 systrace

2.1、应用启动定义

应用启动是从点击图标到用户可操作的整个过程

2.2、启动分类
  • 冷启动
    1.场景:开机后第一次启动应用 或者 应用被杀死后再次启动
    2.生命周期 Process.start->Application创建->attachBaseContext->onCreate->onStart->onResume->Activity生命周期
    3.启动速度:在几种启动类型中最慢,也是我们优化启动速度最大的拦路虎
  • 温启动
    1.场景:应用已经启动,返回键退出(应用进程存在)
    2.生命周期:onCreate->onStart->onResume->Activity生命周期
    3.启动速度:较快
  • 热启动
    1.场景:Home键最小化应用
    2.生命周期:onResume->Activity生命周期
    3.启动速度:快
启动流程

针对启动流程简单绘制了流程图
在这里插入图片描述

启动分析方式
启动耗时检测
  • adb 检测在这里插入图片描述
    ThisTime 最后一个Activity的启动耗时
    TotalTime 所有Activity启动耗时
    WaitTime AMS启动Activity的总耗时
  • 代码打点
    1、oop代码统计方式
    实践
    2、使用AOP检测方法运行时间
工具
TraceView

特点: 图形的形式展示执行时间、调用栈等
信息全面包含所有线程

缺点 性能耗损太大,得出的结果并不真实

//打桩开始
Debug.startMethodTracing("test");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值