应用启动期间发生的所有复杂事情,会导致一些严重的性能问题,当涉及到理解人类表现的感知时,一旦用户启动您的应用程序,Android会立即显示一个启动窗口,将保持不变,直到您应用程序满载,初始化,并且可以绘制第一帧,这种行为最长用于何时,你的应用是第一次启动,但他很容易在其他时间发生,就像Activity被带到前台一样,或者应用退出应用后,或者在你的应用程序的一部分之后,已被系统清除以节省内存,
这里重要是这一点,让用户花太长时间看一下开始,导致弹出,应用程序无响应,对话框,这些都不是非常有利于用户保留,
所以从技术这方面来说,整个过程是这样的,当用户启动您的应用程序时,系统会做一些工作加载您的应用程序信息,为您应用创建一个独特的流程.系统过程基本上显示起始窗口挂起,直到应用程序启动并运行.同时,申请过程将创建应用程序对象并启动主线程.这是你的创建活动,将初始化 crrated infated 并最终 drawn 只是在申请之后的这一点上,已经绘制看它的第一帧,即系统处理过程,去掉并交换应用程序的开始窗口.
现在要明确,整个过程大部分发生非常赶紧,表现的可能性并不大,可以脱轨,但是,有三大的領域事情可能成爲問題,你首先要考虑创建活动类所以工作,最常见的是,有很多繁重的工作,在这个过程中发生,但最重必须是布局和装载的膨胀,随之而来的资源
如果你布局太复杂,或者你哪里地方有一些阻塞逻辑,这可能导致一些非常大的问题,在类似的说明中,请务必查看您的应用程序,初始化,对于非常复杂的应用程序初始化,app对象经常成为垃圾抽屉,对于许多可能的全局类在活动之前使用,所以这里往往有很多工作要做,这可以推出到以后的时间或者可以懒惰的方式加载,现在,哪里有很多应用程序,提供自定义,启动窗口