Odpowiedź

Wszystkie aplikacje (root lub nie) mają domyślny katalog danych, którym jest /data/data/<package_name>. Domyślnie bazy danych aplikacji, ustawienia i wszystkie inne dane znajdują się tutaj. Jeśli aplikacja spodziewa się przechowywania dużych ilości danych lub z innych powodów chce „być przyjazna dla pamięci wewnętrznej”, na karcie SDCard znajduje się odpowiedni katalog (Android/data/<package_name>).

Poza tym wszystkie aplikacje mogą przechowywać dane w dowolnym miejscu na karcie SDCard, ponieważ nie ma żadnych ograniczeń – i wiele aplikacji to robi. Mogą swobodnie używać nazw katalogów (i znowu to robią), co często sprawia, że trudno jest zdecydować, do czego są przeznaczone wszystkie te „śmieci” na karcie i co z nich można usunąć.

Chociaż, jak Tom wskazał obecnie , aplikacje root mogą przechowywać swoje dane prawie wszędzie na twoim urządzeniu, zwykle przestrzegają tych samych reguł, co inne aplikacje.

Ogólne wyjaśnienie hierarchii katalogów Androida można znaleźć w moja odpowiedź tutaj . W przypadku Twojego konkretnego pytania mogę dodać więcej szczegółów na temat /data/data/<package_name> (i odpowiedniej części SD):

  • databases/: tutaj przejdź do baz danych aplikacji
  • lib/: biblioteki i pomoce dla aplikacji
  • files/: inne powiązane pliki
  • shared_prefs/: preferencje i ustawienia
  • cache/: cóż, pamięci podręczne

W tym miejscu może być kilka katalogów więcej lub mniej – wszystko zależy od aplikacji. W swoim własnym „katalogu domowym” (i tak właśnie wygląda, w języku Linuksa) mogą umieszczać pliki tam, gdzie chcą. Zwykle te pliki i katalogi są dostępne tylko przez samą aplikację (i oczywiście root) – inne niż te zapisane na karcie SD, do których mają dostęp wszystkie aplikacje.

Komentarze

Odpowiedź

W systemie Android 4.4 zaszły poważne zmiany w pamięci masowej (patrz Podróż pamięci masowej Androida ). Tak więc, ogólnie rzecz biorąc, odnosi się do Androida 4.4+, a zwłaszcza 6+.

Pochodzi z mojej szczegółowej odpowiedzi na temat Jak miejsce na dysku jest wykorzystywane na urządzeniu z Androidem? . Pliki aplikacji są zapisywane (przez system i samą aplikację) w pamięci wewnętrznej i zewnętrznej w różnych kategoriach.

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 
  • Wszystkie powyższe ścieżki w pamięci wewnętrznej i zewnętrznej (podstawowej i pomocniczej) to prywatne katalogi aplikacji, które są dostępne dla odpowiedniej aplikacji bez pytania o pozwolenie. Aplikacje mogą również tworzyć inne katalogi (niedostępne bezpośrednio przez interfejsy API) w swoim prywatnym magazynie. Wszystkie te katalogi należące do aplikacji są usuwane podczas odinstalowywania aplikacji.

  • Ponadto aplikacje mogą umieszczać swoje dane w dowolnym miejscu w podstawowej pamięci zewnętrznej (w tym niektóre standardowe katalogi i inne aplikacje” prywatne katalogi), jeśli WRITE_EXTERNAL_STORAGE uprawnienie jest udzielone (getExternalStorageDirectory zwraca /storage/emulated/<user_id>). W przypadku dodatkowej pamięci zewnętrznej i pamięci wymiennej używany jest format SAF. Zobacz szczegóły w Jak zapisywać pliki na zewnętrznej karcie SD? .

    Jednak w systemie Android 10 zapisywanie bezpośrednio w podstawowej zewnętrznej pamięci współdzielonej jest przestarzałe (getExternalStorageDirectory i getExternalStoragePublicDirectory są nie są już dostępne). Aplikacje muszą korzystać z jednego z wbudowanych dostawców treści systemu Android; albo MediaStore (dla plików multimedialnych) albo SAF (dla każdego innego typu plików).

  • ścieżki mogą zostać zastąpione przez /mnt/expand/[UUID] podczas korzystania z Adoptable Storage. /storage/emulated zostaje zastąpiony przez /storage/[UUID], gdy używasz dodatkowej pamięci zewnętrznej (takiej jak karta SD).

  • W przypadku wielu użytkowników / profili <user_id> jest inny, właścicielem urządzenia jest zawsze 0 . /data/user/0 to link symboliczny do /data/data ze względów historycznych. Dodatkowa pamięć zewnętrzna jest dostępna tylko dla właściciela urządzenia.

  • Katalog OBB jest współdzielony przez użytkowników / profile (do Androida 9), aby zaoszczędzić miejsce. FUSE / sdcardfs zawsze eksponuje /storage/emulated/obb jako /storage/emulated/<user_id>/Android/obb.

  • /data/user_de to zaszyfrowana pamięć urządzenia na urządzeniach FBE, która umożliwia uruchamianie niektórych aplikacji podczas rozruchu bez pytania o dane uwierzytelniające użytkownika.

  • /data/misc/profiles są używane przez ART do kompilacji opartej na profilu kodu aplikacji.

  • Opis każdego katalogu jest nieco oczywisty z nazw, szczegóły można znaleźć w dokumentacji API .

  • Pamięć podręczna jest czyszczona przez system operacyjny, gdy zaczyna brakować miejsca, pozostawiając aplikacje przekraczające przydzielony limit na górze.

  • Aplikacje „prywatne files katalogi w pamięci zewnętrznej nie są „t automatycznie skanowane przez MediaScanner , ale katalogi media są.

  • Pamięci podręczne i katalogi no_backup nie są zapisywane w chmurze. Zobacz oficjalną dokumentację .

Odpowiedź

Odpowiedź na Twoje pytanie jest za duża. Mogę jednak udzielić podstawowej odpowiedzi, która obejmuje podstawy.

Istnieją dwa rodzaje aplikacji:
Root i non-root .

Root aplikacje mogą w zasadzie przechowywać / modyfikować pliki w dowolnym miejscu.

Aplikacje inne niż root mogą przechowywać / modyfikować pliki tylko tutaj: /sdcard/ i każdy następny folder.
Przeważnie zainstalowane aplikacje przechowują się w /sdcard/Android/data lub /sdcard/Android/obb.
Niektóre aplikacje przechowują swoje zapisywane gry / pliki danych konfiguracyjnych w /sdcard/APPNAME/ lub tylko na /sdcard/

Aby móc używać root , będziesz musiał zrootować swoje urządzenie z Androidem i mieć pozwolenie jednej z aplikacji administratora.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *