和你一起终身学习,这里是程序员 Android
本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
1.应用启动时间概述
1. 应用启动时间概述
用户期望应用程序能够快速响应并快速加载。启动时间慢的应用程序不能满足此期望,并且可能会使用户感到失望。这种糟糕的体验可能会导致用户在Play商店中对您的应用进行差评,甚至完全放弃您的应用。
本文档提供了可帮助您优化应用程序启动时间的信息。首先说明启动过程的内部。接下来,讨论如何分析启动性能。最后,它描述了一些常见的启动时问题,并提供了有关如何解决这些问题的提示。
2. 了解应用启动内部机制
应用程序启动可以分以下三种状态,每种状态都会影响您的应用程序对用户可见的时间:冷启动,热启动或热启动。
冷启动:您的应用将从头开始。在其他状态下,系统需要将正在运行的应用程序从后台移到前台。我们建议您始终基于冷启动的假设进行优化。这样做也可以改善热启动和热启动的性能。
为了优化您的应用程序以使其快速启动,了解每种状态下系统和应用程序级发生的情况以及它们之间的交互方式非常有用。
3. 冷启动
冷启动是指应用程序从头开始,比如设备重启,或者app 进程被杀掉,首次启动应用程序时为冷启动。这种类型的启动在优化启动时间方面提出了最大的挑战,因为与其他启动状态相比,系统和应用程序要做的工作更多。
在冷启动的开始,系统具有三个任务。这些任务是:
加载并启动应用程序。
启动后立即为应用显示空白的启动窗口。
创建应用程序 流程。
一旦系统创建了应用程序流程,该应用程序流程将负责以下阶段:
1.创建应用程序对象。
2.启动主线程。
3.创建主Activity。
4.填充视图。
5.显示布局。
6.执行初始化绘制。
一旦应用程序进程完成了第一次绘制,系统进程就会交换出当前显示的背景窗口,将其替换为主要Activity。此时,用户可以开始使用该应用程序。
图1显示了系统和应用程序之间如何相互切换工作。
图1.可视化表示冷应用程序启动的重要部分
在创建应用程序和创建Activity 期间可能会出现性能问题。
4. app 创建
启动应用程序时,空白的启动窗口会保留在屏幕上,直到系统首次完成绘制应用程序为止。此时,系统进程会换出您应用程序的启动窗口,从而允许用户开始与应用程序进行交互。
如果您已在应用程序的Application.onCreate() 方法中重载,则系统会onCreate()
在您的应用程序对象上调用此方法。之后,该应用程序会运行在主线程(也称为UI线程),并通过创建MainActivity来执行其他任务。
从这一点开始,系统和应用程序级别的流程将根据 应用程序生命周期阶段进行。
5.创建Activity
应用程序流程创建Activity后,该Activity将执行以下操作:
初始化值。
调用构造函数。
调用 Activity.onCreate() 适合于活动当前生命周期状态的回调方法,例如 。
通常,该 onCreate() 方法对加载时间的影响最大