Odpověď

Všechny aplikace (root nebo ne) mají výchozí datový adresář, který je /data/data/<package_name>. Ve výchozím nastavení jsou databáze aplikací, nastavení a všechna ostatní data zde. Pokud aplikace očekává, že bude uloženo obrovské množství dat, nebo z jiných důvodů chce „být příjemná k internímu úložišti“, je na SDCard odpovídající adresář (Android/data/<package_name>).

Kromě toho mohou všechny aplikace ukládat data kdekoli na kartu SDCard, protože neexistují žádná omezení – a mnoho aplikací tak činí. Mohou volně používat názvy adresářů (a opět to dělají), což je často ztěžuje rozhodování, k čemu je to „haraburdí“ na kartě určeno a co z toho lze smazat.

Ačkoli, jak ukázal Tom out , root-apps could store their data almost anywhere on your device, they usually follow the same rules as other apps.

Obecné vysvětlení hierarchie adresářů Android najdete v moje odpověď zde . Pro vaši konkrétní otázku bych mohl přidat další podrobnosti k /data/data/<package_name> (a odpovídající části SD):

  • databases/: zde přejděte do databází aplikace
  • lib/: knihovny a pomocníci pro aplikaci
  • files/: další související soubory
  • shared_prefs/: předvolby a nastavení
  • cache/: no, cache

Na tomto místě může být několik dalších adresářů nebo méně – vše závisí na aplikaci. Ve svém vlastním „domovském adresáři“ (a to je to, co v podstatě je, mluveně Linuxově) mohou umisťovat soubory kam chtějí. Obvykle jsou tyto soubory a adresáře přístupné pouze samotné aplikaci (a samozřejmě rootovi). – jiné než ty, které jsou uloženy na kartě SDCard a jsou přístupné všem aplikacím.

Komentáře

  • Komentáře nejsou určeny pro rozšířenou diskusi; tato konverzace má byl přesunut do chatu .

Odpovědět

V úložišti v systému Android 4.4 došlo k několika zásadním změnám (viz Cesta úložiště Androidu ). Pro Android 4.4+ a zejména 6+ platí obecně následující.

Toto je z mé podrobné odpovědi na Jak se místo na disku používá v zařízení Android? . Soubory aplikací „se ukládají (systémem a samotnou aplikací) do interního a externího úložiště v různých kategoriích.

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 
  • Všechny výše uvedené cesty na interním a externím úložišti (primární a sekundární) jsou soukromé adresáře aplikace, které jsou přístupné příslušné aplikaci bez požadavku jakéhokoli povolení. Aplikace mohou také vytvářet další adresáře (nejsou explicitně dostupné prostřednictvím rozhraní API) ve svém soukromém úložišti. Všechny tyto adresáře patřící k aplikaci jsou odstraněny, když je aplikace odinstalována.

  • Kromě toho mohou aplikace ukládat svá data kamkoli na primární externí úložiště (včetně některých standardní adresáře a soukromé aplikace“ jiných adresářů), pokud je WRITE_EXTERNAL_STORAGE uděleno oprávnění (getExternalStorageDirectory vrací /storage/emulated/<user_id>). Pro sekundární externí úložiště a vyměnitelné úložiště se používá SAF. Podrobnosti najdete v Jak ukládat soubory na externí SD kartu? .

    V systému Android 10 je však podpora přímo do primárního externího sdíleného úložiště zastaralá (getExternalStorageDirectory a getExternalStoragePublicDirectory jsou Aplikace již musí používat jednoho z poskytovatelů obsahu integrovaného v systému Android; buď MediaStore (pro mediální soubory) nebo SAF (pro jakýkoli jiný typ souborů).

  • /data cesty mohou být nahrazeny /mnt/expand/[UUID] při použití Adoptable Storage. /storage/emulated bude nahrazen /storage/[UUID] při použití sekundárního externího úložiště (jako je SD karta).

  • Pro více uživatelů / profilů <user_id> se liší, vlastník zařízení je vždy 0 . /data/user/0 je symbolický odkaz na /data/data z historických důvodů. Sekundární externí úložiště je k dispozici pouze vlastníkovi zařízení.

  • Adresář OBB je sdílen mezi uživateli / profily (až Android 9), aby se ušetřilo místo. FUSE / sdcardfs vždy vystavuje /storage/emulated/obb jako /storage/emulated/<user_id>/Android/obb.

  • /data/user_de je zařízení šifrované úložiště na zařízeních FBE, které umožňuje spouštění určitých aplikací při zavádění bez požadavku na pověření uživatele.

  • /data/misc/profiles používá ART pro profilovou kompilaci kódu aplikace.

  • Popis každého adresáře je poněkud patrný z názvů, podrobnosti najdete v dokumentaci API .

  • Mezipaměti jsou operačním systémem vymazány, když jim dochází úložný prostor, takže aplikace překračují přidělenou kvótu navrchu.

  • Aplikace „soukromé files adresáře v externím úložišti nejsou automaticky skenovány MediaScanner , ale media adresáře jsou.

  • Cache a no_backup adresáře nejsou zálohovány do cloudu. Viz oficiální dokumentace .

Odpověď

Odpověď na vaši otázku, kterou se ptáte, je příliš velká. Mohu vám však dát základní odpověď, která zahrnuje základní informace.

Existují dva druhy aplikací:
root a non-root .

root Aplikace mohou v zásadě ukládat / upravovat soubory, kdekoli chtějí.

Aplikace bez oprávnění root mohou ukládat / upravovat soubory pouze zde: /sdcard/ a všechny následující složky.
Instalované aplikace se většinou ukládají na /sdcard/Android/data nebo /sdcard/Android/obb.
Některé aplikace ukládají své uložené hry / konfigurační datové soubory na /sdcard/APPNAME/ nebo jen na /sdcard/

Aby bylo možné používat Aplikace root , budete muset mít rootované zařízení Android a musíte mít povolení od jedné z aplikací superuživatele.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *