Android-分析并优化首页启动时间

前言

随着app项目越来越大,功能业务越来越多,需要我们初始化的模块也越来越多,application中onCreate和attachBaseContext方法越来越臃肿,最直接导致的是我们app启动时间大大增加

性能分析

首页HomeActivity

执行命令

am start -W com.wuba/com.wuba.home.activity.HomeActivity
输出结果:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.wuba/.home.activity.HomeActivity }
Status: ok
Activity: com.wuba/.home.activity.HomeActivity
ThisTime: 1858
TotalTime: 1858
WaitTime: 1925
Complete

启动页面LaunchActivity

执行命令

adb shell start -W com.wuba/com.wuba.activity.launch.LaunchActivity
输出结果
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.wuba/.activity.launch.LaunchActivity }
Status: ok
Activity: com.wuba/.activity.launch.LaunchActivity
ThisTime: 1134
TotalTime: 1134
WaitTime: 1147
Complete

启动场景

冷启动

也就是我们常说的冷启动,这时候你的应用程序的进程是没有创建的. 这也是大部分应用的使用场景.用户在桌面上点击你应用的 icon 之后,首先要创建进程,然后才启动 MainActivity.这时候adb shell am start -w packagename/xxxActivity 返回的结果,就是标准的应用程序的启动时间(注意 Android 5.0 之前的手机是没有 WaitTime 这个值的):

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.wuba/.home.activity.HomeActivity }
Status: ok
Activity: com.wuba/.home.activity.HomeActivity
ThisTime: 1858
TotalTime: 1858
WaitTime: 1925
Complete

热启动

就是应用不是第一次启动,如果是你按Back键,并没有将应用进程杀掉的话,那么执行上述命令就会快一些,因为不用创建进程了,只需要启动一个Activity即可。这也就是我们说的应用热启动。

参考资料

http://www.open-open.com/lib/view/open1451570355573.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值