Android 앱은 어디에 데이터를 저장합니까?


97

답변:


92

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

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

로 비록, 톰 지적 , 루트 응용 프로그램은 일반적으로 다른 애플 리케이션과 같은 규칙을 준수 기기에 거의 모든 곳에서 자신의 데이터를 저장할 수 있습니다.

내 대답 에서 Android 디렉토리 계층에 대한 일반적인 설명을 찾을 수 있습니다 . 특정 질문에 대해 /data/data/<package_name>(및 해당 SD 부분) 에 대한 자세한 내용을 추가 할 수 있습니다 .

  • databases/: 여기 앱 데이터베이스로 이동
  • lib/: 앱의 라이브러리 및 헬퍼
  • files/: 기타 관련 파일
  • shared_prefs/: 환경 설정 및 설정
  • cache/: 캐시

이 장소에는 몇 개의 디렉토리가 더 많거나 적을 수 있습니다. 모두 디렉토리는 앱에 따라 다릅니다. 자체 "홈 디렉토리"(그리고 기본적으로 Linux와 동일하게 사용됨)에서 원하는 곳에 파일을 배치 할 수 있습니다. 일반적으로 이러한 파일과 디렉토리는 모든 앱에서 액세스 할 수있는 SDCard에 저장된 파일 외에 앱 자체 (및 루트) 만 액세스 할 수 있습니다.


1
developer.android.com/guide/topics/data/…에/data/data/<name>/files/ 설명 된대로 생성 된 파일 은 어디에 있습니까? 즉, 그들과 함께 열린 ? FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
아무도

일반적으로 이것은 이미 좋은 대답이지만 developer.android.com/guide/topics/data/ 에 대한 참조를 추가하는 것은 어떻습니까?
아무도

@Nobody 2) 해당 페이지는 개발자 중심이며이 사이트는 최종 사용자 중심입니까? 1) 나는 개발자가 아니며 개발 세부 사항을 요구합니다. 죄송합니다.
Izzy

1
나는 SD 카드가없는, 내 안드로이드 6, 안드로이드 7, WHATSAPP는 데이터를 많이 저장 /storage/emulated/0/WhatsApp/(하위 디렉토리를 .Shared, .trash, Backups, Databases, Media모든 미디어 포함). 이에 추가되어 있는지 알 \data\data...수 없으므로 지금이 디렉토리에 액세스 할 수 없습니다. 어쩌면 이것은 버전간에 변경되었을 수 있습니다.
sancho.s

1
@Shayan 루트 디렉토리 ( /)가 SD 카드에 없습니다. SD 카드는 아래 /sdcard(내부 카드, 가리킴 /storage/emulated/<user>) 또는 외부 카드의 해당 경로를 의미합니다. 그리고 아니요, 일부 앱에서 사용 가능한 모든 위치를 설명 할 수는 없습니다. 죄송합니다. AFAIK /data/misc는 Android 시스템 자체에서 관리하므로 "단순한 앱"은 읽기 권한이 있어야합니다. 발생하지 마십시오 data/user_de(가 상대 경로입니다 당신이 어쨌든 의미 어디, 나도 몰라).
Izzy

9

귀하의 질문에 대한 답변이 너무 큽니다. 그러나 기본 사항을 다루는 기본 답변을 제공 할 수 있습니다. Rootnon-root

의 두 가지 앱이 있습니다 .

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

루트가 아닌 앱은 여기 /sdcard/및 이후의 모든 폴더에 파일을 저장 / 수정할 수 있습니다 .
설치된 앱은 대부분 /sdcard/Android/data또는에 저장 /sdcard/Android/obb됩니다.
일부 앱은 저장 게임 / 구성 데이터 파일을에 저장 /sdcard/APPNAME/하거나 루트/sdcard/

을 사용하려면 Android 기기를 루팅하고 수퍼 유저 앱 중 하나의 권한을 부여 받아야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.