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 p>
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
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í
.