Red de conocimiento informático - Conocimiento informático - ¿Cuál es la diferencia entre la comunicación entre subprocesos de Android y la comunicación entre procesos?

¿Cuál es la diferencia entre la comunicación entre subprocesos de Android y la comunicación entre procesos?

1. Existen varios métodos de comunicación entre subprocesos de Android

1)**** Disfrutar de variables (memoria)

2) Tuberías

3) ¿Mecanismo de manejo?

runOnUiThread(Runnable)

view.post(Runnable)

mecanismo controlado por mensajes en proceso de Android: Handler, MessageQueue, Runnable, Looper

Looper y mecanismo de procesamiento de mensajes: primero cree un objeto controlador en el hilo principal para procesar los mensajes enviados desde el subproceso, luego, cuando el subproceso necesite enviar mensajes, utilizará el objeto Mensaje y el. El mensaje se almacenará primero en Message En la cola de mensajes, también hay un Looper en el hilo principal. El controlador llama a handleMessage para establecer el mensaje en nulo para que pueda reciclarse. 2 Comunicación entre procesos

Comunicación entre procesos:

Mecanismo de enlace (IPC-gt; AIDL)

Nivel de Linux**** disfruta de la memoria

p >

boradcast

Las actividades pueden pasar datos a través de intents

3. Varias formas de finalizar el proceso en Android

1) Utilice ActivityManager restartPackage (String). packname), aquí debe configurar los permisos en el archivo de manifiesto

2) android .os.process.killProcess(int pid) solo puede finalizar el proceso de este programa

3 ) System.exit()

4) System.exit()

5) System.exit()exit()

4) en android2.2 En versiones futuras, el método restartPackage() ya no se puede usar, pero se debe usar el método killBackgroundProcesses() y se deben configurar los permisos

5) Use la reflexión para llamar al método forceStopPackage para finalizar el método forceStopPackage = am.os.process.killProcess (int pid)getClass().getDeclaredMethod("forceStopPackage", String.class); forceStopPackage.setAccessible(true); forceStopPackage.invoke(am, yourpkgname); definición: android: sharedUserId="android.uid. system"? Entonces también necesita agregar permisos en el archivo de configuración: lt; uses-permission android: name="android.permission.FORCE_STOP_PACKAGES"gt; ?

6) Utilice el comando de Linux kill -9