Anche se ci sono già molte risposte, in realtà non c'è nessuna risposta a due domande principali e la terza solo per un caso di problema discarica. Leggi solo un testo più grande se hai fretta.
Spiegherò anche perché le soluzioni menzionate in altre risposte aiutano solo a volte. E offri un'altra soluzione nel caso in cui cat non sia il tuo problema.
Perché viene visualizzato l'errore di spazio di archiviazione se c'è molto spazio disponibile?
Non è un errore, è di progettazione. Il trigger per spazio ridotto è piuttosto elevato, di solito il 10% O 500 MB, a seconda di quale sia inferiore.
"alcune funzioni di sistema potrebbero non funzionare" - questo non è preciso, alcune NON funzioneranno.
Sincronizza, alcune funzioni di download, l'installazione di app, hangout e molte app Google.
Se chiederai:
- Perché sono disponibili meno di 500 MB?
allora la risposta è che o è che l'hai usato inconsapevolmente o che c'è un problema con qualcosa che riempie il tuo spazio di archiviazione.
Se lo hai usato e vuoi verificare cosa, segui le risposte dicendo che pulisci il tuo spazio, se non lo facessi, potrebbe esserci una varietà di altri problemi, ma molto probabilmente è logcat che sta lasciando dietro di sé enormi file dumpstate. In tal caso, seguire le risposte menzionando logcat o log o dumpstate. O salta al mio ultimo paragrafo qui sotto.
Quali parti della memoria vengono monitorate per lo spazio libero.
possiamo distinguere due situazioni modello in base alla struttura FS in un telefono Android:
(Nota, ciò che chiamo STORAGE INTERNO non è un nome standardizzato, di solito si chiama stranamente sdcard, potrebbe anche essere chiamato memoria USB come probabilmente nel tuo caso. )
- La partizione DATA è una partizione separata da STORAGE INTERNO
STOCCAGGIO INTERNO non è monitorato e puoi riempirlo fino a zero byte liberi e non succede nulla. L'archiviazione dei dati è monitorata, sulla galassia S2 è del 10%, da 1500 MB, 150 MB devono essere sempre disponibili.
- una partizione sia per DATA che per STOCCAGGIO INTERNO
STOCCAGGIO INTERNO viene emulato come una partizione separata con diversi diritti di autorizzazione. Ha anche un "fusibile" o riserva, che non consentirà di utilizzare tutto lo spazio della partizione reale. I file su STORAGE INTERNO si trovano effettivamente in / data / media /
vecchi modelli, forse fino ad Android v2.3, ha anche la partizione DBDATA, che è stata monitorata separatamente - se ricordo bene
Un passaggio da un sistema all'altro potrebbe essere stato effettuato da un aggiornamento FW. Ricordo ancora quando tale aggiornamento ha rimosso migliaia delle mie foto delle vacanze su Galaxy Note2. Una partizione STORAGE INTERNA è stata rimossa e montata sulla partizione DATA usando FUSE, c'era una differenza di 100 MB quando ho controllato lo spazio libero su ciascuna.
Pertanto, a seconda della struttura dei dati in uso, è necessario conservare, ad esempio, 400 MB di spazio libero su uno STORAGE INTERNO che, utilizzando df o un'app di analisi dello spazio libero , potrebbe mostrare come spazio libero di 500 MB sulla partizione DATA.
Si noti che,
- la dimensione minima è diversa per ciascun modello e talvolta anche per la versione FW.
- È necessario attendere circa un minuto per vedere se la notifica si cancellerà automaticamente dopo aver reso disponibile più spazio.
seconda domanda:
Posso unire dispositivo e memoria USB? Aiuterà o almeno ritarderà il tempo mentre il problema ritorna?
Risposta veloce, NO. E se sarebbe d'aiuto? Sì, aiuterebbe a evitare il problema dello spazio ridotto, grazie a una memoria totale maggiore.
Per elaborare:
SE "Memoria USB" è una scheda SD inseribile, o un dispositivo collegabile nel tuo caso, o se si trova su un chip di memoria separato, poiché è su Tab 1 e telefoni di età simile, non è possibile unirlo con Partizione DATA.
SE la "memoria USB" è uno STOCCAGGIO INTERNO nel tuo caso, puoi unirti a loro ma non è un processo facile o sicuro. In altre parole, se non esiste una guida di qualcuno che lo ha fatto con successo sullo stesso modello di telefono in uso, potremmo anche dire in senso figurato: NO, non è possibile.
Mentre cerchi su Internet la guida, tieni presente che non è stata una buona idea nominare lo STORAGE INTERNO come "memoria USB", perché esiste anche una vera memoria USB. Troverai molte soluzioni per abilitare l'USB per le unità di archiviazione, la cosiddetta funzione USB OTG, non ti diversificherai.
in pratica devi:
ripartizionare il tuo chip di memoria, chiamato eMMC per qualche motivo, eliminare USERDATA - qual è il nome di una partizione per INTERNAL STORAGE e unire lo spazio liberato con la partizione DATA.
quindi trova / compila il modulo di fusione che si occuperebbe di emulare la partizione con le autorizzazioni complete per media_rw o qualche altro utente,
modifica lo script di init, per creare un punto di montaggio per il nuovo STOCCAGGIO INTERNO,
molte altre modifiche e modifiche che non riesco a pensare .
terza domanda:
Qualche altro consiglio su come posso affrontare questo problema?
L'opzione migliore, se si dispone di un accesso di root, è
abbassare la soglia dello spazio libero minimo.
Puoi metterlo all'1%, forse anche meno. Ciò significa 20 - 120 MB di spazio libero minimo.
Implica la modifica di sqlite3 ma sebbene possa sembrare difficile, è un processo molto semplice. Segui semplicemente una buona guida e lo farai bene. QUESTA guida sembra splendida o ci sono anche app editor sqlite3 o trova un'altra guida usando QUESTO link gugl .
Ci sono due cose da notare:
- diverse guide citano nomi di tabella diversi. "Sicuro", "sistema", "globale" o persino "gservices". La verità è che era applicabile in diverse tabelle attraverso diverse versioni di Android. Ora dovrebbe essere in "globale" prima di essere in "sicuro" e prima di quel "sistema". Il mio consiglio è, basta metterlo in tutti loro, non farai del male a niente. Ciò significa che segui la guida che troverai e ripeti i passaggi mentre sostituisci il nome della tabella con ciascuno di quei nomi che ho menzionato sopra.
- potresti trovare il file settings.db bloccato e non scrivibile anche con root, mi è successo quando è uscito ICS. Ma non è successo da allora. In ogni caso, in tal caso, avviare il ripristino, estrarre il file, modificarlo sul PC e reinserirlo.
Se l'1% (circa 100 MB se si dispone di un chip da 16 GB) è ancora troppo da sprecare, come è stato per me, aggiungere anche il valore sys_storage_threshold_max_bytes, ho 20000000 = circa 20 MB e non ho mai avuto molti problemi, anche se molte app non dispone di controllo dello spazio disponibile e si verificherà un errore senza indicarne il motivo, quindi è necessario tenere presente che potrebbe sempre essere un problema di spazio libero. C'è un'istruzione -OR- tra queste due variabili. Non inserire meno di 20 lì perché se un determinato file di sistema che risiede nella cartella / data non riesce a scrivere, il telefono potrebbe non avviarsi. Trovo 20 MB abbastanza sicuro in quanto non ci sono file più grandi di quello in / data, ad eccezione di / data / data, / data / app / e dalvik. e se un file si romperà in / data / data, nessun grosso problema. Il ripristino dei dati di quell'app lo risolverà.
Se qualcosa sta divorando lo spazio libero
Se sospetti che non ci debba essere così tanto spazio o vuoi semplicemente ripulire lo spazio, come in un paio di altre risposte qui, consiglio anche DiskUsage per aiutarti a trovare visivamente ciò che sta occupando quanto spazio .
Nell'app DiskUsage, nella seconda colonna, il "supporto" sta per STOCCAGGIO INTERNO e le app rappresentano / data / app e / dati / dati - spazio occupato dalle app.
I "Dati di sistema", di colore verde, in fondo sono il resto della cartella / data e non dovrebbero essere troppo alti. 300 MB vanno bene, oltre 1 GB è probabilmente un problema.
Se questi dati di sistema sono troppo alti, è possibile che il tuo logcat sia impazzito e abbia creato tonnellate di poesie post mortem discariche. In quel caso, e solo in quel caso, saranno applicabili tutte le altre risposte qui. Ciò significa che l'eliminazione di questi concerti di spazio sprecato nella cartella / dati / registro o la composizione di un * # 9900 #, che tra l'altro non è un comando valido per ogni dispositivo, riporterà il tuo Android di buon umore. Per quanto tempo si chiede se il colpevole che ha causato l'eccessiva registrazione sia stato corretto o rimosso.