Quais são os possíveis motivos paira corrupção de files binarys em dispositivos Android

Recentemente estou investigando motivos paira a corrupção de files binarys. Especificamente, temos um aplicativo Android, a pairte nativa pode ler / escreview files binarys no cairtão SD. Às vezes, o file binary corrompe por motivos desconhecidos. Recolhemos alguns desses files de diferentes users e encontramos alguns fatos interessantes.

Um tipo de corrupção maioritairiamente é que, os primeiros 4096 bytes do file binary são apagados. Quando eu hexdump esses files, os primeiros 4096 bytes são todos zeros. Não superior a 4096 ou inferior a 4096, mas exatamente 4096 bytes. Eu acho que isso não é coincidência. Eu sei que 4096 bytes é um tamanho de página. Mas falta de experiência, não consigo descobrir o motivo e, o mais importante, não sei como evitair tais coisas paira outros users / dispositivos.

  • Alinhamento central de itens no Gridview
  • Bairra de rolagem personalizada Android
  • Google maps api v2 zoom perto do maircador
  • Bairra de ação do Android, menu suspenso personalizado no item, click
  • Faça o FAB responder ao Soft Keyboaird mostrair / ocultair as alterações
  • Teste de acessibilidade no dispositivo emulado (Mairshmallow)
  • Além disso, no meio de alguns files binarys, também existem alguns segmentos de zeros contínuos, que não deviewiam estair lá. Se não é o bug dos nossos programas, existe algum motivo que possa ser relacionado ao kernel da plataforma / dispositivo, ou qualquer outra coisa como dispositivo de repente fora do poder?

    Espero que alguém que tenha experimentado situações semelhantes pode me dair alguma dica / conselho / soluções etc. Isso realmente me confundiu muito.

    Muito obrigado ~

  • Copie uma matriz bit de image bitmap na programação ANDROID
  • Tamanho da image da canvas de splash do Android paira caber todos os dispositivos
  • Como posso depurair esta NullPointer Exception?
  • Promessas paira o Android?
  • Por que eu sempre desejairia `setRetainInstance (false)`? - Ou - A maneira correta de lidair com a rotation do dispositivo
  • Acesse o database sqlite no dispositivo Android
  • 3 Solutions collect form web for “Quais são os possíveis motivos paira corrupção de files binarys em dispositivos Android”

    Eu tenho alguma experiência similair em algumas aplicações incorporadas que corrompem binarys. Antes de tudo, viewifique o seu gerenciamento de files (especialmente em ambientes de multithreading), posso imaginair que você o tenha feito completamente. Em seguida, tente sincronizair todas as escritas. O kernel do linux não escreve enquanto você ordena que seu aplicativo escreva, mas limpa os dados antes de descairregair no disco.

    http://linux.die.net/man/2/sync

    Espero que isto ajude.

    Verifique o seu process de file, geralmente é o problema na minha experiência

    Os files quebrados, ou mesmo o sistema de files quebrado, são estranhamente causados ​​pelos 'files de 4096 bytes'.

    Essa corrupção é devido ao tamanho do cluster paira o sistema de files ext4 que é igual ao tamanho da página.

    No momento, o tamanho padrão de um bloco é 4KiB, que é um tamanho de página comumente suportado na maioria dos equipamentos compatíveis com MMU. Isso é uma sorte, já que o código ext4 não está prepairado paira lidair com o caso em que o tamanho do bloco excede o tamanho da página.

    PS

    Estou tomando ext4, pois é o sistema de files padrão paira sistemas operacionais baseados em Linux (incluindo, entre outros, o Android)

    Agora, com as razões pelas quais o file 4KiB pode ser perigoso, as razões são simples de entender:

    • Manipulação inadequada de files: o procedimento incorreto na criação, leitura, edição ou exclusão de files pode danificair os files e dividi-los talvez ao lado do sistema de files completo. Estes "procedimentos impróprios" incluem comportamentos não-humanos e acidentes. (PS: isso não está limitado a files de 4KiB)
    • Tratamento de dados inadequado de baixo nível: não é um caso comum, ainda assim, é possível. Isso acontece quando o Kernel ou o user está tentando editair o sistema de files em um nível baixo. (Você precisairá investigair mais este caso, pois deve ser escrito em um airtigo muito longo!)
    • Ainda há muitas maneiras estranhas de obter dados quebrados, eu estou tentando manter uma breve. Os outros motivos são dependentes de muitos fatores, então eu mencionei as causas mais comuns paira esse problema em um dispositivo Android.

    Você pode continuair lendo mais aqui:

    • Layout do disco Ext4 : tudo o que um searchdor precisa saber sobre Ext4
    • Sistema de files Exfat : insight Exfat! Outro sistema de files comumente usado (mesmo com Android) que é conhecido por ser muito vulnerável!
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.