Android启动优化

学习自

https://www.jianshu.com/p/f5514b1a826c

这个老哥,强的不谈,大家可以去看看他的文章,干货满满。


冷启动流程

先(过几天我会回顾下启动流程并修改这3步)

1.加载app

2.显示空白bg window

3.创建app进程

然后(这几步我进行了补充)

1.创建app对象

2.启动main thread

3.创建activity

4.onCreate通过xml parser、反射拿到view

5.onResume后setDecor到phoneWindow上开始绘制

6.phoneWindow替换bg window


启动页

是所有厂商一致使用的神器。也是google的建议。

原因在于你可以在这段等待时间,做太多事了。

这段时期,属于application中不便进行的操作,放到这里来初始化的时期。

但是就算是这样,这段等待时间也被期望足够的短。

因为在用我的老手机前,我每次打开支付宝都要等上4-5秒,换了新手机之后,才发现,原来启动页是可以一闪而逝就主页面了?!

所以这段时间,不是肆意挥霍的时间,我们一般设置初始化操作完成后,选择关闭这个页面


启动页的设置方式

Layout XML file:

资源文件配置
Manifest file:

Manifest文件中



异步

这个异步不是瞎JB异步的,需要你有很强的并发技术,以及对你的项目启动流程中的每个组件有深到极致的了解。

下面列出几个点:

1.线程池的创建也是耗费时间的,所以不要在application中创建线程池,延迟他。

2.线程设置优先级,比如 THREAD_PRIORITY_BACKGROUND 10


延时

不仅可以把某些组件初始化延时到启动页,还可以延时到使用的时候。


找到性能瓶颈

卡顿一般发生在:

1.io、数据库

2.主页

3.第三方

找到你的项目的性能瓶颈,可以用trace工具看耗时


其他

1.策略,已经不关乎代码了,比如cache,启动页这次下载下次用。。。

2.透彻了解你的项目

3.其他的优化技术。内存优化、网络请求优化、IO优化。。。这些都会有助于启动优化。因为启动的初始化离不开这些操作。。


还有一个multidex的优化

暂时没学 日后补充


还有很多。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值