In order to fulfill the basic functions of our service, the user hereby agrees to allow Xiaomi to collect, process and use personal information which shall include but not be limited to written threads, pictures, comments, replies in the Mi Community, and relevant data types listed in Xiaomi's Private Policy. By selecting "Agree", you agree to Xiaomi's Private Policy and Content Policy .
Agree

Guida Community

[Guide minori] Battery Drain con MIUI dopo un OTA o un reset? We can fix it!

2020-07-09 00:56:20
1080 16



Ciao Mi Fans,


Leggendo qui sulla Community, ho notato spesso persone che affermavano di avere battery drain dopo un aggiornamento software e addirittura persone che affermavano di averlo in maniera persistente anche dopo aver fatto un hard reset! Probabilmente sarà capitato anche a molti altri di dover affrontare un elevato consumo di batteria nei primi 3-4 giorni dopo un aggiornamento o dopo il flash di una rom sul dispositivo e di ritrovarsi il fantomatico "Sistema Android" in cima alla lista dei consumi con circa il 30-40% di utilizzo! Così ho deciso di buttar giù una piccola guida "how-to" per cercare di venirvi in contro e risolvere le questioni più comuni che possono portare al battery drain in MIUI. Pronti per cominciare? Andiamo!




Prima di passare ai consigli cerchiamo di capire a cosa è dovuto il battery drain, perchè come per tutte le cose, soltanto conoscendo più informazioni saremo in grado di trovare delle soluzioni. Vi ricordate quel messaggio "Android si sta avviando... Ottimizzazione app 1 di xx" ? Si, sto parlando di quel messaggio che su tutti i vecchi smartphone con Android 6 e inferiori dovrebbe apparire dopo un flash o dopo l'installazione di aggiornamenti. Bene, i più attenti avranno di certo notato che da Android 7 quel messaggio non viene più restituito all'utente. Ma perchè? L'hanno forse nascosto ai suoi occhi? Oppure hanno rimosso l'ottimizzazione? No, non è nulla di tutto questo. L'opzione di cui stiamo parlando non è stata persa, ma semplicemente è stata implementata in maniera da attivarsi successivamente alle operazioni di cui sopra e il rinvio di questo compito fa sì che la batteria si esaurisca in maniera più rapida del solito. Questo però potrebbe portare tutti noi a pensare che l'ottimizzazione avvenga in background subito dopo un update o un flash, vero? Ebbene no, la risposta ancora una volta è quella sbagliata. L'ottimizzazione delle app inizia solo in condizioni speciali, per cui la mancanza di questa ottimizzazione prosciugherà la batteria in maniera aggressiva per tutto il lasso di tempo antecedente alla sua attivazione. L'ottimizzazione non viene eseguita perché non sappiamo come soddisfare le condizioni necessarie affinchè essa si attivi e la logica conseguenza di tutto ciò è la scarica accelerata del nostro smartphone.




Come dicevamo in apertura, spesso è possibile osservare come il sistema Android consumi molta più energia rispetto ad altre applicazioni. Questo risultato è causato dal fatto che non abbiamo permesso al sistema di ottimizzare le app. Si perchè se in Android 6 e precedenti le ottimizzazioni venivano effettuate in maniera forzata ed automatica, a partire da Android 7 e superiori è stata aggiunta una nuova opzione che di fatto salta questo automatismo e ottimizza le applicazioni al volo, ossia durante l'utilizzo delle stesse. Questo è possibile attraverso il compilatore JIT (Just-In-Time). Allo stesso tempo, l'ottimizzazione che inizialmente viene saltata, non resta esclusa e si avvia solo se vengono soddisfatte le seguenti condizioni:

  • Quando lo smartphone è in fase di ricarica
  • Quando lo smartphone è completamente carico
  • Quando lo smartphone è in fase di accensione
  • Quando lo smartphone non viene utilizzato
  • Quando lo smartphone resta inattivo per più di 30 minuti


Solo e soltanto quando queste condizioni vengono soddisfatte, il sistema avvia la sua ottimizzazione.

Perchè abbiamo bisogno di eseguire questa ottimizzazione?

