Bien qu'il y ait déjà de nombreuses réponses, il n'y en a en fait aucune qui réponde aux deux questions principales et la troisième juste pour un cas de problème de dumpstate. Lisez seulement le texte plus grand si vous êtes pressé.
J'expliquerai également pourquoi les solutions mentionnées dans d'autres réponses n'aident que parfois. Et je proposerai une autre solution au cas où le chat ne serait pas votre problème.
-
Pourquoi le message d'erreur "Espace de stockage" apparaît-il alors qu'il y a beaucoup d'espace disponible ?
Ce n'est pas une erreur, c'est à dessein. Le seuil de déclenchement en cas de manque d'espace est assez élevé, généralement 10 % OU 500 Mo, la valeur la plus faible étant retenue.
"certaines fonctions du système peuvent ne pas fonctionner" - ce n'est pas précis, certains ne fonctionneront PAS.
Synchroniser, certaines fonctions de téléchargement, l'installation d'applications, Hangouts et de nombreuses applications Google.
Si vous voulez bien demander :
- Pourquoi y a-t-il moins de 500 Mo disponibles ?
alors la réponse est, soit que vous l'avez utilisé sans le savoir, soit qu'il y a un problème avec quelque chose qui remplit votre espace de stockage.
Si vous l'avez utilisé et que vous voulez vérifier avec quoi, suivez les réponses disant de nettoyer votre espace, si vous ne l'avez pas fait, cela peut être une variété d'autres problèmes, mais plus probablement c'est logcat qui laisse d'énormes fichiers dumpstate derrière lui. Dans ce cas, suivez les réponses mentionnant logcat ou log ou dumpstate. Ou passez à mon dernier paragraphe ci-dessous.
Quelles parties de la mémoire sont surveillées pour l'espace libre.
nous pouvons distinguer deux situations types en fonction de la structure du FS dans un téléphone Android :
(Notez, que ce que j'appelle STOCKAGE INTERNE n'est pas un nom standardisé, habituellement il est bizarrement appelé sdcard, il peut aussi être appelé stockage USB comme c'est probablement le cas dans votre affaire).
- La partition DATA est une partition séparée du STOCKAGE INTERNE.
Le STOCKAGE INTERNE n'est pas surveillé et vous pouvez le remplir jusqu'à zéro octet libre et rien ne se passe. Le stockage des DONNEES est surveillé, sur le galaxy S2 c'est 10%, de 1500 MB, 150MB doivent être toujours disponibles.
- une partition pour les DONNÉES et le STOCKAGE INTERNE
Le STOCKAGE INTERNE est émulé comme une partition séparée avec des droits de permission différents. Il dispose également d'un "fusible" ou d'une réserve, qui ne permet pas d'utiliser tout l'espace de la partition réelle. Les fichiers sur INTERNAL STORAGE sont en fait situés dans /data/media/
les anciens modèles, peut-être jusqu'à Android v2.3, ont aussi une partition DBDATA, qui était surveillée séparément - si je me souviens bien.
Le passage d'un système à un autre peut avoir été effectué par une mise à jour du logiciel. Je me souviens encore qu'une telle mise à jour a supprimé des milliers de mes photos de vacances sur le Galaxy Note2. Une partition de STOCKAGE INTERNE a été supprimée et montée sur la partition DATA à l'aide de FUSE, il y avait une différence de 100 Mo lorsque j'ai vérifié l'espace libre sur chacune.
Ainsi, en fonction de la structure de données dont vous disposez, vous devez conserver, par exemple, 400 Mo d'espace libre sur un STOCKAGE INTERNE qui pourrait, en utilisant la fonction df ou une application d'analyse d'espace libre, montre que 500MB d'espace libre sur la partition DATA.
Notez que,
- la taille minimale est différente pour chaque modèle et parfois aussi pour la version FW.
- Vous devez attendre environ une minute pour voir si la notification s'efface d'elle-même après avoir libéré de l'espace.
deuxième question :
-
Puis-je joindre un dispositif et une clé USB ? Cela aidera-t-il ou au moins retardera-t-il le temps que le problème revienne ?
Réponse rapide, NON. Et si cela pouvait aider ? Oui, cela permettrait d'éviter le problème du manque d'espace, grâce à un stockage total plus important.
Pour élaborer :
SI la "mémoire USB" est une carte SD enfichable, ou un dispositif enfichable dans votre cas, ou si elle est située sur une puce mémoire séparée, comme c'est le cas sur la Tab 1 et les téléphones du même âge, alors il n'est pas possible de la joindre à la partition DATA.
SI la "mémoire USB" est un STOCKAGE INTERNE dans votre cas, vous pouvez les rejoindre mais ce n'est pas un processus facile ou sûr. En d'autres termes, s'il n'y a pas un guide par quelqu'un qui a réussi à le faire sur le même modèle de téléphone que le vôtre, nous pourrions aussi dire figurativement, NON, ce n'est pas possible.
Lorsque vous recherchez le guide sur Internet, sachez que ce n'était pas une idée intelligente de nommer le STOCKAGE INTERNE "stockage USB", car il existe aussi un vrai stockage USB. Vous trouverez beaucoup de solutions pour activer l'USB pour les disques de stockage, ce qu'on appelle la fonction USB OTG, ne vous dispersez pas.
En gros, vous devez le faire :
re-partitionnez votre puce mémoire, appelée eMMC pour une raison quelconque, supprimez USERDATA - qui est un nom de partition pour le STOCKAGE INTERNE et fusionnez l'espace libéré avec la partition DATA.
puis trouver/compiler le module fuse qui se chargera d'émuler la partition avec des permissions complètes pour media_rw ou un autre utilisateur,
modifier le script init, pour créer un point de montage pour le nouveau STOCKAGE INTERNE,
de nombreux autres changements et ajustements auxquels je ne pense pas.
troisième question :
-
Avez-vous d'autres conseils à me donner pour résoudre ce problème ?
La meilleure option, si vous avez un accès Root, est de
abaisser le seuil de l'espace libre minimum.
Vous pouvez l'estimer à 1 %, voire moins. Cela signifie 20 à 120 Mo d'espace libre minimum.
Cela implique l'édition de sqlite3, mais bien que cela puisse sembler difficile, c'est un processus très simple. Suivez simplement un bon guide et vous y arriverez. Ce guide est splendide ou il y a aussi applications pour l'éditeur sqlite3 ou trouver un autre guide en utilisant CE lien gugl .
Il y a deux choses à noter :
- Les différents guides mentionnent des noms de table différents. Secure', 'system', 'global' ou même 'gservices'. La vérité est qu'il était applicable dans différentes tables à travers les différentes versions d'Android. Maintenant, il devrait être dans 'global' avant d'être dans 'secure' et avant cela 'system'. Mon conseil est de le mettre dans toutes les tables, vous ne ferez pas de mal à personne. Cela signifie que vous devez suivre le guide que vous trouverez et répéter les étapes en remplaçant le nom de la table par chacun des noms que j'ai mentionnés ci-dessus.
- Vous pouvez trouver le fichier settings.db verrouillé et non accessible en écriture même avec Root, cela m'est arrivé quand ICS est sorti. Mais ça n'est plus arrivé depuis. Dans ce cas, démarrez en mode de récupération, retirez le fichier, éditez-le sur votre PC et réinsérez-le.
Si 1% (environ 100MB si vous avez une puce de 16GB) est encore trop pour vous, comme ce fut le cas pour moi, ajoutez aussi la valeur de sys_storage_threshold_max_bytes, j'ai 20000000 = environ 20 MB et je n'ai jamais eu de problème, bien que beaucoup d'applications n'ont pas de vérification de l'espace disponible et feront une erreur sans en donner la raison, donc vous devez garder à l'esprit qu'il peut toujours s'agir d'un problème d'espace libre. Il y a une instruction -OR- entre ces deux variables. Ne mettez pas moins de 20 car si un certain fichier système qui réside dans le dossier /data ne parvient pas à écrire, votre téléphone pourrait ne pas démarrer. Je trouve que 20MB sont assez sûrs car il n'y a pas de fichiers plus grands que cela dans /data, à l'exception de /data/data, /data/app/ et dalvik. et si un fichier est cassé dans /data/data, ce n'est pas grave. La réinitialisation des données de cette application résoudra le problème.
Si quelque chose mange l'espace libre
Si vous pensez qu'il ne devrait pas y avoir autant d'espace occupé, ou si vous voulez simplement nettoyer l'espace, comme dans quelques autres réponses ici, je recommande aussi DiskUsage pour aider à localiser visuellement ce qui prend de l'espace.
Dans l'application DiskUsage, dans la deuxième colonne, "media" signifie STOCKAGE INTERNE et "Apps" représente /data/app et /data/data - l'espace occupé par les applications.
Les "données système", de couleur verte, en bas sont le reste du dossier /data et ne devraient pas être trop élevées. 300 Mo, c'est bien, plus de 1 Go, c'est probablement un problème.
Si ces données système sont trop élevées, il est possible que votre logcat se soit déchaîné et ait créé des tonnes de poèmes post-mortem dumpstate. Dans ce cas, et seulement dans ce cas, toutes les autres réponses seront applicables. Cela signifie que la suppression de ces gigas d'espace perdu dans le dossier /data/log ou la composition d'un *#9900# , qui n'est d'ailleurs pas une commande valide pour tous les appareils, ramènera votre Android à la bonne humeur. Pour combien de temps, la question est de savoir si le coupable qui a causé la journalisation excessive a été corrigé ou supprimé.