2014-07-15 21 views
10

Desidero riempire lo spazio su disco del mio dispositivo con qualsiasi dato di dumping come parte dello stress test.Riempire lo spazio su disco nel dispositivo Android

Ho provato a scrivere byte in un file nella memoria esterna; ovviamente più grande & più spazioso il disco è più lungo ci vorrà per essere riempito. [circa mezzo minuto per 1 GB]

Possiamo fare qualcosa dalla shell adb in questo caso? Ho controllato la creazione di dati di dettaglio utilizzando il comandodd:

dd if=/dev/zero of=/tmp/tempFiller.deleteMe bs=1024 count=$COUNT

che fondamentalmente copie dump dei dati di file di destinazione Quindi ci vuole anche tempo significativo. [circa 1 minuto per 1 GB]

Esiste un approccio più rapido? per un utente normale/super utente?

Ho anche provato i comandi fallocate, truncate & mkfile nella shell adb, ma nessuno di questi comandi si trova anche all'interno di su. Immagino che questi siano comandi bash & l'installazione di bash shell nel dispositivo Android richiederà il root del dispositivo.

fallocate -l 10G gentoo_root.img 
truncate -s 10M output.file 
mkfile 10240m 10Gigfile 
+0

Hai provato ad aumentare drasticamente le dimensioni del blocco? –

+0

@SkyKelsey, sì, ho provato in entrambi gli approcci; quando scriviamo i byte in un file in modo programmatico, dobbiamo occuparci della dimensione massima che un bytearray può contenere (Integer.MAX) e anche l'heap disponibile per la nostra app. In caso di comando dd, se provassimo una dimensione di byte più grande in una volta, non funziona; quindi forse convalida anche internamente. – jQueen

risposta

4

Ho provato la stessa cosa in passato. Il mio scopo era riempire tutta la memoria sul dispositivo. Dopo gli esperimenti ho scoperto che dd è il modo migliore per scrivere file di grandi dimensioni. La mia migliore velocità è stata quando ho usato 1 MB per le dimensioni del blocco. Ho usato file da 100 MB per avere la possibilità di bilanciare lo spazio libero sul dispositivo.

Scrittura file di 100 MB:

dd if=/dev/zero of=myfile.dat bs=1048576 count=100 

anche per gli esperimenti veloci che ho usato scritto app gratuita FillMemory

+0

un altro modo di riempire il dispositivo è di eseguire 'cat file1 >> file1' che su Android esegue il ciclo finché non si è esaurito lo spazio su disco :) –

1

1GB in mezzo minuto (30 secondi) è una velocità di scrittura superiore a 30 MB/s. Considerando che l'archiviazione esterna sulla maggior parte dei dispositivi Android in questi giorni è in realtà una scheda flash Secure Digital, tale velocità potrebbe essere la velocità dello maximum supportata dalla scheda o dall'interfaccia della scheda del dispositivo.

Se l'utilizzo di dd con una dimensione moderata del blocco (ad esempio bs=1M) non migliora le cose, è probabile che abbiate appena raggiunto i limiti dell'hardware corrente.