2010-09-07 12 views
31

Per generare le notifiche, è necessario conoscere a livello di codice come generare la batteria scarica e gli interrupt a bassa memoria. Qualcuno può fornire i tuoi suggerimenti. Sono a conoscenza degli Intenti.Simula batteria scarica e memoria insufficiente in Android

+0

È necessario sovrascrivere 'onTrimMemory (livello int)' nel codice al fine di gestire gli eventi di memoria. –

+0

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

risposta

4

sull'emulatore Android si può set the power status by connecting to the Emulator console and using the power command.

Per quanto riguarda partire memoria va, basta fare in modo che l'applicazione in grado di gestire essere ucciso senza preavviso quando si è in background. Provare questo è uno dei pochissimi casi che richiedono effettivamente un Task Manager su Android, oppure se stai usando Android 2.2 puoi uccidere le applicazioni tramite Impostazioni.

There are ways of reducing the memory available to applications ma penso che non siano necessari.

+1

Ciao Dave Webb, desidero farlo a livello di codice per mostrare un avviso di batteria scarica anche se non è. – user395494

+0

Ciao Dave Webb, In emulatore è ok. Ma come posso fare lo stesso nel dispositivo reale ..? – user395494

+0

Non c'è un modo per far sì che un telefono mostri un avviso di batteria scarica quando la batteria non è scarica. –

4

È possibile utilizzare il menu di emulazione è shown on my blog posting. Basta telnet su localhost sulla porta del tuo emulatore (il valore predefinito è 5554) e quindi digita help. Segui le istruzioni da lì!

4

Per simulare avviso di batteria scarica, provate questo comando nel modo in cui ha risposto da Frank:

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

Per basso Memoria:

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

Sto eseguendo l'applicazione nel dispositivo e nella visualizzazione DDMS, potrei vedere il visualizzatore di memoria heap e vedo la memoria heap allocata come 18.2 MB. Usando il tuo comando ho impostato la memoria corrente come 1500. Allora perché l'applicazione non si è bloccata o la memoria allocata non si è ridotta? – Prem

+2

@Prem, dopo "telnet" su "localhost 5554", sto provando il comando "ulimit". Ma sempre restituisce l'errore 'KO: comando sconosciuto, prova' aiuto ''. Sto usando il sistema operativo Win7. Pls aiutami. –

+0

** ulimit ** è un comando adb? –

27

bassa memoria può anche essere simulato utilizzando Background process limit sotto lo sviluppatore dispositivo opzioni.

Vai a Settings > Developer options. Nella sezione app cambiare il Background process limit a No processi in background

Ora la vostra attività sarà ucciso ogni volta che si passa a un'altra applicazione. Utile per testare il risparmio di stato e il ripristino dello stato.

+4

Purtroppo questo non è affatto vero. Ecco [ottima spiegazione] (http://android.stackexchange.com/a/62393) che cosa fa esattamente questa opzione. –

+0

Ho un'app con servizi bg e notifiche push attivate, l'app non verrà uccisa come per altre app. –

23

per innescare i tuoi callback onTrimMemory:

adb shell pm send-assetto-memoria

esempio adb shell am send-assetto-memoria com.example.app MODERATA

+3

Perfetto. Mi piace anche "RUNNING_CRITICAL' per ottenere il massimo effetto. –

+7

Errore: comando sconosciuto 'send-trim-memory' –

+3

@MaksimDmitriev Ottengo quell'errore quando uso un dispositivo fisico, ma funziona per me sull'emulatore –

3

sì, questo api innesca la stessa richiamata si otterrebbe se si è registrato un contesto di ComponentCallback2, in particolare il ComponentCallback2#onTrimMemory questo non era menzionato qui, così ho pensato Lo renderei chiaro. La sintassi per questo comando è: am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] Nota: questo comando è disponibile solo sui dispositivi che eseguono Marshmallow +

+0

Molto vero. Ho potuto farlo funzionare solo su dispositivi con Marshmallow e versioni successive. – Demitrian

Problemi correlati