Answer

Alle apps (root of niet) hebben een standaarddatadirectory, die /data/data/<package_name> is. Standaard gaan de apps-databases, instellingen en alle andere gegevens hierheen. Als een app verwacht dat enorme hoeveelheden gegevens worden opgeslagen, of om andere redenen “prettig zijn voor interne opslag”, “is er een overeenkomstige map op de SD-kaart (Android/data/<package_name>).

Afgezien daarvan kunnen alle apps gegevens overal op de SD-kaart opslaan, aangezien er geen beperkingen zijn – en veel apps doen dat. Ze kunnen directory-namen vrij gebruiken (en dat doen ze opnieuw), wat vaak maakt het moeilijk om te beslissen waarvoor al die “rotzooi” op de kaart bedoeld is, en wat ervan kan worden verwijderd.

Hoewel, zoals Tom wees out , kunnen root-apps hun gegevens bijna overal op uw apparaat opslaan, ze volgen meestal dezelfde regels als andere apps.

U vindt een algemene uitleg van de Android-directoryhiërarchie in mijn antwoord hier . Voor uw specifieke vraag zou ik wat meer details kunnen toevoegen over de /data/data/<package_name> (en bijbehorend SD-deel):

  • databases/: hier gaan de databases van de app
  • lib/: bibliotheken en helpers voor de app
  • files/: andere gerelateerde bestanden
  • shared_prefs/: voorkeuren en instellingen
  • cache/: nou ja, caches

Er kunnen op deze plaats meerdere of minder mappen zijn – het hangt allemaal af van de app. In hun eigen “homedirectory” (en dat is wat het eigenlijk is, Linux-wijs gesproken) kunnen ze bestanden plaatsen waar ze willen. Meestal zijn deze bestanden en mappen alleen toegankelijk voor de app zelf (en root, natuurlijk) – andere dan degene die zijn opgeslagen op de SD-kaart, die toegankelijk zijn voor alle apps.

Reacties

Antwoord

Er hebben zich enkele belangrijke wijzigingen voorgedaan in de opslag in Android 4.4 (zie Opslagreis van Android ). Het volgende is dus over het algemeen waar voor Android 4.4+ en in het bijzonder 6+.

Dit komt uit mijn gedetailleerde antwoord op Hoe schijfruimte wordt gebruikt op een Android-apparaat? . Apps “-bestanden worden opgeslagen (door het systeem en de app zelf) in interne en externe opslag onder verschillende categorieën.

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 
  • Al het bovenstaande paden op interne en externe opslag (primair en secundair) zijn privé-mappen van apps die toegankelijk zijn voor de betreffende app zonder toestemming te vragen. Apps kunnen ook andere mappen maken (niet expliciet beschikbaar via APIs) in hun privéopslag. Al deze mappen die bij een app horen, worden verwijderd wanneer de app wordt verwijderd.

  • Bovendien kunnen apps hun gegevens overal op primaire externe opslag plaatsen (inclusief enkele standaardmappen en andere apps” privémappen) als WRITE_EXTERNAL_STORAGE toestemming is verleend (getExternalStorageDirectory retourneert /storage/emulated/<user_id>). Voor secundaire externe opslag en verwijderbare opslag wordt SAF gebruikt. Zie details in Hoe bestanden op een externe SD-kaart opslaan? .

    In Android 10 is schrijven rechtstreeks naar primaire externe gedeelde opslag echter verouderd (getExternalStorageDirectory en getExternalStoragePublicDirectory zijn niet meer beschikbaar). Apps moeten een van de ingebouwde inhoudsproviders van Android gebruiken; ofwel MediaStore (voor mediabestanden) of SAF (voor elk ander type bestanden).

  • /data paden kunnen worden vervangen door /mnt/expand/[UUID] bij gebruik van Adoptable Storage. /storage/emulated wordt vervangen door /storage/[UUID] bij gebruik van secundaire externe opslag (zoals een SD-kaart).

  • Voor meerdere gebruikers / profielen is <user_id> anders, de eigenaar van het apparaat is altijd 0 . /data/user/0 is om historische redenen een symbolische link naar /data/data. Secundaire externe opslag is alleen beschikbaar voor de eigenaar van het apparaat.

  • OBB-directory wordt gedeeld tussen gebruikers / profielen (tot Android 9) om ruimte te besparen. FUSE / sdcardfs geeft /storage/emulated/obb altijd weer als /storage/emulated/<user_id>/Android/obb.

  • /data/user_de is de apparaatversleutelde opslag op FBE-apparaten waarmee bepaalde apps bij het opstarten kunnen worden uitgevoerd zonder om gebruikersgegevens te vragen.

  • /data/misc/profiles worden door ART gebruikt voor profielgestuurde compilatie van app-code.

  • Beschrijving van elke map is enigszins duidelijk uit namen, details zijn te zien in API-documentatie .

  • Caches worden gewist door het besturingssysteem wanneer de opslagruimte bijna op is, waardoor apps die de toegewezen quota overschrijden bovenaan blijven.

  • Apps “private files mappen in externe opslag worden “niet automatisch gescand door MediaScanner maar media mappen wel.

  • Van caches en no_backup -mappen wordt geen back-up gemaakt in de cloud. Zie officiële documentatie .

Antwoord

Het antwoord op uw vraag die u stelt, is te groot. Ik kan u echter een basisantwoord geven dat de basis omvat.

Er zijn twee soorten apps:
Root en niet-root .

Root apps kunnen in principe bestanden opslaan / wijzigen waar ze maar willen.

Niet-root apps kunnen hier alleen bestanden opslaan / wijzigen: /sdcard/ en elke map die daarna komt.
Meestal slaan de geïnstalleerde apps zichzelf op in /sdcard/Android/data of /sdcard/Android/obb.
Sommige apps slaan hun opgeslagen games / configuratiegegevensbestanden op /sdcard/APPNAME/, of gewoon op de /sdcard/

Om te kunnen gebruiken root apps, je moet je Android-apparaat hebben geroot en toestemming hebben gegeven van een van de superuser-apps.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *