Svar

Alla appar (root eller inte) har en standarddatakatalog, vilket är /data/data/<package_name>. Som standard går appdatabaserna, inställningarna och all annan data hit. Om en app förväntar sig att stora mängder data ska lagras eller av andra skäl vill ”vara trevlig mot intern lagring”, finns det en motsvarande katalog på SDCard (Android/data/<package_name>).

Bortsett från det kan alla appar lagra data var som helst på SDCard, eftersom det inte finns några begränsningar – och många appar gör det. De kan använda katalognamn fritt (och det gör de igen), vilket är det som ofta gör det svårt att bestämma vad allt detta ”skräp” på kortet är avsett för, och vad av det kan raderas.

Men, som Tom pekade ut , skulle root-appar kunna lagra sina data nästan överallt på din enhet, de följer vanligtvis samma regler som andra appar.

Du kan hitta en allmän förklaring av Android-kataloghierarkin i mitt svar här . För din specifika fråga kan jag lägga till lite mer information om /data/data/<package_name> (och motsvarande SD-del):

  • databases/: här går appens databaser
  • lib/: bibliotek och hjälpare för appen
  • files/: andra relaterade filer
  • shared_prefs/: inställningar och inställningar
  • cache/: ja, cachar

Det kan finnas flera fler kataloger på den här platsen eller färre – allt beror på appen. I sin egen ”hemkatalog” (och det är vad det egentligen är, talat Linuxmässigt) kan de placera filer där de vill. Vanligtvis är dessa filer och kataloger bara tillgängliga av själva appen (och root, naturligtvis) – andra än de som är lagrade på SDCard, som är tillgängliga för alla appar.

Kommentarer

Svar

Några större förändringar inträffade i lagring i Android 4.4 (se Androids Storage Journey ). Så följande gäller generellt för Android 4.4+ och särskilt 6+.

Detta är från mitt detaljerade svar på Hur diskutrymme används på Android-enheter? . Apps ”-filer sparas (av systemet och själva appen) till intern och extern lagring under olika 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 
  • Allt ovan banor på intern och extern lagring (primär och sekundär) är appens privata kataloger som är tillgängliga för respektive app utan att begära något tillstånd. Appar kan också skapa andra kataloger (inte uttryckligen tillgängliga via API: er) i sin privata lagring. Alla dessa kataloger som tillhör en app raderas när appen avinstalleras.

  • Dessutom kan appar lägga sina data var som helst på primär extern lagring (inklusive några standardkataloger och andra appar” privata kataloger) om WRITE_EXTERNAL_STORAGE behörighet beviljas (getExternalStorageDirectory returnerar /storage/emulated/<user_id>). För sekundär extern lagring och flyttbar lagring används SAF. Se detaljer i Hur sparar man filer på externt SD-kort? .

    I Android 10 är dock skrivning direkt till primär extern delad lagring föråldrad (getExternalStorageDirectory och getExternalStoragePublicDirectory inte mer tillgängligt). Appar måste använda en av Android: s inbyggda innehållsleverantörer; antingen MediaStore (för mediefiler) eller SAF (för alla andra typer av filer).

  • /data sökvägar kan ersättas med /mnt/expand/[UUID] när du använder Adoptable Storage. /storage/emulated ersätts med /storage/[UUID] när du använder sekundär extern lagring (som SD-kort).

  • För flera användare / profiler <user_id> är annorlunda, enhetsägaren är alltid 0 . /data/user/0 är en symlänk till /data/data av historiska skäl. Sekundärt externt lagringsutrymme är endast tillgängligt för enhetsägaren.

  • OBB-katalogen delas mellan användare / profiler (upp till Android 9) för att spara utrymme. FUSE / sdcardfs exponerar alltid /storage/emulated/obb som /storage/emulated/<user_id>/Android/obb.

  • /data/user_de är Enhetskrypterad lagring på FBE-enheter som låter vissa appar köras vid start utan att begära användaruppgifter.

  • /data/misc/profiles används av ART för profilstyrd sammanställning av appkod.

  • Beskrivning av varje katalog framgår något av namnen, detaljer kan ses i API-dokumentation .

  • Cacheminnen rensas av operativsystemet när de har låg lagringsutrymme, så att appar som överstiger den tilldelade kvoten överst.

  • Appar ”privata files kataloger i extern lagring skannas inte automatiskt av MediaScanner men media kataloger är.

  • Cachar och no_backup -kataloger säkerhetskopieras inte till molnet. Se officiell dokumentation .

Svar

Svaret på din fråga du ställer är för stort. Jag kan dock ge dig ett grundläggande svar som täcker grunderna.

Det finns två typer av appar:
Root och non-root .

Root appar kan i princip lagra / ändra filer var de vill.

Icke-root appar kan bara lagra / ändra filer här: /sdcard/ och varje mapp som kommer efter.
De flesta installerade appar lagrar sig själva på /sdcard/Android/data eller /sdcard/Android/obb.
Några appar lagrar sina sparade spel / konfigurationsdatafiler på /sdcard/APPNAME/, eller bara på /sdcard/

För att kunna använda root -appar, du måste ha rotat din Android-enhet och har gett tillstånd från en av superanvändarapparna.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *