Android机能优化之启动加快35%
副问题[/!--empirenews.page--]
一、媒介 跟着项目版本的迭代,App的机能题目会逐渐袒暴露来,而好的用户体验与机能示意细密相干,从本篇文章开始,我将开启一个Android应用机能优化的专题,从理论到拭魅战,从入门到深挖,手把手将机能优化实践到项目中,接待一连存眷! 那么第一篇文章我就从应用的启动优化开始,按照现实案例,打造闪电般的App启动速率。 二、初识启动加快 来看一下Google官方文档《Launch-Time Performance》(https://ldeveloper.android.com/topic/performance/launch-time.html)对应用启动优化的概述; 应用的启动分为冷启动、热启动、温启动,而启动最慢、挑衅最大的就是冷启动:体系和App自己都有更多的事变要从新开始! 应用在冷启动之前,要执行三个使命:
而这三个使命执行完毕之后会顿时执行以下使命:
而一旦App历程完成了第一次绘制,体系历程就会用Main Activity替代已经展示的Background Window,此时用户就可以行使App了。 作为平凡应用,App历程的建设等环节我们是无法主动节制的,可以优化的也就是Application、Activity建设以及回调等进程。 同样,Google也给出了启动加快的偏向:
备注:偏向1属于治标不治本,只是外貌上快;偏向2、3可以真实的加速启动速率。 接下来我们就在项目中现实应用。 三、启动加快之主题切换 凭证官方文档的声名:行使Activity的windowBackground主题属性来为启动的Activity提供一个简朴的drawable。 Layout XML file: Manifest file: 这样在启动的时辰,会先展示一个界面,这个界面就是Manifest中配置的Style,等Activity加载完毕后,再去加载Activity的界面,而在Activity的界面中,我们将主题从头配置为正常的主题,从而发生一种快的感受。不外如上文总结这种方法着实并没有真正的加快启动进程,而是通过交互体验来优化了展示的结果。 备注:截图同样来自官方文档《Launch-Time Performance》。 四、启动加快之Avoid Heavy App Initialization 通过代码说明我们可以获得App启动的营业事变流程图: 这一章节我们重点存眷初始化的部门:在Application以及首屏Activity中我们首要做了:
项目中除听云之外别的全部三方组件都抢占先机,在Application主线程初始化。这样的初始化方法必定是过重的:
项目修改:
留意:闪屏页的2秒逗留可以操作,把耗时操纵耽误到这个时距离断里。 五、启动加快之Diagnosing The Problem 本节我们现实定位耗时的操纵,在开拓阶段我们一样平常行使BlockCanary可能ANRWatchDog找耗时操纵,简朴明白,可是无法获得每一个要领的执行时刻以及更具体的比拟信息。我们可以通过Method Tracing可能DDMS来得到更全面具体的信息。 启动应用,点击 Start Method Tracing,应用启动后再次点击,会自动打开适才操纵所记录下的.trace文件,提议行使DDMS来查察,成果越发利便全面。 左侧为产生的详细线程,右侧为产生的时刻轴,下面是产生的详细要领信息。留意两列:Real Time/Call(现实产生时刻),Calls+RecurCalls/Total(产生次数); (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |