Android 应用启动过程

发布于:2024-04-17 ⋅ 阅读:(24) ⋅ 点赞:(0)

Android应用的完全启动过程

用户点击应用图标后,Android应用的完全启动过程包括以下步骤:

  1. 启动器图标点击:用户点击应用程序的图标,触发启动器(Launcher)加载应用程序的入口Activity。

  2. 启动器加载:启动器根据应用程序的包名,在设备上查找对应的应用程序,并加载应用程序的数据(包括应用程序的图标、名称等)。

  3. 启动Activity:启动器通过Intent将启动请求发送给Android系统(Android Manager System),并指定要启动的Activity。系统会根据Intent中的信息找到并启动对应的Activity组件。

  4. Zygote进程启动:当系统收到启动请求后,首先会启动Zygote进程。Zygote进程是专门负责孵化新的应用进程的进程,它是所有应用进程的“父进程”。

  5. 应用进程创建:Zygote进程将会对应用程序的进程进行孵化,创建一个新的应用进程。

  6. 应用进程初始化:新的应用进程在创建后,会进行一系列的初始化工作,包括应用程序的类加载、资源加载、创建Application对象等。

  7. 启动Activity的生命周期方法:当应用启动后,系统会依次调用启动的Activity的生命周期方法,包括onCreate()、onStart()、onResume()。在这些方法中,开发者可以进行一些初始化操作和准备工作。在onCreate()方法中,可以进行一些初始化操作,比如设置布局、绑定数据等;在onStart()方法中,Activity变为可见状态;在onResume()方法中,Activity准备好和用户进行交互。

  8. 布局绘制:在调用完Activity的生命周期方法后,系统会执行Activity的布局,并将其显示在屏幕上。

  9. 交互与响应:当Activity显示在屏幕上后,用户可以与应用程序进行交互。应用程序会根据用户的操作做出响应,如点击按钮、输入文本等。

包名
新的应用进程
启动器Launcher
Android系统AMS
Zygote进程
创建Application对象
Activity的生命周期
布局绘制

需要注意的是,启动过程会因为设备性能、应用的复杂性和启动流程的差异而有所不同,以上是一个大致的启动流程。

Android活动A打开活动B再返回活动A的生命周期

参考:https://blog.csdn.net/wq6ylg08/article/details/105907267

一个APP应用有2个完全不透明的Activity:Activity A和Activity B,其中Activity A是主活动。

首先从手机桌面启动该APP应用,即创建加载运行Activity A,该应用各活动生命周期是:A.onCreate() A.onStart() A.onResume()
接着点击Activity A中的一个跳转到Activity B的按钮,该应用各活动生命周期是:A.onPause() B.onCreate() B.onStart() B.onResume() A.onStop()
注意:如果Activity B是透明的或者Activity B并未完全遮住Activity A,那么上述操作点击Activity A中的一个跳转到Activity B的按钮的生命周期中A.onStop()是不会被调用的,因为Activity A还可见,所以Activity A不能被停止。

再接着点击返回按钮销毁Activity B并返回到Activity A,该应用各活动生命周期是:B.onPause() A.onRestart() A.onStart() A.onResume() B.onStop() B.onDestroy()
最后再次点击返回按钮销毁Activity A并返回到手机桌面,该应用各活动生命周期是:A.onPause() A.onStop() A.onDestroy()