4 eDoctor: Diseño e Implementación
El objetivo de eDoctor es ayudar a los usuarios a diagnosticar y resolver problemas de drenaje de la batería. A pesar de que la información ofrecida por eDoctor también se puede utilizar para los desarrolladores de aplicaciones, nuestro objetivo es ayudar a los usuarios a resolver y / o problemas de derivación ABD antes de desarrolladores fi x su código que se muestra como puede tardar meses. Por lo tanto, en lugar de búsqueda de las causas de raíz en el código fuente, el diagnóstico de eDoctor se centra en la identificación de (1) la aplicación que hace que un problema ABD y (2) que evento es responsable, por ejemplo, el usuario actualiza una aplicación para una versión buggy o hizo una con fi guración incorrecta cambiar. Sobre la base de ese resultado diagnóstico, eDoctor entonces sugiere soluciones de reparación adecuadas.
Hay dos retos principales que intervienen en la consecución de estos objetivos. En primer lugar, no es trivial determinar con precisión qué aplicación y eventos cuentas para la emisión ABD. El evento que causa puede no ser el más reciente; en cambio, puede ser seguido por muchos otros eventos irrelevantes, por ejemplo, el caso en que el usuario instala una aplicación de buggy y luego hizo múltiples cambios CON figuración. En segundo lugar, en sí eDoctor no debe incurrir en altos gastos indirectos de la batería. Se necesita equilibrar la sobrecarga de energía y la cantidad de información necesaria para el diagnóstico preciso.
Esta sección presenta nuestro diseño de eDoctor. A modo de resumen, eDoctor consta de cuatro componentes principales: Información Collector, analizador de datos, diagnóstico del motor, y Asesor de reparación. La información Collector se ejecuta como un servicio de peso ligero para recoger el uso de recursos y los registros de eventos. El analizador de datos lleva a cabo el análisis de fase (Sección 3) en los datos en bruto y tiendas de resultados intermedios para facilitar el diagnóstico futuro. Análisis fuera de línea se realiza sólo cuando el teléfono THL T6 Prohttp://es.pandawill.com/thl-t6-pro-octa-core-smartphone-mtk6592m-50-inch-hd-ips-screen-1gb-8gb-gps-3g-white-p94337.html está inactivo y conectado a la alimentación externa, con el fin de evitar afectar el uso normal. Cuando los usuarios notan ABD, inician el motor Diagnóstico Para hallar la aplicación culpable y el evento que causa. Con base en el resultado del diagnóstico, el Asesor de reparación ofrece las sugerencias de reparación más relevantes. eDoctor se puede instalar como una aplicación independiente. Se ejecuta en la mayoría de los teléfonos Android JIAYU G4S y es compatible con todas las versiones de Android desde 2.1. Una modi fi cado Android ROM es opcional para registrar aplicaciones especí fi cas-Con fi guración cambios.
4.1 Información Collector
Los registros InformationCollector threemain tipos de datos en segundo plano: (1) uso de recursos de cada aplicación, (2) el consumo de energía de cada aplicación, y (3) eventos relevantes tales como la instalación de aplicaciones, con fi guración y actualizaciones.
El uso de recursos. eDoctor supervisa los siguientes recursos para cada aplicación: CPU, GPS, sensores (por ejemplo, acelerómetro y brújula), wakelock (un recurso que las aplicaciones tienen para mantener el dispositivo en), audio, Wi-Fi y la red. Para facilitar el diagnóstico, eDoctor registra el uso de recursos en períodos de tiempo relativamente pequeño (llamado intervalo de grabación). El intervalo de grabación predeterminado es cinco minutos de nuestra aplicación.
¿Qué recursos uso de la información para almacenar depende de la fase de identi fi cación método (Sección 3). RTV utiliza un vector de bits para registrar si los recursos se han utilizado en cada intervalo de grabación. RUV, por otra parte, registra la cantidad de uso de cada recurso individual, por ejemplo, el tiempo en microsegundos, la cantidad de datos de la red en bytes.
En nuestra implementación, eDoctor aprovecha el mecanismo de seguimiento del uso de los recursos en el marco de Android. Este mecanismo mantiene un conjunto de estructuras de datos en memoria para rastrear el uso de los recursos de cada aplicación. Los datos de uso de los recursos se mantienen para cada aplicación individual, aun cuando varias aplicaciones se ejecutan en el mismo intervalo de grabación. Los valores registrados se acumulan cantidades desde la última vez que el teléfono THL T6 Pro fue desconectada de su cargador. Al final de cada intervalo de grabación, eDoctor lee estos valores y calcula las cantidades de uso de recursos en el intervalo de grabación pasado. La figura 4 muestra un ejemplo simpli fi cado de una tabla de uso de recursos para una aplicación.
Algunos recursos pueden acceder simultáneamente bymultiple aplicaciones sin consumir energía extra. Por ejemplo, una vez que una unidad de GPS se enciende, reúne ejemplos de localización, y que no consume energía extra si más de una aplicación solicita esos ejemplos. eDoctor realiza la contabilidad de grano grueso de esos recursos; así que si N aplicaciones accedan a un recurso tan por unidades de tiempo T superpuestas, cada aplicación se cobra por T unidades de tiempo de utilización de recursos. De grano fino de energía pro dores ficción como Eprof [35] utilizan un esquema contable proporcional, de tal manera que cada aplicación sólo sería acusado por T / N unidades de la utilización de recursos. eDoctor de utiliza el esquema de grano grueso, ya que su objetivo es rastrear los patrones de fi co de energía-app específica, y no generales fluctuaciones de energía de todo el sistema.
El consumo de energía. Además de los recursos de uso, eDoctor también registra el consumo de batería de cada aplicación en cada intervalo de grabación. El consumo de energía se utiliza para dos propósitos principales: (1) para podar aplicaciones con pequeñas huellas de energía, que son probablemente una de las causas de ABD, y (2) para clasificar aplicaciones sospechosas de acuerdo con la energía consumida de cada aplicación. Como utilizamos la información sobre el consumo de la batería solamente para esos fines comparativos, es menos crítico tener medición delidad alta fidelidad. Además, los modelos simples proporcionar bene fi cios de rendimiento superiores que son esenciales para reducir la sobrecarga de eDoctor, ya que no tiene que seguir la información-ne fi grano tales como detectores de estado de energía. Por lo tanto, contamos con una fi ciente per fi lebased modelo energético ef en lugar de costosos modelos energéticos basados en el estado [46, 52].
Cada dispositivo Android viene con datos sobre el consumo de energía de los diversos componentes de hardware medidos por la fabricación, por ejemplo, el consumo de energía promedio del procesador funcionando a diferentes frecuencias y el consumo de energía promedio del dispositivo Thewi-Fi estar inactivo o el envío de datos. eDoctor combina este promedio de datos de consumo de energía por los datos de uso que recauda para estimar el consumo total de energía de una aplicación durante cada intervalo de grabación. Este modelo energético se ha utilizado tanto en la industria (por ejemplo, la utilidad de Android "Uso de la batería" [1]) y la investigación académica (por ejemplo, el ecosistema [51]).
Eventos. Los eventos son fundamentales para el diagnóstico y asesoría reparación. eDoctor registra dos tipos de eventos: (1) cambios con fi guración, y (2) eventos de mantenimiento (instalación, actualización). Tales eventos pueden ser iniciadas no sólo por los usuarios, sino también por el sistema subyacente de forma automática. App y en contra del sistema entradas figuración y sus nuevos valores se registran como pares clave-valor. Como la mayoría de aplicaciones utilizan componentes de la instalación de Android (por ejemplo, SharedPreferences) para gestionar con fi guraciones, hacemos un seguimiento de aplicaciones con fi guraciones modificando estos componentes comunes. SharedPreferences es un marco general que permite a los desarrolladores para guardar y recuperar pares clave-valor persistentes de tipos de datos primitivos, lo que es adecuado para la gestión de las preferencias del usuario. Nos modi fi carse la implementación de la interfaz SharedPreferences.Editor dejar que enviar un mensaje de difusión a eDoctor siempre que se cambia una entrada de preferencia. Cada mensaje contiene el nombre de la aplicación, la preferencia nombre de archivo, el nombre clave de preferencia y su nuevo valor. Estos mensajes se identifican con una llave especial y sólo eDoctor pueden recibirlos, por lo que son efectivamente los mensajes unicast a eDoctor. Un inconveniente de este enfoque es que si los desarrolladores implementar sus propios mecanismos para gestionar las preferencias, eDoctor no puede realizar un seguimiento de los cambios. Esto es raro, sin embargo.
Para con fi guraciones de todo el sistema, eDoctor registra los cambios que pueden afectar el uso de la batería, incluyendo el cambio de frecuencia de la CPU, el cambio de brillo de la pantalla, cambiar el tiempo de visualización, alternando conexión Bluetooth, activando el receptor GPS, el cambio de tipo de red (2G / 3G / 4G), activando Wi-Fi, alternar el modo avión (que desactiva las comunicaciones inalámbricas), activando la configuración de datos de antecedentes, la actualización del sistema, y cambiar rmware fi. eDoctor registra estos eventos por la captura de mensajes de difusión por el sistema Android. Por ejemplo, cuando cambia el estado de la conexión Wi-Fi, el sistema envía un mensaje de difusión, ESTADO WIFI CAMBIADO LA ACCIÓN.
Para proteger la privacidad del usuario, eDoctor almacena la información anterior en su fi co de almacenamiento de aplicación específica que otras aplicaciones no pueden acceder. Además, no se transfiere la información fuera del teléfono JIAYU G4Shttp://es.pandawill.com/jiayu-g4-smartphone-mtk6592-2gb-16gb-47-inch-gorilla-glass-android-42-3000mah-otg-p88087.html; todos los análisis se realiza a nivel local.
4.2 Data Analyzer
Data Analyzer de eDoctor es responsable de analizar todos los datos de uso de los recursos recaudados por Información Collector, generando información de fase (Sección 3) para cada aplicación, y almacenarlo en una mesa de fase por la aplicación. Desde este análisis fase supone una actividad general, sólo se realiza cuando se está cargando el teléfono THL T6 Pro y el usuario no está interactuando con el teléfono.
Cada vez que cuando se invoca, el analizador de datos procesa todos los intervalos de análisis que no han sido analizados. En nuestra implementación, un intervalo de análisis es un ciclo de carga, es decir, el período de tiempo entre dos cargas de teléfono JIAYU G4S. Para cada intervalo de análisis, eDoctor identifica las fases de ejecución mediante el uso de cualquiera de RTV o RUV como se explica en la Sección 3. Para reducir el ruido y acelerar el diagnóstico, que sólo los registros principales fases - fases que dan cuenta de más del 5% del tiempo total de ejecución de la aplicación durante el último intervalo de análisis. Fases que aparecen de vez en cuando es probable que sean ruido.
Cada entrada en una tabla fase representa una fase importante. Eachmajor fase es identi fi cado por una firma de fase única. Utilizamos firmas de fase para determinar qué fase de un nuevo vector determinado recurso pertenece. Para RTV, usamos el vector RTV directamente como la firma de fase; para RUV, utilizamos el centro y el radio de la agrupación correspondiente, como la firma de fase (véase la Sección 3).
Para cada fase principal, el analizador de datos realiza un seguimiento de su fecha y hora de nacimiento y su número de apariciones y el consumo de energía durante cada intervalo de análisis. La fecha y hora del nacimiento ayuda diagnóstico indicando qué tan recientemente se observa una primera fase sospechoso. El motor de diagnóstico también utiliza esta información para correlacionar fases sospechosas con eventos de activación (sección 4.3). Para las dos últimas variables (recuento apariencia y la energía consumida), se mantienen sólo los más recientes intervalos K de datos. Es evidente que un gran K permite la detección de los problemas que se introducen antes, pero incurre en mayor almacenamiento y los gastos generales de computación y el potencial de errores de diagnóstico. Hallamos K = 7 (cerca de una semana en el tiempo) constituye un buen equilibrio en el trade-off.
La figura 4 muestra una versión simpli fi cado de análisis de fase. Sobre la base de k-means clustering cálculo (Sección 3), entradas con indicación de la hora 5, 10 y 25 pertenecen a la misma fase (Fase # 1 en el Cuadro Fase abajo), ya que tienen los patrones de uso normalizados similares a pesar de que los valores absolutos de su entradas difieren en gran medida. Además, las entradas en tiempo de 15 y 20 pertenecen a la misma fase (Fase # 2), ya que la aplicación sólo utiliza la CPU para el procesamiento de datos (en este ejemplo simpli fi cado, asumimos los valores en las otras columnas para otros recursos son todos cero ). La entrada en el momento de 30 indica que la aplicación no se está ejecutando, por lo que no se inserta en la tabla de fase. La última entrada en el momento 35 es otra nueva fase (Fase # 3) donde se lleva a cabo sólo wakelock durante mucho tiempo, pero la aplicación no utiliza mucho otros recursos. Es el síntoma típico cuando el desarrollador se olvida de liberar wakelock.
No comments:
Post a Comment