Android 앱이 데이터를 저장할 수있는 모든 디렉토리를 나열하고 각 디렉토리에 어떤 종류의 데이터가 저장되어 있는지 설명 할 수 있습니까?
Android 앱이 데이터를 저장할 수있는 모든 디렉토리를 나열하고 각 디렉토리에 어떤 종류의 데이터가 저장되어 있는지 설명 할 수 있습니까?
답변:
모든 앱 (루트 여부에 관계없이)은 기본 데이터 디렉토리 인을 갖습니다 /data/data/<package_name>
. 기본적으로 앱 데이터베이스, 설정 및 기타 모든 데이터가 여기에 있습니다. 앱이 많은 양의 데이터가 저장 될 것으로 기대하거나 다른 이유로 "내부 저장소에 적합"하려는 경우 SDCard ( Android/data/<package_name>
) 에 해당 디렉토리가 있습니다.
그 외에도 모든 앱은 제한이 없으므로 SDCard의 어느 곳에 나 데이터를 저장할 수 있으며 많은 앱이 그렇게합니다. 그들은 디렉토리 이름을 자유롭게 사용할 수 있으며 (다시), 카드의 "정크"가 무엇인지, 무엇을 삭제할 수 있는지 결정하기가 어렵습니다.
로 비록, 톰 지적 , 루트 응용 프로그램은 일반적으로 다른 애플 리케이션과 같은 규칙을 준수 기기에 거의 모든 곳에서 자신의 데이터를 저장할 수 있습니다.
내 대답 에서 Android 디렉토리 계층에 대한 일반적인 설명을 찾을 수 있습니다 . 특정 질문에 대해 /data/data/<package_name>
(및 해당 SD 부분) 에 대한 자세한 내용을 추가 할 수 있습니다 .
databases/
: 여기 앱 데이터베이스로 이동lib/
: 앱의 라이브러리 및 헬퍼files/
: 기타 관련 파일shared_prefs/
: 환경 설정 및 설정cache/
: 캐시이 장소에는 몇 개의 디렉토리가 더 많거나 적을 수 있습니다. 모두 디렉토리는 앱에 따라 다릅니다. 자체 "홈 디렉토리"(그리고 기본적으로 Linux와 동일하게 사용됨)에서 원하는 곳에 파일을 배치 할 수 있습니다. 일반적으로 이러한 파일과 디렉토리는 모든 앱에서 액세스 할 수있는 SDCard에 저장된 파일 외에 앱 자체 (및 루트) 만 액세스 할 수 있습니다.
/data/data/<name>/files/
설명 된대로 생성 된 파일 은 어디에 있습니까? 즉, 그들과 함께 열린 ? FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
/storage/emulated/0/WhatsApp/
(하위 디렉토리를 .Shared
, .trash
, Backups
, Databases
, Media
모든 미디어 포함). 이에 추가되어 있는지 알 \data\data...
수 없으므로 지금이 디렉토리에 액세스 할 수 없습니다. 어쩌면 이것은 버전간에 변경되었을 수 있습니다.
/
)가 SD 카드에 없습니다. SD 카드는 아래 /sdcard
(내부 카드, 가리킴 /storage/emulated/<user>
) 또는 외부 카드의 해당 경로를 의미합니다. 그리고 아니요, 일부 앱에서 사용 가능한 모든 위치를 설명 할 수는 없습니다. 죄송합니다. AFAIK /data/misc
는 Android 시스템 자체에서 관리하므로 "단순한 앱"은 읽기 권한이 있어야합니다. 발생하지 마십시오 data/user_de
(가 상대 경로입니다 당신이 어쨌든 의미 어디, 나도 몰라).
귀하의 질문에 대한 답변이 너무 큽니다. 그러나 기본 사항을 다루는 기본 답변을 제공 할 수 있습니다.
Root 및 non-root
의 두 가지 앱이 있습니다 .
루트 앱은 기본적으로 원하는 위치에 파일을 저장 / 수정할 수 있습니다.
루트가 아닌 앱은 여기 /sdcard/
및 이후의 모든 폴더에 파일을 저장 / 수정할 수 있습니다 .
설치된 앱은 대부분 /sdcard/Android/data
또는에 저장 /sdcard/Android/obb
됩니다.
일부 앱은 저장 게임 / 구성 데이터 파일을에 저장 /sdcard/APPNAME/
하거나 루트 앱 /sdcard/
을 사용하려면 Android 기기를 루팅하고 수퍼 유저 앱 중 하나의 권한을 부여 받아야합니다.