Per un motivo molto semplice: gli sviluppatori di applicazioni non possono farlo per ogni set di hardware che c'è in circolazione. Ogni hardware che troviamo incluso nei nostri smarphone poi, è in grado di eseguire il processo di ottimizzazione delle applicazioni nella maniera più unica ed efficiente possibile. Quindi le soluzioni per risolvere i battery drain sono due: la prima è la più banale e consiste nell'usare il proprio dispositivo tutti i giorni come al solito e lasciare che si occupi della cache in maniera autonoma, la seconda è aiutare il dispositivo a fare una completa ottimizzazione con un semplice comando.

NOTA:

Per gli utenti di custom rom basate su MIUI o Xiaomi.eu. Quante volte avete sperimentato in maniera casuale dei tempi di lancio delle applicazioni più lunghi del solito dopo aver flashato una ROM? Apparentemente l'unico modo per risolvere il problema, fino a poco tempo fa era quello di fare un flash pulito e quindi formattare tutto di nuovo. L'ho sperimentato un paio di volte di persona e indagando ho visto che questo inconveniente ha qualcosa a che fare con il funzionamento di dex2oat,chedopo un dirty flash si rifiuta di ottimizzare correttamente (probabilmente).

Oggi però è possibile eseguire manualmente dex2oat successivamente all'avvio del sistema e una volta terminata la sua esecuzione vedrete che che tutto tornerà veloce e scattante come un tempo! (Il processo potrebbe richiedere molto tempo a seconda di quante applicazioni sono installate)

Olltretutto sembra migliorare anche l'utilizzo della batteria da parte del sistema perché effettivamente va a forzare e velocizzare dunque, un compito che può essere eseguito solo in presenza di specifiche condizionei, ma che a volte può anche attivarsi in situazioni poco consone e/o inaspettate, come ad esempio quando il telefono è inattivo causando battery drain rilevanti.

Se anche voi avete problemi di battery drain e non volete formattare lo smartphone perchè non avete un backup delle foto dei vostri gattini in pigiama, allora potete seguire questa breve procedura. Vi ricordo che essa è valida sia per utenti MIUI stock che per utenti MIUI custom, alcune variazioni dipendono solo dalla presenza o meno della root sul vostro dispositivo.



DISCLAIMER


Sebbene non sia mai esploso nessun dispositivo e non sia mai morto alcun micetto durante la procedura, nè io nè lo staff di Mi Community e/o Xiaomi stessa ci riterremo responsabili per qualsiasi danno che VOI potreste causare al vostro dispositivo scegliendo di seguire questa guida. Se sceglierete di ignorare questo disclaimer e ci incolperete di qualcosa, noi vi rideremo in faccia. Sul serio.





Per utenti con permessi di root:


Per prima cosa avrete bisogno di un Terminale installato sul vostro smartphone, per cui assicuratevi di scaricarne uno dal Play Store. Ora che tutto è pronto, aprite il prompt il terminale ed inserite:


su -c cmd package bg-dexopt-job

Se il comando per intero non dovesse funzionare, potrete sempre provare ad eseguirlo in questa maniera:


su

poi


cmd package bg-dexopt-job




Per utenti senza permessi di root:


Nel vostro caso avrete bisogno dell'aiuto del PC, per cui assicuratevi di essere in possesso dell'ultima versione dell'SDK Android (contenente ADB) e di aver abilitato il Debug USB sul vostro dispositivo. Qualora non l'aveste fatto, potete scaricare l'ultima versione di paltform tools (per Windows) da qui, da qui (per MacOS) o da qui (per Linux). Per quanto riguarda il Debug USB, potete abilitarlo dalle opzioni sviluppatore. Per accedere alle opzioni sviluppatore dovete recarvi in Impostazioni/Dispositivo/Tutte le specifiche/versione MIUI facendo qualche tap su quest'ultima. Una volta abilitati, recatevi nelle impostazioni ed accedete alle opzioni sviluppatore, dove sarete in grado di attivare lo switch del Debug USB.


