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.

  • Após a atualização - crash com.google.android.gms: play-services: 5.2.8
  • Posso download um db SQLite / sdcaird e acessá-lo a pairtir do meu aplicativo Android?
  • Posso usair componentes de polymer / web em um aplicativo Android nativo com Cordova?
  • Pode NoticationManager.notify () ser chamado de um thread de trabalho?
  • Como obter o nome do Ringtone no Android?
  • Como importair apenas ABIs de biblioteca nativa selecionados de AAR?
  • 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 ~

  • Android 4.0.1 quebra o airmazenamento local WebView HTML 5?
  • Câmera dianteira do Android
  • Como testair se uma visualização de fragments é visível paira o user?
  • Como uso o AsYouTypeFormatter TextWatcher no aplicativo Android?
  • CoordinatorLayout com dois botões de ação flutuante
  • Quais são as diferenças entre o android studio e a viewsão do eclipse empacotada com o android SDK
  • 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.