有后台的网站怎么做,如何做收费网站,wordpress在图片上加链接,建设银行网上官方网站Zygote进程: Zygote进程在Android系统启动时被初始创建#xff0c;并且初始化了虚拟机#xff08;Dalvik或ART#xff09;#xff0c;预加载了Android系统的核心类库。所有的Android应用进程都是通过fork()从Zygote进程派生出来的#xff0c;这允许应用快速启动#xff0… Zygote进程: Zygote进程在Android系统启动时被初始创建并且初始化了虚拟机Dalvik或ART预加载了Android系统的核心类库。所有的Android应用进程都是通过fork()从Zygote进程派生出来的这允许应用快速启动因为它们继承了已加载的系统资源。 Launcher进程 (Home应用): Launcher即Android的桌面应用提供了用户界面来启动应用的Activity。这个进程有它自己的UI当用户点击某个应用图标时Launcher将发出一个Intent来请求启动对应的Activity。 系统服务进程 (system_server): 系统服务进程运行了许多Android系统服务包括ActivityManagerService (AMS) 和 WindowManagerService (WMS)。 ActivityManagerService (AMS): 负责系统中所有应用的Activity的生命周期管理包括Activity的启动、停止、任务栈管理等。当要启动新的Activity时系统会通过AMS来协调这一过程。WindowManagerService (WMS): 负责窗口管理这包括Activity的窗口。WMS协调各个应用Activity的窗口在屏幕上的位置和Z顺序。 应用进程: 这是正在运行目标Activity的应用的进程。如果该应用尚未启动将从Zygote进程fork出一个新的进程实例。
Activity的启动过程
当用户点击某个应用图标时假设通过LauncherActivity启动过程通常涉及以下步骤 Intent操作: 用户点击桌面Launcher上的图标Launcher创建了一个启动特定Activity的Intent并将其发送给AMS。 AMS处理请求: AMS接收到启动Activity的Intent后首先检查相关的权限判断请求的Activity所需的权限是否得到满足接下来AMS会在内部创建一个新的Activity记录并将其放入相应的任务栈中。 创建或唤醒应用进程: 如果目标Activity所在的应用已经有一个进程在运行AMS就会将启动Activity的请求直接发送到那个进程。如果应用进程尚未存在则AMS会通过Zygote进程创建一个新的进程。 Activity实例化: 在应用进程中系统使用应用的ClassLoader实例化新的Activity并调用其onCreate()、onStart()、onResume()等生命周期方法准备显示到用户界面上。 WMS布局和绘制: Activity准备好后WMS负责将Activity的窗口添加到屏幕上并进行布局和绘制流程。此时用户可以看到新的Activity界面。 用户交互: 完成上述步骤后Activity现在已经处于运行状态用户可以与它交云。
在整个过程中尽管Activity的实际代码执行在单独的应用进程中但AMS和WMS作为系统服务它们的运作是在系统服务进程system_server中并在不同的应用进程间协调Activity的启动和管理。这表明Activity的启动是一个涉及系统多个组件和进程相互协调的复杂过程。