Android启动优化最佳方案:去启动页和异步初始化

项目地址:https://github.com/smartzheng/asyncstarter

随着APP的日渐增大,集成的三方库也越来越多,导致APP的启动极其缓慢。最近在慕课get了一些不错的优化方案,将原来的冷启动时间大概提升30%。
启动的时间监测可以直接用adb命令实现:

adb shell am start -W PackageName/ActivityName  
  
下面是我未优化之前的项目debug版本启动时间(华为p10plus),这里介绍一下几个概念  
ThisTime:最后一个Activity启动耗时
TotalTime:所有Activity启动耗时
WaitTimeTime:AMS启动Activity启动耗时  
可以看到耗时接近1.3s多(1.3s不算长,但是往往应用加固之后还会慢大一截)。

-> ~ adb shell am start -W com.smartzheng/com.smartzheng.activity.SplashActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.
LAUNCHER]cmp=com.smartzheng/.activity.MainActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: com.uoko.mlgb/.mvp.view.activity.MainActivity
ThisTime: 600
TotalTime: 1301
WaitTime: 1330
Complete

优化一:去掉启动页
IPC是个比较耗时的操作,往往我们会设置一个闪屏页,去掉之后可以一定幅度减少启动时间。  
我的做法是直接删除SplashActivity,将MainActivity设为启动页。然后在manifests中将其theme设为启动时的theme:

<activity
    android:name=".activity.MainActivity"
    android:configChan
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值