Colección de citas famosas - Slogan de motivación - Notas del proceso de inicio de actividad

Notas del proceso de inicio de actividad

El inicio de una Actividad normal consiste en iniciar una nueva Actividad llamando al método startActivity. El proceso general es el siguiente:

Involucra dos procesos, uno es el proceso de la Aplicación y el otro. el proceso AMS. Los pasos generales son:

1. La Actividad iniciadora solicita a la Instrumentación que inicie la Actividad objetivo.

2. La instrumentación accede a AMS a través de la interfaz IBinder (IActivityManager) del proceso de la aplicación. En este momento, el proceso de la aplicación se bloqueará y esperará la devolución de la llamada de AMS. AIDL.

3. AMS realizará una serie de tareas de verificación, como determinar si la instancia de actividad de destino existe, cuál es el modo de inicio, si está registrada en AndroidManifest, etc.

4. Cuando se completa la verificación de AMS, las cosas se enviarán al proceso de la aplicación a través de ClientLifeCycleManager, y el proceso de la aplicación se utilizará para acceder al proceso de la aplicación ApplicationThread a través de la interfaz IBinder (IApplicationThread) del proceso AMS. El método de comunicación entre procesos utilizado es AIDL.

5.ApplicationThread es la clase interna de ActivityThread. Cuando ApplicationThread recibe una transacción de AMS, la transferirá directamente a ActivityThread para su procesamiento.

6.ActivityThread usa el cargador de clases (reflexión) para crear instancias a través de Instrumentación, y también usa Instrumentación para recuperar el ciclo de vida de la Actividad de destino.

Presentamos varias clases clave:

Instrumentación: La instrumentación es la clase que conecta la Actividad con el mundo exterior (las clases que no son la Actividad en sí se denominan colectivamente mundo exterior). La Actividad de destino solicita el inicio a través de Instrumentación, y ActivityThread usa Instrumentación para crear la Actividad y recuperar el ciclo de vida de la Actividad.

ActivityThread: Cada aplicación tiene una sola instancia única, responsable de la gestión de la creación de Actividad. La clase interna ApplicationThread de ActivityThread solo es responsable de la comunicación entre el proceso de la aplicación y el proceso AMS, y entrega las transacciones de AMS a ActivityThread para su procesamiento.

AMS, el nombre completo de ActivityManagerService, es un servicio a nivel de sistema responsable de gestionar cuatro componentes principales.

La Actividad raíz es la primera Actividad que inicia la aplicación cuando hacemos clic en el icono del escritorio del teléfono móvil. El proceso de iniciar la actividad raíz es en realidad similar al proceso de iniciar la actividad ordinaria, excepto que al iniciar la actividad raíz, es necesario crear un nuevo proceso de aplicación. El proceso general es el siguiente:

Los cuatro procesos involucrados son: proceso de inicio, proceso de AMS, proceso de aplicación y proceso de Zygote.

1. Después de hacer clic en el icono del escritorio, el proceso del Lanzador accede al proceso AMS para solicitar iniciar la Actividad de destino. El método de proceso cruzado utilizado es AIDL.

2 El proceso AMS accede al proceso Zygote y solicita iniciar un nuevo proceso. El método de proceso cruzado utilizado es Socket.

3 El proceso Zygote crea un proceso App llamando a la función fork.

4 Una vez creado el proceso de la aplicación, el proceso de la aplicación accede al proceso AMS para realizar notificaciones. El método entre procesos utilizado es AIDL.

5 Después de recibir la notificación del proceso de la Aplicación, el proceso AMS encapsula la operación de iniciar la Actividad en una transacción y envía la transacción encapsulada al proceso de la Aplicación.

6 Después de que el proceso de la aplicación recibe la transacción del proceso AMS, crea la actividad objetivo basada en la transacción y devuelve el ciclo de vida de la actividad objetivo.

Este artículo se utiliza principalmente para registrar sus propias notas de estudio. Para leer el texto original, vaya a: Proceso de inicio de la actividad

.