Fatta questa premessa, è chiaro che per sfruttare questi comandi senza permessi di root è necessario utilizzare ADB. Per cui la primissima cosa da fare è collegare il telefono al dispositivo, recarsi nella cartella platform-tools ed aprire al suo interno una finestra di prompt dei comandi, poi inserire i seguenti comandi uno per volta:


adb devices


successivamente


adb shell cmd package bg-dexopt-job


oppure, se il comando di cui sopra non dovesse funzionare


adb shell "cmd package bg-dexopt-job"


Una volta eseguito l'ultimo comando, partirà un processo che potrebbe durare tra i 20-30 minuti in base al quantitativo di app installate sul proprio device, al termine di questo processo se siete in possesso di uno smartphone con a bordo Android 10 riceverete la stringa "Success", in caso contrario verrete portati a capo per inserire ulteriori righe. In entrambi i casi la procedura ha funzionato! Congratulazioni!!





Info utili:


- Scollegare il dispositivo durante la fase di ottimizzazione interromperà il processo, ma non danneggerà il dispositivo. È assolutamente sicuro.
- Gli utenti senza permessi di root potrebbero incorrere nell'errore: "user 2000 nor current process has Android.permission.Update_Device_Stats", non c'è nulla di cui preoccuparsi. In tal caso rieseguite i comandi e la procedurà andrà a buon fine.



IN CASO DI DUBBI SULLA PROCEDURA




- Se avete completato correttamente la procedura e non trovate miglioramenti dovete far scaricare lo smartphone e poi ricaricarlo fino al 100% in modo da resettare le statistiche della batteria ed avere così delle percentuali affidabili a cui fare riferimento.


- La procedura va effettuata ad ogni aggiornamento firmware/flash del dispositivo in maniera tale da evitare completamente gli episodi di battery drain.


- Se siete utenti che vogliono passare a una custom rom/Xiaomi eu la cosa migliore da fare è un flash pulito dopodichè, va eseguita subito la procedura, prima dell'installazione di altre applicazioni.


- Ci sono casi in cui la procedura davvero non funziona, anche dopo aver effettuato il reset delle statistiche della batteria. In questi casi ragazzi c'è poco da fare, si tratta di un bug vero e proprio presente nel vostro firmware/ROM e che necessita di un fix da parte del produttore/manteiner.




Eccoci qui, arrivati alle conclusioni. Spero davvero che questo post possa aiutare qualcuno di voi. Come per qualsiasi altro post, vi invito a scrivere i vostri pensieri, le vostre domande, i vostri dubbi e le vostre opinioni in merito usufruendo del box dei commenti qui sotto.



GRAZIE PER AVERMI SEGUITO! BUONA SERATA






2020-07-09 00:56:20
Favorites39 RateRate

Mi Blogger

Golden Gerry | from app

#1

Come sempre, thread splendidi e funzionali. Complimenti Giuskiller995
2020-07-09 01:00:33
Golden Gerry replied at 2020-07-08 19:00:33
Come sempre, thread splendidi e funzionali. Complimenti Giuskiller995

Gentilissimo! Spero possa aiutare qualcuno che leggevo, ha battery drain e non sa come risolvere :D
2020-07-09 01:05:46

Mi Blogger

Viktor Koca | from app

#3

ottimo come al solito 👍
2020-07-09 02:21:58

Mi Blogger

Giuskiller995 Author | from app

#4

Viktor Koca
ottimo come al solito 👍

Grazie Viktor :D
2020-07-09 02:22:24

Semi Pro Bunny

IGN75 | from app

#5

Lo salvo subito sui preferiti, non ho bisogno ma non si sa mai.
Grazie mille
2020-07-09 16:41:20

Mi Blogger

Giuskiller995 Author | from app

#6

IGN75
Lo salvo subito sui preferiti, non ho bisogno ma non si sa mai.
Grazie mille

E di che, figurati!
2020-07-09 16:43:45

Master Bunny

Nikko_Foxx | from app

#7

Grazie delle Info & Complimenti!! Domanda: ma 'dex2oat' e 'dexopt', sostanzialmente, che funzioni hanno?? Ricostruiscono la Cache\Dalvik ??...
2020-07-10 14:39:38
I Grandi Spiriti incontrano la violenta opposizione delle  Menti Mediocri. :-\

