Válasz

Minden alkalmazásnak (root vagy nem) van alapértelmezett adatkönyvtára, amely /data/data/<package_name>. Alapértelmezés szerint az alkalmazások adatbázisai, beállításai és minden más adat ide kerül. Ha egy alkalmazás hatalmas mennyiségű adat tárolására számít, vagy más okokból “kedves lehet a belső tárhelyhez”, akkor az SDCardon található megfelelő könyvtár (Android/data/<package_name>).

Ettől eltekintve minden alkalmazás adatokat tárolhat az SDCard bárhol, mivel nincsenek megkötések – és sok alkalmazás ezt megteszi. Szabadon használhatják a könyvtárneveket (és újra megteszik), ami gyakran megnehezíti annak eldöntését, hogy mire szolgál ez a kártyán szereplő “szemét”, és mi törölhető belőle.

Bár Tom rámutatott ki , a root-alkalmazások szinte mindenhol tárolhatják adataikat az eszközödön, általában ugyanazokat a szabályokat követik, mint más alkalmazások.

Az Android könyvtárhierarchiájának általános magyarázatát a itteni válaszom . Az Ön konkrét kérdéséhez további részleteket adhatok a /data/data/<package_name> -ről (és a megfelelő SD-részről):

  • databases/: itt az alkalmazás adatbázisai
  • lib/: könyvtárak és segítők az alkalmazáshoz
  • files/: egyéb kapcsolódó fájlok
  • shared_prefs/: beállítások és beállítások
  • cache/: Nos, gyorsítótárak

Lehet, hogy ezen a helyen több, vagy kevesebb könyvtár található – minden az alkalmazástól függ. Saját “otthoni könyvtárában” (és ez az, ami alapvetően, Linuxon beszélve) elhelyezhetnek fájlokat ott, ahol akarnak. Ezeket a fájlokat és könyvtárakat általában csak maga az alkalmazás (és természetesen a root) érheti el. – az SDCardon tároltaktól eltérően, amelyekhez minden alkalmazás hozzáférhet.

Megjegyzések

Válasz

Néhány jelentős változás történt az Android 4.4-es tárhelyen (lásd: Android tárolási útja ). Tehát az alábbiak általában igazak az Android 4.4+ és különösen a 6+ verzióra.

Ez a részletes válaszomra vonatkozik, hogyan használják a lemezterületet az Android-eszközök? . Az alkalmazások fájljait (a rendszer és maga az alkalmazás) különféle kategóriákban belső és külső tárhelyre menti.

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 
  • A fentiek mindegyike A belső és külső (elsődleges és másodlagos) tárhely elérési útjai az alkalmazás privát címjegyzékei, amelyek az adott alkalmazás számára engedély nélkül kérhetők. Az alkalmazások egyéb könyvtárakat is létrehozhatnak (amelyek nem kifejezetten elérhetőek az API-kon keresztül) a privát tárhelyükön. Ezeket az alkalmazáshoz tartozó könyvtárakat az alkalmazás eltávolításakor törlik.

  • Ezenkívül az alkalmazások bárhová el tudják helyezni adataikat az elsődleges külső tárhelyen (beleértve néhányat szabványos könyvtárak és más alkalmazások” privát könyvtárai “, ha WRITE_EXTERNAL_STORAGE engedélyt adnak (getExternalStorageDirectory visszatér /storage/emulated/<user_id>). Másodlagos külső tárhelyhez és cserélhető tárolóhoz SAF-t használnak. Részletek a részben találhatók: Hogyan menthetünk fájlokat külső SD-kártyára? .

    Azonban az Android 10 operációs rendszerben az elsődleges külső megosztott tárhelyre történő írás elavult (getExternalStorageDirectory és getExternalStoragePublicDirectory az alkalmazásoknak az Android egyik beépített tartalomszolgáltatóját kell használniuk; vagy MediaStore (médiafájlokhoz), vagy SAF (bármilyen más típusú fájlhoz).

  • elérési utak helyére /mnt/expand/[UUID] kerülhet, ha az Adoptable Storage-t használja. /storage/emulated másodlagos külső tárhely (például SD-kártya) használata esetén /storage/[UUID] váltja fel.

  • Több felhasználó / profil esetén a <user_id> más, az eszköz tulajdonosa mindig 0 . A /data/user/0 történelmi okokból a /data/data szimbolikus link. A másodlagos külső tárhely csak az eszköz tulajdonosának áll rendelkezésre.

  • Az OBB könyvtárat megosztják a felhasználók / profilok (akár Android 9-ig) a helytakarékosság érdekében. A FUSE / sdcardfs /storage/emulated/obb mindig /storage/emulated/<user_id>/Android/obb.

  • iv /data/user_de az eszköz titkosított tárolója az FBE eszközökön, amely lehetővé teszi bizonyos alkalmazások indításakor történő futtatását a felhasználói hitelesítő adatok kérése nélkül.

    /data/misc/profiles az ART használja az alkalmazáskód profilvezérelt összeállításához .

  • Az egyes könyvtárak leírása kissé nyilvánvaló a nevekből, a részletek a API dokumentációban láthatók.

  • A gyorsítótárakat az operációs rendszer törli, ha kevés a tárhely, így a kiosztott kvótát meghaladó alkalmazások a tetején maradnak.

  • “private iv id =” b78ee93370 “alkalmazások A külső tárhelyen található

könyvtárakat nem automatikusan ellenőrzi a MediaScanner , de a media könyvtárakat.

  • A gyorsítótárakról és a no_backup könyvtárakról nem készül felhőalapú mentés. Lásd: hivatalos dokumentáció .

  • Válasz

    A feltett kérdésre a válasz túl nagy. Tudok azonban adni egy alapvető választ, amely az alapokat tartalmazza.

    Kétféle alkalmazás létezik:
    Root és nem root .

    Root A alkalmazások alapvetően tárolhatják / módosíthatják a fájlokat, ahol csak akarják.

    A nem root alkalmazások csak itt tárolhatnak / módosíthatnak fájlokat: /sdcard/ és minden mappát, ami utána következik.
    Leginkább a telepített alkalmazások tárolják magukat a /sdcard/Android/data vagy /sdcard/Android/obb címen.
    Néhány az alkalmazások a mentett játékokat / konfigurációs adatfájljaikat az /sdcard/APPNAME/ vagy az /sdcard/

    fájlokba tárolják. root alkalmazások, akkor gyökeret kell szerezned androidos eszközödről, és engedélyt kell adnod az egyik superuser alkalmazásból.

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük