Embora já existam muitas respostas, na verdade não há nenhuma que responda a duas perguntas principais e a terceira apenas para um caso de problema de estado de despejo. Leia apenas textos maiores se estiver com pressa.
Além disso, explicarei por que as soluções mencionadas em outras respostas ajudam apenas algumas vezes. E ofereça outra solução caso o gato não seja o seu problema.
Por que recebo um erro de espaço de armazenamento se há muito espaço disponível?
Não é um erro, é por design. O gatilho para pouco espaço é bastante alto, geralmente 10% OU 500 MB, o que for menor.
"algumas funções do sistema podem não funcionar" - isso não é preciso, algumas NÃO funcionarão.
Sincronize, algumas funções de download, instalação de aplicativos, hangouts e muitos aplicativos do Google.
Se você perguntar:
- Por que há menos de 500 MB disponíveis?
então a resposta é: ou você o usou sem saber ou há um problema com algo que ocupa seu espaço de armazenamento.
Se você o usou e deseja verificar com o quê, siga as respostas dizendo para limpar seu espaço; caso contrário, pode haver vários outros problemas, mas provavelmente é o logcat que está deixando grandes arquivos de estado de despejo para trás. Nesse caso, siga as respostas mencionando logcat ou log ou dumpstate. Ou pule para o meu último parágrafo abaixo.
Quais partes da memória são monitoradas para espaço livre.
podemos distinguir duas situações de modelo de acordo com a estrutura do FS em um telefone Android:
(Observe que o que eu chamo de ARMAZENAMENTO INTERNO não é um nome padronizado, geralmente chamado estranhamente de sdcard, também pode ser chamado de armazenamento USB, como possivelmente no seu caso. )
- A partição DATA é uma partição separada do INTERNAL STORAGE
O ARMAZENAMENTO INTERNO não é monitorado e você pode preenchê-lo até zero bytes livres e nada acontece. O armazenamento de dados é monitorado, na galáxia S2 é 10%, a partir de 1500 MB, 150 MB devem estar sempre disponíveis.
- uma partição para armazenamento de dados e armazenamento interno
O ARMAZENAMENTO INTERNO é emulado como uma partição separada com diferentes direitos de permissão. Ele também possui um "fusível" ou reserva, que não permitirá que todo o espaço da partição real seja usado. Os arquivos no ARMAZENAMENTO INTERNO estão localizados nos
modelos / data / media / old, talvez até o Android v2.3, também possuem a partição DBDATA, que foi monitorada separadamente - se bem me lembro corretamente
Uma mudança de um sistema para outro pode ter sido feita por uma atualização do FW. Ainda me lembro de quando essa atualização removeu milhares de minhas fotos de férias no Galaxy Note2. Uma partição de ARMAZENAMENTO INTERNO foi removida e montada na partição de DADOS usando o FUSE; havia 100 MB de diferença quando verifiquei o espaço livre em cada uma.
Portanto, dependendo da estrutura de dados que você possui, é necessário manter, por exemplo, 400 MB de espaço livre em um ARMAZENAMENTO INTERNO que, usando df ou um aplicativo analisador de espaço livre, mostre como 500 MB de espaço livre na partição DATA.
Observe que,
- o tamanho mínimo é diferente para cada modelo e, às vezes, também na versão FW.
- Você precisa esperar cerca de um minuto para ver se a notificação será limpa depois que você disponibilizar mais espaço.
segunda questão:
Posso ingressar no dispositivo e na memória USB? Ajudará ou pelo menos atrasará o tempo enquanto o problema retornar?
Resposta rápida, NÃO. E se isso ajudasse? Sim, ajudaria a evitar o problema de pouco espaço, por ter um armazenamento total maior.
Para elaborar:
se a "memória USB" for um cartão SD conectável ou um dispositivo conectável no seu caso, ou se estiver localizado em um chip de memória separado, como na guia 1 e em telefones com a mesma idade, não será possível associá-lo ao Partição de dados.
Se a "memória USB" for um ARMAZENAMENTO INTERNO no seu caso, você poderá juntá-los, mas não é um processo fácil ou seguro. Em outras palavras, se não houver um guia de alguém que tenha feito isso com sucesso no mesmo modelo de telefone que o seu, também poderemos dizer figurativamente: NÃO, não é possível.
Ao pesquisar o guia na Internet, lembre-se de que não foi uma idéia inteligente nomear o ARMAZENAMENTO INTERNO como "armazenamento USB", porque também há um armazenamento USB real. Você encontrará muitas soluções para ativar o USB para unidades de armazenamento, o chamado recurso USB OTG, não se diverte.
basicamente você precisa:
particionar novamente seu chip de memória, chamado eMMC, por algum motivo, excluir USERDATA - que é um nome de partição para INTERNAL STORAGE e mesclar o espaço livre com a partição DATA.
em seguida, encontre / compile o módulo de fusível que cuide da emulação da partição com permissões completas para o media_rw ou outro usuário,
edite o script init para criar um ponto de montagem para o novo ARMAZENAMENTO INTERNO,
muitas outras alterações e ajustes nos quais não consigo pensar .
terceira pergunta:
Algum outro conselho sobre como posso lidar com esse problema?
A melhor opção, se você tiver acesso root, é
abaixe o limite do espaço livre mínimo.
Você pode reduzir para 1%, possivelmente até menos. Isso significa 20 - 120 MB de espaço livre mínimo.
Envolve edição do sqlite3 mas, embora possa parecer difícil, é um processo muito simples. Basta seguir qualquer bom guia e você fará tudo certo. ESTE guia parece esplêndido ou também existem aplicativos de editor do sqlite3 ou encontre outro guia usando o link Gugl .
Há duas coisas a serem observadas:
- Guias diferentes estão mencionando nomes de tabelas diferentes. 'Seguro', 'sistema', 'global' ou até 'gservices'. A verdade é que foi aplicável em diferentes tabelas através de diferentes versões do Android. Agora deve estar em 'global' antes de estar em 'seguro' e antes desse 'sistema'. Meu conselho é, basta colocá-lo em todos eles, você não vai machucar nada. Isso significa seguir o guia que você encontrará e repetir as etapas enquanto substitui o nome da tabela por cada um dos nomes mencionados acima.
- você pode encontrar o arquivo settings.db bloqueado e não gravável, mesmo com root, aconteceu comigo quando o ICS foi lançado. Mas não aconteceu desde então. De qualquer forma, nesse caso, inicialize na recuperação, retire o arquivo, edite no PC e empurre de volta.
Se 1% (cerca de 100 MB, se você tiver um chip de 16 GB) ainda é demais para você desperdiçar, como foi para mim, adicione também o valor sys_storage_threshold_max_bytes, eu tenho 20000000 = cerca de 20 MB e nunca tive muito problema, embora muitos aplicativos não possui verificação de espaço disponível e cometerá um erro sem indicar o motivo, portanto, lembre-se de que pode sempre haver um problema de espaço livre. Existe uma instrução -OR- entre essas duas variáveis. Não coloque menos de 20 lá porque, se um determinado arquivo do sistema que reside na pasta / data falhar na gravação, o telefone poderá não inicializar. Acho 20MB bastante seguro, pois não há arquivos maiores que os contidos em / data, exceto em / data / data, / data / app / e dalvik. e se um arquivo for quebrado em / data / data, não é grande coisa. A redefinição de dados desse aplicativo o resolverá.
Se algo está consumindo o espaço livre
Se você suspeita que não deve haver muito espaço ocupado ou apenas deseja limpar o espaço, como em algumas outras respostas aqui, também recomendo o DiskUsage para ajudar na tarefa de localizar visualmente o que está ocupando quanto espaço .
No aplicativo DiskUsage, na segunda coluna, a 'mídia' significa ARMAZENAMENTO INTERNO e os Aplicativos representam / data / app e / data / data - espaço ocupado pelos aplicativos.
Os 'Dados do sistema', na cor verde, na parte inferior são o restante da pasta / data e não devem ser muito altos. 300 MB é bom, mais de 1 GB é provavelmente um problema.
Se esses dados do sistema estiverem muito altos, é possível que o seu logcat tenha ficado louco e criado toneladas de poemas post-mortem de estado de despejo. Nesse caso, e somente nesse caso, todas as outras respostas aqui serão aplicáveis. Isso significa que excluir esses shows de espaço desperdiçado na pasta / dados / log ou discar um * # 9900 #, que por sinal não é um comando válido para todos os dispositivos, trará seu Android de bom humor. Por quanto tempo é uma questão de saber se o culpado que causou o registro excessivo foi corrigido ou removido.