vastaus

Kaikilla sovelluksilla (juurella tai ei) on oletusdatahakemisto, joka on /data/data/<package_name>. Oletuksena sovellustietokannat, asetukset ja kaikki muut tiedot menevät tähän. Jos sovellus odottaa valtavien tietomäärien tallentamista tai haluaa muista syistä olla ”miellyttävä sisäiselle tallennustilalle”, SDCardissa on vastaava hakemisto (Android/data/<package_name>).

Sen lisäksi kaikki sovellukset voivat tallentaa tietoja mihin tahansa SDCard-kortille, koska mitään rajoituksia ei ole – ja monet sovellukset tekevät niin. He voivat käyttää hakemistojen nimiä vapaasti (ja tekevät jälleen), mikä on usein vaikeuttaa sen päättämistä, mihin kaikki kortin ”roskat” on tarkoitettu ja mikä se voidaan poistaa.

Kuitenkin, kuten Tom huomautti ulos , juurisovellukset voisivat tallentaa tietonsa melkein kaikkialle laitteeseesi, ne noudattavat yleensä samoja sääntöjä kuin muut sovellukset.

Löydät yleisen selityksen Android-hakemistohierarkiasta kohdasta vastaukseni tähän . Voit lisätä tiettyyn kysymykseesi lisätietoja /data/data/<package_name>: stä (ja vastaavaan SD-osaan):

  • databases/: siirry sovelluksen tietokantoihin
  • lib/: sovelluksen kirjastot ja apulaitteet
  • files/: muut liittyvät tiedostot
  • shared_prefs/: asetukset ja asetukset
  • cache/: hyvin, välimuistit

Tässä paikassa voi olla useita tai vähemmän hakemistoja – kaikki riippuu sovelluksesta. Omassa ”kotihakemistossa” (ja juuri siinä se on, puhuttu Linux-tavalla) he voivat sijoittaa tiedostoja haluamaansa paikkaan. Yleensä nämä tiedostot ja hakemistot ovat vain sovelluksen itsensä (ja tietysti pääkäyttäjän) käytettävissä. – muut kuin SDCard-kortille tallennetut, joihin kaikki sovellukset pääsevät.

Kommentit

  • Kommentteja ei ole tarkoitettu laajempaan keskusteluun; tätä keskustelua on käyty siirretty chatiin .

vastaus

Joitakin merkittäviä muutoksia tapahtui Android 4.4: n tallennustilassa (katso Androidin tallennusmatka ). Joten seuraava pätee yleensä Android 4.4+ -käyttöjärjestelmään ja erityisesti 6+ -käyttöjärjestelmään.

Tämä on minun yksityiskohtaisesta vastauksestani kysymykseen Kuinka levytilaa käytetään Android-laitteessa? . Sovellusten tiedostot tallennetaan (järjestelmän ja sovelluksen itsensä mukaan) sisäiseen ja ulkoiseen tallennustilaan eri luokkiin.

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 
  • Kaikki yllä olevat sisäisen ja ulkoisen tallennustilan polut (ensisijainen ja toissijainen) ovat sovelluksen yksityisiä hakemistoja, joihin kyseinen sovellus pääsee ilman lupaa. Sovellukset voivat myös luoda muita hakemistoja (joita ei ole nimenomaisesti saatavana sovellusliittymien kautta) yksityiseen tallennustilaansa. Kaikki nämä sovellukseen kuuluvat hakemistot poistetaan, kun sovellus poistetaan.

  • Lisäksi sovellukset voivat sijoittaa tietonsa mihin tahansa ensisijaiseen ulkoiseen tallennustilaan (mukaan lukien jotkut vakiohakemistot ja muut sovellusten yksityiset hakemistot, jos WRITE_EXTERNAL_STORAGE -oikeus myönnetään (getExternalStorageDirectory palauttaa /storage/emulated/<user_id>). Toissijaista ulkoista tallennustilaa ja irrotettavaa tallennustilaa varten käytetään SAF: ää. Katso yksityiskohdat kohdasta Kuinka tiedostot tallennetaan ulkoiselle SD-kortille? .

    Kuitenkin Android 10: ssä suoraan ensisijaiseen ulkoiseen jaettuun tallennustilaan kirjoittaminen on vanhentunut (getExternalStorageDirectory ja getExternalStoragePublicDirectory ovat ei enää saatavilla). Sovellusten on käytettävä yhtä Androidin sisäänrakennetusta sisällöntarjoajasta. joko MediaStore (mediatiedostoille) tai SAF (minkä tahansa muun tyyppiset tiedostot).

  • /data -polut voidaan korvata /mnt/expand/[UUID] -toiminnolla, kun käytetään Adoptable Storage -tallennustilaa. /storage/emulated korvataan nimellä /storage/[UUID] käytettäessä toissijaista ulkoista tallennustilaa (kuten SD-korttia).

  • Useille käyttäjille / profiileille <user_id> on erilainen, laitteen omistaja on aina 0 . /data/user/0 on symboli linkkiin /data/data historiallisista syistä. Toissijainen ulkoinen tallennustila on vain laitteen omistajan käytettävissä.

  • OBB-hakemisto jaetaan käyttäjien / profiilien (enintään Android 9) kesken tilan säästämiseksi. FUSE / sdcardfs paljastaa aina /storage/emulated/obb nimellä /storage/emulated/<user_id>/Android/obb.

  • /data/user_de on laitteen salattu tallennustila FBE-laitteilla, jonka avulla tietyt sovellukset voivat käynnistyä käynnistämättä käyttäjän tunnuksia.

    /data/misc/profiles käytetään ART: lla sovelluskoodin profiiliohjattuun kokoamiseen .

  • Kunkin hakemiston kuvaus käy hieman ilmi nimistä, yksityiskohdat näkyvät -sovellusliittymän ohjeissa .

  • Käyttöjärjestelmä tyhjentää välimuistit, kun tallennustila on vähissä, jolloin sovellukset ylittävät sallitun kiintiön.

  • Sovellukset ”private files ulkoisen tallennustilan hakemistoja ei skannaa automaattisesti MediaScanner , mutta media hakemistoja.

  • Välimuistit ja no_backup hakemistot eivät ole varmuuskopioitu pilveen. Katso virallinen dokumentaatio .

Vastaa

Vastaus kysymykseesi on liian iso. Voin kuitenkin antaa sinulle perusvastauksen, joka kattaa perusasiat.

On olemassa kahdenlaisia sovelluksia:
Root ja non root .

Root -sovellukset voivat periaatteessa tallentaa / muokata tiedostoja missä tahansa.

Ei-root -sovellukset voivat tallentaa / muokata tiedostoja vain tähän: /sdcard/ ja kaikki seuraavat kansiot.
Asennetut sovellukset tallentavat enimmäkseen osoitteisiin /sdcard/Android/data tai /sdcard/Android/obb.
Jotkut sovellukset tallentavat tallennetut pelit / määritystiedostot tiedostoon /sdcard/APPNAME/ tai vain /sdcard/

Voit käyttää root -sovellukset, sinun on oltava juurtunut Android-laitteellesi ja antanut luvan joltakin pääkäyttäjäsovelluksista.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *