Recentemente sto indagando sui motivi per la corruzione del file binario. In particolare, abbiamo un'app per Android, la parte nativa può leggere/scrivere file binari su scheda SD. A volte, il file binario corrompe per ragioni sconosciute. Abbiamo raccolto alcuni di questi file da diversi utenti e trovato alcuni fatti interessanti.Quali sono i possibili motivi per la corruzione di file binari su dispositivi Android
Un tipo di danneggiamento di maggioranza è che vengono cancellati i primi 4096 byte del file binario. Quando eseguo l'hexdump di questi file, i primi 4096 byte sono tutti zeri. Non più di 4096 o meno di 4096, ma esattamente 4096 byte. Penso che non sia una coincidenza. So che 4096 byte hanno una dimensione di pagina. Ma senza esperienza, non riesco a capire il motivo e, cosa più importante, non so come evitare tali cose per altri utenti/dispositivi.
Oltre a ciò, nel mezzo di alcuni file binari, ci sono anche alcuni segmenti di zeri continui, che non dovrebbe essere lì. Se non è il bug del nostro programma, ci sono dei possibili motivi che potrebbero essere collegati al kernel della piattaforma/dispositivo, o qualsiasi altra cosa come il dispositivo improvvisamente fuori dal potere?
Spero che chiunque abbia vissuto situazioni simili possa darmi qualche suggerimento/consiglio/soluzioni ecc. Questo mi ha davvero confuso molto.
Molte grazie ~
assicurarsi tutte le operazioni di file come file aperto e il file vicino accada correttamente nel ciclo di vita delle applicazioni. –
per la copia di file binari in Android: http://stackoverflow.com/a/11212942/2183287 –
Fai attenzione alle posizioni in cui scrivi i tuoi dati, forse stai cercando di scrivere su alcune posizioni di memoria illegali e il kernel si occupa automaticamente di quella. –