Dove le app Android memorizzano i dati?


98

Risposte:


92

Tutte le app (root o no) hanno una directory di dati predefinita, che è /data/data/<package_name>. Per impostazione predefinita, i database delle app, le impostazioni e tutti gli altri dati vanno qui. Se un'app si aspetta che vengano archiviate enormi quantità di dati o che per altri motivi voglia "essere gentile con la memoria interna", c'è una directory corrispondente sulla SDCard ( Android/data/<package_name>).

A parte questo, tutte le app possono archiviare dati ovunque sulla SDCard, poiché non ci sono restrizioni e molte app lo fanno. Possono usare liberamente i nomi delle directory (e lo fanno ancora), il che è ciò che spesso rende difficile decidere a cosa è destinato tutto quel "junk" sulla scheda e che cosa può essere eliminato.

Sebbene, come sottolineato da Tom , le app di root possano archiviare i loro dati quasi ovunque sul tuo dispositivo, di solito seguono le stesse regole di altre app.

Puoi trovare una spiegazione generale della gerarchia di directory Android nella mia risposta qui . Per la tua domanda specifica potrei aggiungere qualche dettaglio in più /data/data/<package_name>(e la corrispondente parte SD):

  • databases/: qui vai ai database dell'app
  • lib/: librerie e helper per l'app
  • files/: altri file correlati
  • shared_prefs/: preferenze e impostazioni
  • cache/: bene, cache

Potrebbero esserci molte più directory in questo posto o meno - tutto dipende dall'app. Nella sua "home directory" (ed è quello che è fondamentalmente, parlato in Linux) possono posizionare i file dove vogliono. Di solito, questi file e directory sono accessibili solo dall'app stessa (e ovviamente dal root) - diversi da quelli memorizzati sulla SDCard, che sono accessibili da tutte le app.


1
E ' /data/data/<name>/files/in cui i file creati come descritto in developer.android.com/guide/topics/data/... sarebbe andato? Cioè quelli aperti con FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Nessuno il

In generale, questa è già una buona risposta, ma per quanto riguarda l'aggiunta di riferimenti a developer.android.com/guide/topics/data/… su quale directory è correlata a quale descrizione astratta / agnostica lì?
Nessuno il

@Nobody 2) perché quella pagina è fortemente orientata agli sviluppatori, mentre questo sito è orientato all'utente finale? Lo stesso vale per 1) Non sono uno sviluppatore e questo richiede dettagli di sviluppo. Scusate.
Izzy

1
Non ho una scheda SD, e nel mio Android 6 e Android 7, Whatsapp memorizzato un sacco di dati in /storage/emulated/0/WhatsApp/(sottodirectory .Shared, .trash, Backups, Databases, Media), compresi tutti i media. Non so se questo sia in aggiunta a \data\data..., non posso accedere a questa directory ora. Forse questo è cambiato tra le versioni.
sancho.s,

1
@Shayan la directory principale ( /) non si trova sulla scheda SD. Scheda SD significa di seguito /sdcard(scheda interna, punti a /storage/emulated/<user>) o il percorso corrispondente della scheda esterna. E no, non posso spiegare tutte le possibili posizioni che alcune app potrebbero usare, mi dispiace; AFAIK /data/miscè gestito dal sistema Android stesso, quindi le "semplici app" dovrebbero al massimo avere accesso in lettura lì. Mai incontrato data/user_de(dato che è un percorso relativo, non so dove intendi comunque).
Izzy

9

La risposta alla tua domanda che stai ponendo è troppo grande. Posso, tuttavia, darti una risposta di base che copre le basi.

Esistono due tipi di app:
root e non root .

Le app di root possono sostanzialmente archiviare / modificare i file dove vogliono.

Le app non root possono solo archiviare / modificare i file qui: /sdcard/e ogni cartella che segue.
Principalmente, le app installate si archiviano in /sdcard/Android/datao /sdcard/Android/obb.
Alcune app memorizzano i loro file di salvataggio dei giochi / file di configurazione /sdcard/APPNAME/o semplicemente nella /sdcard/

Per poter utilizzare le app di root , devi aver effettuato il root del tuo dispositivo Android e aver ottenuto l'autorizzazione da una delle app del superutente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.