Răspuns

Toate aplicațiile (rădăcină sau nu) au un director de date implicit, care este /data/data/<package_name>. În mod implicit, bazele de date, setările și toate celelalte date ale aplicațiilor merg aici. Dacă o aplicație se așteaptă să fie stocate cantități uriașe de date sau, din alte motive, dorește „a fi plăcută la stocarea internă”, există „un director corespunzător pe cardul SDC (Android/data/<package_name>).

În afară de aceasta, toate aplicațiile pot stoca date oriunde pe cardul SDC, deoarece nu există restricții – și multe aplicații fac acest lucru. Ele pot utiliza numele de directoare în mod liber (și o fac din nou), ceea ce este adesea face dificil să se decidă pentru ce este destinată acea „junk” de pe card și ce poate fi șters.

Deși, așa cum a subliniat Tom , aplicațiile rădăcină își pot stoca datele aproape oriunde pe dispozitivul dvs., de obicei respectă aceleași reguli ca și alte aplicații.

Puteți găsi o explicație generală a ierarhiei directorului Android în răspunsul meu aici . Pentru întrebarea dvs. specifică, aș putea adăuga câteva detalii suplimentare pe /data/data/<package_name> (și partea SD corespunzătoare):

  • databases/: aici mergeți bazele de date ale aplicației
  • lib/: biblioteci și ajutoare pentru aplicație
  • files/: alte fișiere conexe
  • shared_prefs/: preferințe și setări
  • cache/: bine, cache-uri

Ar putea exista mai multe directoare în acest loc sau mai puține – totul depinde de aplicație. În propriul „director de acasă” (și asta este ceea ce este practic, vorbit despre Linux), ei pot plasa fișiere acolo unde doresc. De obicei, aceste fișiere și directoare sunt accesibile numai de către aplicația însăși (și root, desigur) – altele decât cele stocate pe cardul SDC, care sunt accesibile de către toate aplicațiile.

Comentarii

  • Comentariile nu sunt pentru discuții extinse; această conversație are fost mutat în chat .

Răspuns

Au avut loc unele modificări majore în spațiul de stocare în Android 4.4 (consultați Journey Storage Android ). Deci, următoarele sunt în general valabile pentru Android 4.4+ și în special pentru 6+.

Aceasta este din răspunsul meu detaliat la Cum este utilizat spațiul pe disc pe dispozitivul Android? . Fișierele „aplicațiilor” sunt salvate (de către sistem și aplicație) în spațiul de stocare intern și extern în diferite categorii.

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 
  • Toate cele de mai sus căile de stocare internă și externă (primară și secundară) sunt directoare private ale aplicației care sunt accesibile pentru aplicația respectivă fără a solicita nicio permisiune. Aplicațiile pot crea, de asemenea, alte directoare (care nu sunt disponibile în mod explicit prin API) în spațiul lor de stocare privat. Toate aceste directoare aparținând unei aplicații sunt șterse când aplicația este dezinstalată.

  • În plus, aplicațiile își pot pune datele oriunde în spațiul de stocare extern principal (inclusiv unele directoare standard și alte” aplicații „directoare private) dacă se acordă permisiunea WRITE_EXTERNAL_STORAGE (getExternalStorageDirectory returnează /storage/emulated/<user_id>). Pentru stocarea externă secundară și stocarea amovibilă este utilizat SAF. Vedeți detaliile în Cum se salvează fișierele pe cardul SD extern? .

    Cu toate acestea, în Android 10 scrierea directă pe stocarea externă partajată principală este depreciată (getExternalStorageDirectory și getExternalStoragePublicDirectory sunt nu mai sunt disponibile). Aplicațiile trebuie să utilizeze unul dintre furnizorii de conținut încorporat pentru Android; fie MediaStore (pentru fișiere media), fie SAF (pentru orice alt tip de fișiere).

  • /data căile pot fi înlocuite cu /mnt/expand/[UUID] atunci când se utilizează Adoptable Storage. /storage/emulated este înlocuit cu /storage/[UUID] atunci când se utilizează stocarea externă secundară (cum ar fi cardul SD).

  • Pentru mai mulți utilizatori / profiluri <user_id> este diferit, proprietarul dispozitivului este întotdeauna 0 . /data/user/0 este un link simbolic către /data/data din motive istorice. Stocarea externă secundară este disponibilă numai pentru proprietarul dispozitivului.

  • Directorul OBB este partajat între utilizatori / profiluri (până la Android 9) pentru a economisi spațiu. FUSE / sdcardfs expune întotdeauna /storage/emulated/obb ca /storage/emulated/<user_id>/Android/obb.

  • /data/user_de este spațiul de stocare criptat pe dispozitivele FBE, care permite anumite aplicații să ruleze la pornire fără a cere acreditări de utilizator.

  • /data/misc/profiles sunt utilizate de ART pentru compilare ghidată de profil a codului aplicației.

  • Descrierea fiecărui director este oarecum evidentă din nume, detaliile pot fi văzute în documentația API .

  • Memoriile cache sunt șterse de sistemul de operare atunci când nu mai sunt stocate, păstrând aplicațiile care depășesc cota alocată.

  • Aplicațiile „private files directoarele din spațiul de stocare extern nu sunt scanate automat de MediaScanner , dar media sunt directoare.

  • Memoriile cache și no_backup nu sunt copiate în cloud. Consultați documentația oficială .

Răspuns

Răspunsul la întrebarea pe care îl puneți este prea mare. Cu toate acestea, vă pot oferi un răspuns de bază care acoperă elementele de bază.

Există două tipuri de aplicații:
Root și non-root .

Root Aplicațiile pot stoca / modifica fișierele oriunde doresc.

Aplicațiile non-root pot stoca / modifica fișiere doar aici: /sdcard/ și fiecare dosar care urmează.
În general, aplicațiile instalate se stochează la /sdcard/Android/data sau /sdcard/Android/obb.
Unele aplicațiile stochează fișierele de salvare a jocurilor / datelor de configurare pe /sdcard/APPNAME/ sau doar pe /sdcard/

Pentru a putea utiliza aplicații rădăcină , va trebui să vă fi rădăcinat dispozitivul Android și să fi acordat permisiunea uneia dintre aplicațiile pentru superutilizatori.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *