Risposta

Tutte le app (root o meno) hanno una directory dati predefinita, che è /data/data/<package_name>. Per impostazione predefinita, i database delle app, le impostazioni e tutti gli altri dati vanno qui. Se unapp si aspetta che vengano archiviate enormi quantità di dati o per altri motivi vuole “essere piacevole per larchiviazione interna”, cè “una directory corrispondente sulla SDCard (Android/data/<package_name>).

A parte questo, tutte le app possono memorizzare dati ovunque sulla SDCard, poiché non ci sono restrizioni e molte app lo fanno. Possono usare liberamente i nomi delle directory (e lo fanno di nuovo), che è ciò che spesso rende difficile decidere a cosa sia destinata tutta quella “spazzatura” sulla scheda e cosa può essere eliminata.

Tuttavia, come Tom ha indicato out , le app di root potrebbero memorizzare i propri dati quasi ovunque sul tuo dispositivo, di solito seguono le stesse regole delle altre app.

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

  • databases/: ecco i database dellapplicazione
  • lib/: librerie e helper per lapp
  • files/: altri file correlati
  • shared_prefs/: preferenze e impostazioni
  • cache/: beh, cache

Potrebbero esserci molte più directory in questa posizione o meno: tutto dipende dallapp. Nella propria “home directory” (e questo è ciò che è fondamentalmente, parlato in termini di Linux) possono posizionare i file dove vogliono. Di solito, questi file e directory sono accessibili solo dallapp stessa (e root, ovviamente) – diversi da quelli memorizzati sulla SDCard, che sono accessibili da tutte le app.

Commenti

Risposta

Sono state apportate alcune modifiche importanti allo spazio di archiviazione in Android 4.4 (vedere Percorso di archiviazione di Android ). Quindi quanto segue è generalmente vero per Android 4.4+ e in particolare 6+.

Questo è tratto dalla mia risposta dettagliata a Come viene utilizzato lo spazio su disco sul dispositivo Android? . I file delle app vengono salvati (dal sistema e dallapp stessa) nella memoria interna ed esterna in diverse categorie.

DIRECTORY DESCRIPTION / API ===================================================================================== APP CODE ======== /data/app/<pkg>* (user apps installation directory) /data/app/<pkg>*/base.apk (original `.apk` file) /data/app/<pkg>*/lib/<arch>/*.so (shared libraries) /data/app/<pkg>*/oat/<arch>/base.[art|odex|vdex] (compiled executable code) /data/dalvik-cache/<arch>/*.[art|dex|oat|vdex] (compiled executable code, only for system apps) /data/misc/profiles/cur/<user_id>/<pkg>/primary.prof (ART profile) /data/misc/profiles/ref/<pkg>/primary.prof (ART profile) INTERNAL STORAGE ================ /data/user[_de]/<user_id>/<pkg> getDataDir /data/user[_de]/<user_id>/<pkg>/files getFilesDir /data/user[_de]/<user_id>/<pkg>/[code_]cache getCacheDir or getCodeCacheDir /data/user[_de]/<user_id>/<pkg>/databases getDatabasePath /data/user[_de]/<user_id>/<pkg>/no_backup getNoBackupFilesDir /data/user[_de]/<user_id>/<pkg>/shared_prefs getSharedPreferences EXTERNAL STORAGE ================ /storage/emulated/obb/<pkg>/*.obb (shared by multi-users, exposed in following view) /storage/emulated/<user_id>/Android/obb/<pkg>/*.<pkg>.obb getObbDirs /storage/emulated/<user_id>/Android/media/<pkg> getExternalMediaDirs /storage/emulated/<user_id>/Android/data/<pkg>/ /storage/emulated/<user_id>/Android/data/<pkg>/files getExternalFilesDirs /storage/emulated/<user_id>/Android/data/<pkg>/[code_]cache getExternalCacheDirs 
  • Tutte le risposte precedenti i percorsi sulla memoria interna ed esterna (primaria e secondaria) sono directory private delle app accessibili alle rispettive app senza richiedere alcuna autorizzazione. Le app possono anche creare altre directory (non esplicitamente disponibili tramite API) nella loro memoria privata. Tutte queste directory appartenenti a unapp vengono eliminate quando lapp viene disinstallata.

  • Inoltre le app possono mettere i propri dati ovunque nella memoria esterna principale (inclusi alcuni directory standard e altre app” directory private) se WRITE_EXTERNAL_STORAGE viene concessa lautorizzazione (getExternalStorageDirectory restituisce /storage/emulated/<user_id>). Per larchiviazione esterna secondaria e larchiviazione rimovibile viene utilizzato SAF. Vedi i dettagli in Come salvare i file su una scheda SD esterna? .

    Tuttavia, in Android 10 la scrittura direttamente nellarchivio condiviso esterno principale è obsoleta (getExternalStorageDirectory e getExternalStoragePublicDirectory sono non più disponibile) Le app devono utilizzare uno dei provider di contenuti integrati di Android; MediaStore (per file multimediali) o SAF (per qualsiasi altro tipo di file).

  • /data i percorsi possono essere sostituiti con /mnt/expand/[UUID] quando si utilizza Adoptable Storage. /storage/emulated viene sostituito con /storage/[UUID] quando si utilizza una memoria esterna secondaria (come la scheda SD).

  • Per più utenti / profili <user_id> è diverso, il proprietario del dispositivo è sempre 0 . /data/user/0 è un collegamento simbolico a /data/data per motivi storici. La memoria esterna secondaria è disponibile solo per il proprietario del dispositivo.

  • La directory OBB è condivisa tra utenti / profili (fino ad Android 9) per risparmiare spazio. FUSE / sdcardfs mostra sempre /storage/emulated/obb come /storage/emulated/<user_id>/Android/obb.

  • /data/user_de è larchiviazione Device Encrypted sui dispositivi FBE che consente lesecuzione di determinate app allavvio senza richiedere le credenziali dellutente.

  • /data/misc/profiles sono utilizzati da ART per la compilazione guidata dal profilo del codice dellapp.

  • La descrizione di ciascuna directory è in qualche modo evidente dai nomi, i dettagli possono essere visti nella documentazione API .

  • Le cache vengono cancellate dal sistema operativo quando lo spazio di archiviazione è insufficiente, mantenendo le app che superano la quota assegnata in cima.

  • App “private files le directory nella memoria esterna non vengono scansionate automaticamente da MediaScanner , ma le directory media lo sono.

  • Le cache e le directory no_backup non vengono sottoposte a backup nel cloud. Consulta la documentazione ufficiale .

Risposta

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

Esistono due tipi di app:
Root e non root .

Root le app possono sostanzialmente archiviare / modificare i file dove vogliono.

Le app non root possono archiviare / modificare i file solo qui: /sdcard/ e in ogni cartella cosa viene dopo.
Per lo più, le app installate si memorizzano da sole in /sdcard/Android/data o /sdcard/Android/obb.
Alcune le app memorizzano i propri salvataggi / file di dati di configurazione su /sdcard/APPNAME/ o solo su /sdcard/

Per poter utilizzare App root , dovrai aver effettuato il root del tuo dispositivo Android e aver dato il permesso da una delle app per superutente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *