"Armazenamento interno" do Android usado, mas não relatado

9

Como proprietário de um Nexus One executando Gingerbread, estou lutando continuamente para manter o espaço livre no armazenamento interno do meu telefone. Hoje, notei algo estranho.

A parte inferior da tela "Gerenciar aplicativos" do Andorid mostra um gráfico de barras que informa o "Armazenamento interno" do telefone (eu tenho 29 milhões de livre). Quando clico em um aplicativo, vejo o armazenamento do "Aplicativo" e dos "Dados" do aplicativo. O aplicativo, na maioria dos casos, é armazenado no cartão SD. Os "dados" do aplicativo são armazenados no telefone (presumo).

O que estou descobrindo é que não estou vendo a imagem completa do que está ocupando o armazenamento interno. Por exemplo, eu tenho 29 milhões grátis no armazenamento interno. O aplicativo Angry Birds, que está armazenado no cartão SD, tem 3,14M. Seus dados são 4.0K. Em seguida, excluo o Angry Birds (suspiro!) E meu armazenamento interno gratuito salta até 31 milhões. Parece que ele liberou 2M, quando eu esperava que ele liberasse 4,0K. Alguma idéia do que está acontecendo aqui?

rcourtna
fonte

Respostas:

4

A diferença de espaço livre pode ser explicada por três fatores relevantes que podem acabar fornecendo informações enganosas sobre o espaço real disponível em seu armazenamento interno:

  1. O espaço livre relatado

    O espaço livre relatado no final da tela "Gerenciar aplicativos" é arredondado para MB e fornece uma estimativa geral do espaço livre com base no momento em que você abriu a tela, e é atualizado periodicamente (pelos meus testes sobre todo minuto).

    Mencionei "arredondado" porque, se você acessar o painel "Configurações de armazenamento", obterá uma imagem clara do espaço livre disponível, em KB.

  2. A alocação de aplicativos

    Como já mencionado por t0mm13b, um aplicativo pode ser totalmente movido para o SDCard ou deixar uma parte para trás, esse problema está mais relacionado ao desenvolvimento do próprio aplicativo e não há regras padrão a serem seguidas.

    Fiz um exercício com o "Angry Birds" e, enquanto o download mencionava 20 MB, depois de instalado, ele consumia 24 MB. Depois de movê-lo para o SDCard usando a opção para este fim na tela "Gerenciar aplicativos", 1,85 MB foram deixados para trás no armazenamento interno, além de 4KB de dados.

  3. Arquivos de sistema temporários de outros aplicativos ou serviços em execução

    Enquanto escrevia essa resposta, o espaço livre relatado variou entre 2 MB, o que indica que o sistema operacional está constantemente criando e liberando espaço, dependendo do material em execução.

Pode haver outros fatores que dizem respeito às especificações do sistema de arquivos ext4 usadas pelo Gingerbread, mas não acredito que elas sejam responsáveis ​​pela diferença de 2 MB.


Pelos três pontos mencionados acima, durante a execução de um exercício com o aplicativo que você mencionou usando um dispositivo com uma ROM Gingerbread, consegui explicar 2 MB de diferença, assim como o espaço que você mencionou.


Determinar o espaço interno e externo ocupado

Após os comentários, sobre uma maneira de saber com precisão o quanto um aplicativo ocupa no dispositivo e poder visualizá-lo por armazenamento externo ou interno, o aplicativo mais preciso que estou usando atualmente é o SanDisk Memory Zone da SanDisk Corp. disponível gratuitamente na Google Play Store.

  1. Abra a aplicação
  2. Selecione o armazenamento desejado
  3. Verifique os detalhes sobre ele

    Captura de tela do ScanDisk

Zuul
fonte
Explicação muito boa, como sempre quando o Zuul faz isso :) Então, você diria que existe alguma maneira de o usuário final determinar claramente quanto espaço é consumido por um aplicativo e onde - sem envolver "coisas complicadas", como, por exemplo, o uso de aplicativos de terminal? Como temos muitas perguntas aqui sobre "onde foi meu armazenamento", isso seria uma grande ajuda.
Izzy
Adicionando ao meu comentário anterior, como não deixei isso claro: quis dizer determinar quanto espaço é ocupado por um aplicativo no armazenamento interno e quanto no armazenamento externo - ou seja, para ver quanto e onde. O melhor, é claro, é que se pode ver tudo isso em um só lugar - ao contrário do que mostrei na minha resposta com os exploradores gráficos de armazenamento.
Izzy
Eu acredito que são os arquivos de aplicativos dex que tendem a ficar para trás da memória do telefone quando é movido para SD usando o Apps2SD. Portanto, minha teoria é que, quanto menor os arquivos dex do aplicativo, mais eficiente se torna o App2SD.
Irfan
Eu já me perguntei se o cache do Dalvik está incluído na "alocação de aplicativo" fornecida. O mesmo para arquivos temporários, que seriam identificáveis ​​pelo proprietário (uid) - mas isso exigiria uma verificação completa do sistema de arquivos, que custaria um pouco de tempo e recursos, mas teoricamente poderia ser feita sob demanda (através de algum botão de nova verificação).
Izzy
11
Obrigado pela adição, @Zuul! Enquanto você usa esse aplicativo: a captura de tela não mostra divisão na "memória do telefone". Distingue entre /datae /data/datapartições, o que geralmente causa confusões (se forem partições separadas - o que não é verdade para todos os dispositivos / versões do Android)?
Izzy
3

