2010-09-07 18 views
31

Para generar las notificaciones, necesito saber cómo generar la batería baja y las interrupciones de memoria de forma programática. ¿Puede alguien proporcionar sus sugerencias? Soy consciente de Intents.Simulación de batería baja y poca memoria en Android

+0

Necesita anular 'onTrimMemory (int level)' en el código con el fin de controlar los eventos de memoria. –

+0

Memoria baja https://play.google.com/store/apps/details?id=me.empirical.android.application.fillmemory – kreker

Respuesta

4

en el emulador de Android se puede set the power status by connecting to the Emulator console and using the power command.

En lo que va de poca memoria, sólo tiene que asegurarse de que su aplicación puede manejar ser matado sin previo aviso cuando se encuentra en el fondo. Probar este es uno de los pocos casos que realmente requieren un Administrador de tareas en Android, o si está ejecutando Android 2.2 puede eliminar aplicaciones a través de Configuración.

There are ways of reducing the memory available to applications pero creo que no son necesarios.

+1

Hola Dave Webb, quiero hacerlo programáticamente para mostrar una alerta de batería baja a pesar de que no es. – user395494

+0

Hola Dave Webb, en emulador está bien. ¿Pero cómo puedo hacer lo mismo en un dispositivo real ...? – user395494

+0

No hay forma de que un teléfono muestre una alerta de batería baja cuando la batería no está baja. –

4

Puede utilizar el menú del emulador es shown on my blog posting. Simplemente haga telnet a localhost en el puerto de su emulador (el valor predeterminado es 5554) y luego escriba help. ¡Sigue las instrucciones desde aquí!

4

Para simular la advertencia de batería baja, pruebe este comando en el camino respondida por Frank:

power capacity 10 // It will set the battery level into 10% 

Para Memoria baja:

ulimit -Sv 15000 //The current memory limit will set to 15000 Kb 
+0

estoy ejecutando la aplicación en el dispositivo y en la vista DDMS, pude ver el visor de memoria de montón y veo la memoria de montón asignada como 18.2 MB. Usando su comando, configuré la memoria actual como 1500. Entonces, ¿por qué la aplicación no se bloqueó o la memoria asignada no se redujo? – Prem

+2

@Prem, después de 'telnet' a 'localhost 5554', estoy intentando el comando 'ulimit'. Pero siempre está devolviendo el error 'KO: comando desconocido, prueba' ayuda ''. Estoy usando Win7 OS. Pls me ayuda –

+0

** ulimit ** es un comando adb? –

27

Poca memoria también puede ser simulado utilizando Background process limit bajo el desarrollador de dispositivos opciones.

Ve a Settings > Developer options. En la sección app cambiar el Background process limit a n procesos en segundo plano

Ahora se mató a su actividad cada vez que se cambia a otra aplicación. Útil para probar el ahorro de estado y restauración de estado.

+4

Lamentablemente, esto no es cierto en absoluto. Aquí está [gran explicación] (http://android.stackexchange.com/a/62393) qué hace exactamente esta opción. –

+0

Tengo una aplicación con servicios bg y notificaciones push habilitadas, la aplicación no se eliminará como para otras aplicaciones. –

23

para activar sus devoluciones de llamada onTrimMemory:

adb shell am enviar-ajuste de memoria

por ejemplo, adb shell am send-trim-memory com.example.app MODERATE

+3

Perfecto. También me gusta 'RUNNING_CRITICAL' para obtener el efecto completo. –

+7

Error: comando desconocido 'send-trim-memory' –

+3

@MaksimDmitriev Aparece ese error cuando uso un dispositivo físico, pero funciona para mí en el emulador –

3

sí, esta API desencadena la misma devolución de llamada que obtendría si registrara un contexto para ComponentCallback2, específicamente el ComponentCallback2#onTrimMemory, esto no fue mencionado aquí, así que pensé Lo dejaría en claro. La sintaxis de este comando es: am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] Nota: este comando sólo está disponible en dispositivos con malvavisco +

+0

Muy cierto. Solo pude hacer que esto funcionara en dispositivos con Marshmallow y más. – Demitrian

Cuestiones relacionadas