2012-06-26 13 views
6

In Android, qual è la differenza tra la memoria esterna non rimovibile (interna) e la memoria interna? Non sono sicuro di dove salvare i miei dati. Ho solo bisogno di risparmiare statistiche di gioco che una persona può tirare in qualsiasi momento voglionomemoria interna esterna

Grazie

risposta

13

In molti dispositivi più recenti non ci sarà più alcuna distinzione fisica, con storage "interno" ed "esterno" che condivide gli stessi chip flash senza necessariamente avere un'assegnazione fissa, quindi la differenza rimane davvero uno dei paradigmi di accesso previsti.

I file sulla memoria esterna (reale o simulata) sono inevitabilmente condivisi con tutto e modificabili da qualsiasi cosa con tale autorizzazione manifesta. Tradizionalmente sono facilmente visibili, sebbene con i recenti dispositivi di accesso MTP il sistema potrebbe dover essere informato prima che un PC connesso li veda.

Al contrario, i file nella memoria interna sono privati ​​di un'applicazione, ad eccezione di qualsiasi cosa venga eseguita come root o sistema, o se l'applicazione ha deciso di renderli generalmente visibili o modificabili. Anche quando accessibili, i dati sulla memoria interna possono essere più difficili da accedere all'esterno dell'app proprietaria - non è supportato dai meccanismi di archiviazione di massa USB o MTP destinati al consumatore e anche per altre app e strumenti di sviluppo è difficile da individuare a meno che tu sapere dove guardare, dato che è possibile esaminare le cartelle di file che le applicazioni hanno scelto di condividere, non è possibile sfogliare le cartelle principali (in genere/dati o/dati/app). Può essere un po 'frustrante anche per lo sviluppatore di un'app accedere ai file che crea sull'archiviazione privata durante il debugging (sebbene mentre l'apk è debuggabile è possibile con lo strumento run-as e adb, oppure puoi costruire una capacità di esportazione nella app, o eseguito sull'emulatore dove adb è root).

Probabilmente il processo decisionale dovrebbe essere qualcosa del genere: è pensato per essere privato per l'applicazione proprietaria? In tal caso, inseriscilo nella memoria interna, a meno che non sia troppo grande e mirato ai dispositivi più vecchi, nel qual caso potrebbe essere necessario crittografare e/o firmare per la protezione prima di metterlo nella memoria esterna. Altrimenti, se è destinato a essere condiviso, deve essere consegnato ad altri componenti arbitrari (app di posta elettronica, ecc.) O è grande, metterlo nella memoria esterna.

+0

PErfect. Grazie per la risposta dettagliata. Suppongo che ogni dispositivo abbia una memoria esterna giusta? Voglio dire che non ho bisogno di preoccuparmi di non avere una memoria esterna e il mio mancato funzionamento del meccanismo di salvataggio – Snake

+0

No, non si può presumere che ogni dispositivo abbia una memoria esterna. Originariamente, ogni dispositivo con Android Market ne aveva uno, ma una scheda sdcard rimovibile potrebbe essere rimossa o persa e altri dispositivi potrebbero non essere spediti con uno. Ancora più importante, sui dispositivi con modalità di archiviazione di massa USB, le applicazioni perdono l'accesso alla memoria esterna mentre viene installata dal PC. Ciò non significa che devi operare quando non c'è spazio di archiviazione esterno, ma dovresti lamentarti con l'utente in modo informativo piuttosto che fallire. Ad esempio il browser rifiuterà di scaricare qualsiasi cosa senza uno. –

+0

Perfetto grazie mille per il tuo aiuto – Snake

7

in Android, che cosa è la differenza tra di archiviazione esterna che è rimovibile (interna) e la memoria interna?

La memoria esterna non ha mai significato rimovibile. Significava sempre "accessibile dall'utente collegando un cavo USB e montandolo come unità su un computer host". I primi dispositivi Android si sono verificati per avere una memoria esterna rimovibile, ma questa non è mai stata la definizione.

La memoria interna è una memoria non accessibile dall'utente, ad eccezione delle app installate (o del rooting dei loro dispositivi).

+0

O in una misura che le app consentono con le impostazioni del file, tramite ADB. –

1

Oltre alla risposta di Chris, se si è preoccupati dell'archiviazione esterna (scheda SD), non essendo disponibile, è sufficiente controllare questo ogni volta che l'app viene caricata e quindi richiamare le informazioni di rilascio.

si può usare qualcosa di simile:

if(isSDPresent) 
{ 
    // SD Card is present 
    // Your code goes here, files will be located @ /mnt/sdcard/Android/data/packagename 
} 
else 
{ 
    // SD Card is not presenet 
    // files located here /data/data/packagename 
} 

Se si sta testando su un emulatore, è possibile caricare le vostre DDMS e trovare tutti i file memorizzati nei luoghi revlent.

Spero che questo aiuti.

Problemi correlati