답변

모든 앱 (루트 여부에 관계없이)에는 기본 데이터 디렉터리 인 /data/data/<package_name>가 있습니다. 기본적으로 앱 데이터베이스, 설정 및 기타 모든 데이터가 여기에 있습니다. 앱에서 엄청난 양의 데이터가 저장 될 것으로 예상하거나 다른 이유로 “내부 저장소에 적합”하려는 경우 “SDCard에 해당 디렉토리 (Android/data/<package_name>)가 있습니다.

그 외에도 모든 앱은 제한이 없기 때문에 SDCard의 어느 위치 에나 데이터를 저장할 수 있으며 많은 앱이 저장합니다. 디렉토리 이름을 자유롭게 사용할 수 있습니다 (다시 사용합니다). 카드에있는 “정크”가 무엇을위한 것인지, 무엇을 삭제할 수 있는지 결정하기 어렵게 만듭니다.

하지만 Tom이 지적했듯이 루트 앱은 기기의 거의 모든 곳에 데이터를 저장할 수 있으며 일반적으로 다른 앱과 동일한 규칙을 따릅니다.

여기에 내 답변 이 있습니다. 구체적인 질문에 대해서는 /data/data/<package_name> (및 해당 SD 부분)에 대한 자세한 내용을 추가 할 수 있습니다.

  • databases/ : 앱의 데이터베이스로 이동합니다.
  • lib/ : 앱용 라이브러리 및 도우미
  • files/ : 기타 관련 파일
  • shared_prefs/ : 환경 설정 및 설정
  • cache/ : 음, 캐시

이 장소에 여러 개의 디렉토리가 더 있거나 더 적을 수 있습니다. 모두 앱에 따라 다릅니다. 자체 “홈 디렉토리”(기본적으로 Linux에서 말하는 것임)에 파일을 원하는 곳에 배치 할 수 있습니다. 일반적으로 이러한 파일과 디렉토리는 앱 자체 (물론 루트)에서만 액세스 할 수 있습니다. -SDCard에 저장된 것 외에 모든 앱에서 액세스 할 수 있습니다.

댓글

답변

Android 4.4의 저장소에 몇 가지 주요 변경 사항이 발생했습니다 ( Android의 저장소 여정 참조). 따라서 다음은 일반적으로 Android 4.4 이상, 특히 6+에 해당됩니다.

이것은 Android 기기에서 디스크 공간이 어떻게 사용 되나요? . 앱 파일은 시스템 및 앱 자체별로 다른 카테고리의 내부 및 외부 저장소에 저장됩니다.

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 
  • 위의 모든 항목 내부 및 외부 저장소 (기본 및 보조)의 경로는 권한을 요청하지 않고 각 앱에 액세스 할 수있는 앱의 개인 디렉터리입니다. 앱은 개인 저장소에 다른 디렉터리 (API를 통해 명시 적으로 사용할 수 없음)를 만들 수도 있습니다. 앱이 제거되면 앱에 속한 이러한 모든 디렉토리가 삭제됩니다.

  • 또한 앱은 기본 외부 저장소 (일부 표준 디렉토리 및 기타 앱 비공개 디렉토리) WRITE_EXTERNAL_STORAGE 권한이 부여 된 경우 (getExternalStorageDirectory/storage/emulated/<user_id>). 보조 외부 저장소 및 이동식 저장소의 경우 SAF가 사용됩니다. 자세한 내용은 외부 SD 카드에 파일을 저장하는 방법

을 참조하세요. a>.

그러나 Android 10에서는 기본 외부 공유 저장소에 직접 쓰기가 더 이상 사용되지 않습니다 (getExternalStorageDirectorygetExternalStoragePublicDirectory는 더 이상 사용할 수 없음). 앱은 Android의 내장 콘텐츠 제공 업체 중 하나를 사용해야합니다. MediaStore (미디어 파일 용) 또는 SAF (다른 유형의 파일 용)

  • /data 경로는 채택 가능한 저장소를 사용할 때 /mnt/expand/[UUID]로 대체 될 수 있습니다. 보조 외부 저장소 (예 : SD 카드)를 사용할 때 /storage/emulated/storage/[UUID]로 대체됩니다.

  • 여러 사용자 / 프로필의 경우 <user_id>는 다르며 기기 소유자는 항상 0입니다. . /data/user/0는 역사적인 이유로 /data/data에 대한 심볼릭 링크입니다. 보조 외부 저장소는 기기 소유자 만 사용할 수 있습니다.

  • OBB 디렉토리는 공간을 절약하기 위해 사용자 / 프로필 (최대 Android 9)간에 공유됩니다. FUSE / sdcardfs는 항상 /storage/emulated/obb/storage/emulated/<user_id>/Android/obb로 노출합니다.

  • /data/user_de는 사용자 자격 증명을 요청하지 않고 부팅시 특정 앱을 실행할 수있는 FBE 기기의 기기 암호화 저장소입니다.

  • /data/misc/profiles는 앱 코드의 프로필 기반 컴파일 을 위해 ART에서 사용됩니다.

  • 각 디렉토리에 대한 설명은 이름에서 다소 분명합니다. 자세한 내용은 API 문서 에서 확인할 수 있습니다.

  • 저장 용량이 부족하면 OS에서 캐시를 삭제하여 할당 된 할당량을 초과하는 앱을 맨 위에 둡니다.

  • Apps “비공개 files 외부 저장소의 디렉터리는 MediaScanner 에 의해 자동으로 검색되지 않지만 media 디렉터리는 검색됩니다.

  • p>

  • 캐시 및 no_backup 디렉터리는 클라우드에 백업되지 않습니다. 공식 문서 를 참조하세요.

  • 답변

    질문에 대한 답변이 너무 큽니다. 그러나 기본을 다루는 기본 답변을 드릴 수 있습니다.

    앱에는
    루트 루트가 아닌 의 두 종류가 있습니다.

    루트 앱은 기본적으로 원하는 위치에 파일을 저장 / 수정할 수 있습니다.

    루트가 아닌 앱은 여기에서만 파일을 저장 / 수정할 수 있습니다. /sdcard/ 및 그 뒤에 오는 모든 폴더.
    대부분 설치된 앱은 /sdcard/Android/data 또는 /sdcard/Android/obb에 저장됩니다.
    일부 앱은 저장 게임 / 구성 데이터 파일을 /sdcard/APPNAME/ 또는 /sdcard/
    에 저장합니다.
    루트 앱을 사용하려면 Android 기기를 루팅하고 수퍼 유저 앱 중 하나에서 권한을 부여해야합니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다