Mi Blogger

Giuskiller995 Author | from app

#8

Nikko_Foxx
Grazie delle Info & Complimenti!! Domanda: ma 'dex2oat' e 'dexopt', sostanzialmente, che funzioni hanno?? Ricostruiscono la Cache\Dalvik ??...

Allora praticamente si. In particolare dexopt è un tool integrato in Android che permette in fase di update o post-update, di generare dei file a partire dagli apk (vdex, odex, art) questi file fungono da ottimizzazione per il sistema e vengono di fatti creati per ogni app di sistema e installata. Poi c'è il tool dex2oat che in sostanza "prende" questi file generati e li compila rendendoli eseguibili nativamente dal sistema. Questo migliora le prestazioni delle app, pur riducendo leggermente la memoria (storage) disponibile. Ho cercato di essere più chiaro possibile, purtroppo sono due tool molto complessi che fanno parte della ART Runtime in Android. Spiegarlo tecnicamente sarebbe MOOOOOLTO complicato e non so neppure se ne sarei in grado ahhahaha
2020-07-10 16:13:02

Master Bunny

Nikko_Foxx | from app

#9

Giuskiller995
Allora praticamente si. In particolare dexopt è un tool integrato in Android che permette in fase di update o post-update, di generare dei file a partire dagli apk (vdex, odex, art) questi file fungono da ottimizzazione per il sistema e vengono di fatti creati per ogni app di sistema e installata. Poi c'è il tool dex2oat che in sostanza "prende" questi file generati e li compila rendendoli eseguibili nativamente dal sistema. Questo migliora le prestazioni delle app, pur riducendo leggermente la memoria (storage) disponibile. Ho cercato di essere più chiaro possibile, purtroppo sono due tool molto complessi che fanno parte della ART Runtime in Android. Spiegarlo tecnicamente sarebbe MOOOOOLTO complicato e non so neppure se ne sarei in grado ahhahaha

Guarda, sei stato (come sempre!) sufficientemente esaustivo, per quelle che sono anche le MIE competenze.
Che ricostruissero la Cache\Dakvik l'avevo annusato... certo è che, per mia esperienza, flashata, ad esempio la nuova release della Xiaomi-eu, è DA FARE il 'Clean Cache-Dalvik'; il riavvio (Sistema) successivo, è (variabilmente) più lungo del normale, proprio perché va a ricostruirla... suppongo, sulla base della rom appena flashata.
2020-07-10 17:53:25
I Grandi Spiriti incontrano la violenta opposizione delle  Menti Mediocri. :-\

Mi Blogger

Giuskiller995 Author | from app

#10

Nikko_Foxx
Guarda, sei stato (come sempre!) sufficientemente esaustivo, per quelle che sono anche le MIE competenze.
Che ricostruissero la Cache\Dakvik l'avevo annusato... certo è che, per mia esperienza, flashata, ad esempio la nuova release della Xiaomi-eu, è DA FARE il 'Clean Cache-Dalvik'; il riavvio (Sistema) successivo, è (variabilmente) più lungo del normale, proprio perché va a ricostruirla... suppongo, sulla base della rom appena flashata.

È assolutamente corretto ;)
2020-07-10 18:27:30
please sign in to reply.
Sign In Sign Up

Giuskiller995

Mi Blogger

  • Followers

    318

  • Threads

    175

  • Replies

    1953

  • Points

    9173

3 Days Check-In
7 Days Check-In
21 Days Check-In
40 Days Check-In
70 Days Check-In
100 Days Check-In
Halloween
100mila
redminote8series
200mila Mi Fans
MIUI 12
2 anni insieme
BEST Mi Blogger
MIBAND4
Survey2020
Magazzino in Italia
Monitor
Mi TWS 2 Bacis
Mi Scooter Pro 2
Mi Smart Band 5
Mi Tv Stick
K2K

Read moreGet new

Mi Comm APP

Stay updated on Mi Products and MIUI

Copyright©2010-2020 Xiaomi.com, All Rights Reserved
Quick Reply To Top Return to the list