Svar

Alle apper (root eller ikke) har en standard datakatalog, som er /data/data/<package_name>. Som standard går appdatabasene, innstillingene og alle andre data hit. Hvis en app forventer at store mengder data skal lagres, eller av andre grunner ønsker å «være hyggelig mot intern lagring», er det en tilsvarende katalog på SDCard (Android/data/<package_name>).

Bortsett fra det, kan alle apper lagre data hvor som helst på SDCard, ettersom det ikke er noen begrensninger – og mange apper gjør det. De kan bruke katalognavn fritt (og de gjør det igjen), det er det som ofte gjør det vanskelig å bestemme hva alt dette «søppelet» på kortet er ment for, og hva av det kan slettes.

Skjønt, som Tom pekte ut , kunne root-apper lagre dataene sine nesten overalt på enheten din, de følger vanligvis de samme reglene som andre apper.

Du kan finne en generell forklaring på Android-kataloghierarkiet i mitt svar her . For det spesifikke spørsmålet ditt kan jeg legge til noen flere detaljer på /data/data/<package_name> (og tilhørende SD-del):

  • databases/: her går appens databaser
  • lib/: biblioteker og hjelpere for appen
  • files/: andre relaterte filer
  • shared_prefs/: innstillinger og innstillinger
  • cache/: vel, cacher

Det kan være flere kataloger på dette stedet, eller færre – alt avhenger av appen. I sin egen «hjemmekatalog» (og det er det det egentlig er, snakkes Linuxmessig), kan de plassere filer der de vil. Vanligvis er disse filene og katalogene bare tilgjengelige av selve appen (og rot, selvfølgelig) – bortsett fra de som er lagret på SDCard, og som er tilgjengelige for alle apper.

Kommentarer

Svar

Noen store endringer skjedde i lagring i Android 4.4 (se Androids Storage Journey ). Så følgende gjelder generelt for Android 4.4+ og spesielt 6+.

Dette er fra mitt detaljerte svar på Hvordan diskplass brukes på Android-enheter? . Appers «filer lagres (av systemet og selve appen) til intern og ekstern lagring under forskjellige kategorier.

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 
  • Alt ovenfor stier på intern og ekstern lagring (primær og sekundær) er appens private kataloger som er tilgjengelige for respektive app uten å be om tillatelse. Apper kan også opprette andre kataloger (ikke eksplisitt tilgjengelig via API-er) i deres private lagring. Alle disse katalogene som tilhører en app slettes når appen avinstalleres.

  • I tillegg kan apper legge dataene sine hvor som helst på primær ekstern lagring (inkludert noen standardkataloger og andre apper» private kataloger) hvis WRITE_EXTERNAL_STORAGE tillatelse er gitt (getExternalStorageDirectory gir /storage/emulated/<user_id>). For sekundær ekstern lagring og flyttbar lagring brukes SAF. Se detaljer i Hvordan lagrer du filer på eksternt SD-kort? .

    I Android 10 avskrives imidlertid skriving direkte til primær ekstern delt lagring (getExternalStorageDirectory og getExternalStoragePublicDirectory ikke mer tilgjengelig). Apper må bruke en av Androids innebygde innholdsleverandører; enten MediaStore (for mediefiler) eller SAF (for alle andre typer filer).

  • /data baner kan bli erstattet med /mnt/expand/[UUID] når du bruker Adoptable Storage. /storage/emulated blir erstattet med /storage/[UUID] når du bruker sekundær ekstern lagring (som SD-kort).

  • For flere brukere / profiler er <user_id> annerledes, enhetseieren er alltid 0 . /data/user/0 er en symlink til /data/data av historiske årsaker. Sekundær ekstern lagring er bare tilgjengelig for enhetseieren.

  • OBB-katalogen deles mellom brukere / profiler (opptil Android 9) for å spare plass. FUSE / sdcardfs avslører alltid /storage/emulated/obb som /storage/emulated/<user_id>/Android/obb.

  • /data/user_de er Enhetskryptert lagring på FBE-enheter som lar bestemte apper kjøre ved oppstart uten å be om brukerlegitimasjon.

  • /data/misc/profiles brukes av ART for profilstyrt samling av appkode.

  • Beskrivelse av hver katalog fremgår noe av navn, detaljer kan sees i API-dokumentasjon .

  • Cacher tømmes av operativsystemet når de har lite lagringsplass, og holder apper som overskrider den tildelte kvoten på toppen.

  • Apper «private files kataloger i ekstern lagring skannes ikke automatisk av MediaScanner , men media kataloger er.

  • Cacher og no_backup kataloger blir ikke sikkerhetskopiert til skyen. Se offisiell dokumentasjon .

Svar

Svaret på spørsmålet du stiller er for stort. Jeg kan imidlertid gi deg et grunnleggende svar som dekker det grunnleggende.

Det finnes to typer apper:
Root og non-root .

Root apper kan i utgangspunktet lagre / endre filer hvor de vil.

Ikke-rot apper kan bare lagre / endre filer her: /sdcard/ og hver mappe som kommer etter.
De fleste installerte appene lagrer seg selv på /sdcard/Android/data eller /sdcard/Android/obb.
Noen apper lagrer sine lagrede spill / konfigurasjonsdatafiler på /sdcard/APPNAME/, eller bare på /sdcard/

For å kunne bruke root apps, må du ha rotet Android-enheten din og ha gitt tillatelse fra en av superbrukerappene.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *