Red de conocimiento informático - Computadora portátil - Resumen sobre el uso de los comandos AM, PM y dumpsys en Android

Resumen sobre el uso de los comandos AM, PM y dumpsys en Android

El comando am es la abreviatura de administrador de actividades. Tiene funciones como iniciar servicios, transmitir, finalizar procesos y monitorear. Es muy conveniente al depurar programas.

Puede ingresar a la interfaz de comandos de Android Linux a través de adb shell, ingrese am -help para ver los comandos detallados, primero introduzca algunos usos simples.

El formato del comando es el siguiente

Lista de comandos:

Análisis de principios: el comando am está implementado en Am.java y casi todos los comandos eventualmente llamarán al administrador de actividades. Casi todos los comandos eventualmente llamarán al método correspondiente de ActivityManagerService para completarse, excepto am monitor. Por ejemplo, el comando am start -a android.intent.action.VIEW -d start Acitivty introducido en la descripción general anterior finalmente llama al método startActivityAsUser () de la clase ActivityManagerService para completarse. Otro ejemplo es el comando am kill-all, que en última instancia se implementa mediante el método killBackgroundProcesses() de ActivityManagerService.

Esto es lo que significan los parámetros [OPTIONS] y , y cómo configurar sus valores correctamente.

El comando principal startActivity am start [options] lt; INTENTgt usa el parámetro de opciones y luego enumera los parámetros [options] del comando Activity:

El principio de implementación del inicio. Actividad: existe El método startActivityAndWait() se llama cuando se usa el parámetro -W; de lo contrario, se llama a startActivityAsUser().

Comandos

Por ejemplo: Emitir comandos de memoria compacta con nivel RUNNING_LOW al proceso con pid=12345

: HIDDEN, RUNNING_MODERATE, BACKGROUND, RUNNING_LOW, MODERATE, RUNNING_CRITICAL , COMPLETE

Permite el subcomando Set --user lt; USER_IDgt; de am, startservice, stopservice, broadcast, kill, perfil de inicio, perfil de parada, dumpheap con parámetros opcionales. La gran mayoría de teléfonos móviles del mercado todavía están en modo monousuario, por lo que puedes ignorar este parámetro y utilizar de forma predeterminada el usuario actual.

Por ejemplo: inicie el servicio especificado para el usuario con id=10001.

La intención tiene más parámetros y banderas, por lo que, por conveniencia, se divide en 3 tipos de parámetros: parámetros comunes, parámetros adicionales y parámetros de bandera

Ejemplo

(1).

Tipo básico

El parámetro es es la abreviatura de Extra string, ejemplo:

(2) Tipo de matriz

El parámetro eia es la abreviatura de Extra int array. varios valores están separados por comas, ejemplo:

(3).Tipo ArrayList

El parámetro efal es la abreviatura de Extra float Array List, varios valores están separados por comas, ejemplo:

La herramienta pm es la abreviatura del administrador de paquetes de software. Puede utilizar la herramienta pm para instalar la aplicación y consultar información de la aplicación, permisos del sistema, aplicaciones de control, etc. Necesario en el proceso de desarrollo y prueba de Android. Una herramienta indispensable, el formato del comando de shell es el siguiente:

Principio y análisis: el comando pm en realidad se implementa en Pm.java.

Principio y análisis: el comando pm en realidad está implementado en Pm.java, y la mayoría de los últimos llaman a PackageManagerService El número total de aplicaciones de terceros del sistema = número total de aplicaciones.

Ver aplicaciones de terceros:

Ver paquetes deshabilitados

lt; FILTERgt; Parámetros

Cuando FILTER no está vacío Cuando , solo las aplicaciones con el campo FILTRO en el nombre del paquete se generarán cuando FILTRO esté vacío, todas las aplicaciones que cumplan las condiciones se mostrarán de forma predeterminada.

Por ejemplo, para ver el nombre del paquete con el campo meteorológico

[opciones] Parámetros:

lt PATHgt; ruta apk instalada

Dumpsys es una aplicación para el sistema Android. Dumpsys es una poderosa herramienta de depuración que viene con Android. Como puede ver por el nombre, se utiliza principalmente para volcar cierta información del sistema Android actual. Es un medio muy eficaz para analizar problemas, estado operativo, uso, etc. de teléfonos móviles.

Principio de implementación

La estructura del código fuente de dumpsys es en realidad muy simple, solo hay un dumpsys.cpp

/frameworks/native/cmds/dumpsys/ dumpsys.cpp

Primero, obtenga el objeto ServiceManager a través de la función defaultServiceManager (), y luego busque el servicio específico a través de la función checkService de acuerdo con los parámetros pasados ​​por dumpsys y ejecute el método de volcado del servicio. para lograr el propósito de deshacerse del servicio.

Las diferentes versiones del sistema Android admiten diferentes comandos. Puede usar el siguiente comando para ver los servicios de volcado admitidos por el teléfono móvil actual. Primero ingrese el shell adb y luego ejecute el siguiente comando: dumpsys -l. Es posible que estos nombres de servicios no le permitan ver a qué servicios llama, puede usar el siguiente comando: lista de servicios

Hay muchas listas de servicios.

Hay muchas listas de servicios, aquí se presentan algunas brevemente

Puede utilizar el siguiente comando para imprimir un servicio específico: dumpsys lt servicegt;, donde servicio es el servicio; nombre en la tabla anterior

A continuación, hablemos sobre el uso de la actividad dumpsys

Comandos

Las opciones son el comando para imprimir el nombre del servicio.

Opciones

La actividad dumpsys equivale a generar los siguientes siete comandos en secuencia:

cmd Opciones

Comandos

Resultado

Los resultados anteriores se pueden dividir en cuatro partes. Se puede dividir en las siguientes cuatro partes

También puede generar solo la información del proceso de un determinado pid o paquete de software:

Tomemos AmberLocker como ejemplo para el análisis

Escenario 1: consultar el estado de todos los servicios de la aplicación

Explicación: apk, dataDir((ruta de datos de apk)

Ejecutándose en el proceso pid=1115, el proceso el nombre es mobi.infolife.ezweather .locker.locker_ 2, uid=10060, así como la hora de creación y otra información

Escenario 2: consultar todo el estado de transmisión de la aplicación

Escenario 3: Consultar todo el estado de actividad de la aplicación

Escenario 4: Consultar el estado del proceso de la aplicación

Formato: ProcessRecord{Hashcode pid: nombre del proceso/uid}, pid del proceso=941 , nombre del proceso mobi.infolife.ezweather.locker .locker_2: live, uid= 10060.

El proceso también tiene servicios, conexiones, proveedores y receptores,

Escenario 5: Consulta actividades principales en la pila

Hay muchos más comandos dumpsys, por lo que no los enumeraré todos aquí

.