Verificando, encontrei alguns aplicativos úteis que revelam aonde o armazenamento vai.

Por um lado, há DiskUsage . Embora a captura de tela 1 mostre o sdcard aqui, o vídeo na página playstore de aplicativos deixa claro que também pode ser usado no armazenamento interno - e até links para a página de aplicativos que você normalmente encontra em Menu -> Aplicativos -> Gerenciar aplicativos . Você pode aumentar e diminuir o zoom em cada área, como mostram as anotações na captura de tela.

Meu segundo candidato é o Gráfico de tamanho de pasta , que vem com um design diferente e, como visto na captura de tela 2 , também pode lidar com armazenamento interno.

Uso de disco Pasta Tamanho Gráfico

Esses dois podem definitivamente ajudar a identificar "porcos de armazenamento". Existem muitos outros encontrados no playstore que seguem esse conceito, mas a maioria é limitada ao sdcard ou requer acesso root.

Izzy
fonte
3

Como o N1 está intimamente relacionado ao HTC Incredible, você pode estar enfrentando o mesmo problema de pouco espaço de armazenamento que afeta os usuários do Incredible (como eu). Fiz uma pergunta relacionada quando comecei a experimentar o fechamento forçado de aplicativos devido à falta de espaço na partição e, posteriormente, consolidei meu entendimento das partições de dados em uma resposta a uma pergunta sobre o aviso False de "pouco espaço" (armazenamento interno) no HTC Incredible :

... a tela de configurações do meu aplicativo mostra qual deve ser o /datauso (nunca próximo do cheio, os números correspondem ao /datatamanho relatado pelo DiskUsage), mesmo que meus aplicativos sejam realmente limitados pelo muito menor /data/data(onde eu sempre fico sem espaço) ...

Descobri que o número relatado como "Armazenamento Interno" estava relatando algo totalmente inútil e, segundo todas as contas, era inútil para me ajudar a gerenciar o armazenamento de aplicativos. Concordo com Izzy em sua recomendação do DiskUsage , achei muito útil, especialmente quando enraizado (com permissões de root, ele pode exibir o /data/datauso da partição). Usar o emulador de terminal para investigar o uso também foi útil no diagnóstico do meu problema. Quando você examina suas partições /datae /data/data, vê as mesmas discrepâncias?

Mr. Buster
fonte
2

Parece que você está usando o Apps2SD ou equivalente, ao mover o aplicativo para o SDCard, apenas uma parte dele é armazenada no armazenamento interno e o restante no SDCard.

Para verificação, verifique seu SDCard e veja se os dados do aplicativo ainda estão lá. Isso deve estar presente em /sdcard/Android/data/ seguida pelo nome do pacote do aplicativo instalado.

Esse é um mecanismo normal do Apps2SD.

t0mm13b
fonte
Obrigado, estou usando o Link2SD. Não percebi que isso deixa uma parte do aplicativo para trás. Isso ajuda a explicar.
Rcourtna
1

Muitas pessoas têm esse tipo de problema e eu tenho o mesmo. Mover aplicativos para o cartão SD atrasa um pouco o problema, porque outra coisa preenche o armazenamento interno. Eu finalmente descobri e funciona muito bem.

Eu tenho um Galaxy Tab 7, mas muitos dispositivos Android experimentam isso. O chamado /datanão é realmente apenas dados, mas é onde o Android instala o apk do aplicativo e alguns dados relacionados a ele. Se você forçar a instalação do apk no cartão SD, ele ainda utilizará parte do /dataespaço (pequena quantidade) para alguns dados.

O problema que eu descobri é que /data/tombstonevocê encontrará 10 arquivos chamadostombstone_0# . Estas são informações de depuração constantes / sem interrupção, coletadas pelo android. Esses arquivos são acumulados ao longo do tempo. Você não precisa disso para um usuário normal. Exclua todos eles. Esses 4 arquivos estavam usando 1,4 GB do meu armazenamento interno para tablet de 1,89 GB.

Para fazer isso, você precisará fazer root no seu dispositivo. Sim, você deve. E não vai explodir, não se preocupe, eu já fiz isso e muitos outros também! Em seguida, obtenha um programa como o "Root Explorer" para navegar e excluir o lixo eletrônico. Ele solicitará e terá privilégios de root se você já fez root no seu dispositivo antes e poderá fazer o que quiser.

Para fazer root no seu dispositivo, basta pesquisar no google "root android [modelo do meu dispositivo]" e você deve descobrir rapidamente como fazer root no seu dispositivo.

Esse problema é uma falha de design. Quando há pouco armazenamento interno, o Android deve iniciar uma tarefa em segundo plano para limpar esse lixo.

Sylvain Huard
fonte
Veja também meus comentários sobre sua resposta semelhante aqui - nunca vi lápides ocupando mais de 10 MB; seu caso é o primeiro. E mesmo se, requer raiz para removê-los. PS: Como "lápides" são chamadas de "core dumps" no Unix / Linux, seu tamanho varia com a memória usada pelos processos correspondentes (travados). Obvioulsy seu tem sido bastante aplicativos com fome de memória :)
Izzy