안드로이드 폴더 구조
/data 폴더
이 폴더는 애플리케이션 데이터와 캐시, 기타 데이터를 저장하는 데 사용됩니다.
일반적으로 이 폴더는 root 권한이 필요합니다.
- /data/data: 각 애플리케이션의 데이터가 저장되는 폴더입니다. 패키지 이름으로 구분됩니다.
- /data/app: APK 파일이 설치되는 폴더입니다.
- /data/cache: 캐시 파일이 저장되는 폴더입니다.
- /data/dalvik-cache: Dalvik 가상 머신이 사용하는 캐시 파일이 저장되는 폴더입니다.
/system 폴더
안드로이드 운영체제와 관련된 파일이 저장되는 폴더입니다.
이 폴더의 파일은 루팅 된 기기에서 수정할 수 있지만, 그렇게 하면 안정성 문제가 발생할 수 있습니다.
- /system/app: 기본적으로 설치된 애플리케이션 APK 파일이 저장되는 폴더입니다.
- /system/bin: 시스템 바이너리 파일이 저장되는 폴더입니다.
- /system/etc: 구성 파일이 저장되는 폴더입니다.
- /system/framework: 안드로이드 시스템 프레임워크 파일이 저장되는 폴더입니다.
- /system/lib: 라이브러리 파일이 저장되는 폴더입니다.
- /system/media: 기본적으로 설치된 미디어 파일이 저장되는 폴더입니다.
- /system/usr: 시스템 사용자 데이터가 저장되는 폴더입니다.
- /system/vendor: 제조업체 관련 파일이 저장되는 폴더입니다.
/sdcard 폴더
이 폴더는 외부 저장소로 인식되며, 기본적으로 설치된 모든 애플리케이션은 이 폴더에 저장된 파일에 액세스 할 수 있습니다.
SD 카드의 루트 디렉토리입니다.
일부 안드로이드 버전에서는 /mnt/sdcard라는 이름으로 액세스 됩니다.
- /sdcard/Android: 안드로이드 애플리케이션 데이터와 미디어 파일이 저장되는 폴더입니다.
- /sdcard/DCIM: 카메라 애플리케이션이 생성하는 이미지와 동영상 파일이 저장되는 폴더입니다.
- /sdcard/Downloads: 다운로드된 파일이 저장되는 폴더입니다.
- /sdcard/Music: 음악 파일이 저장되는 폴더입니다.
- /sdcard/Pictures: 사진 파일이 저장되는 폴더입니다.
- /sdcard/Movies: 동영상 파일이 저장되는 폴더입니다.
그 외 폴더
/cache 폴더
앱이 사용하는 캐시 파일을 저장하는 폴더입니다.
앱이 캐시를 저장하기 위해 요청하면 시스템이 해당 폴더에 캐시를 저장합니다.
/mnt 폴더
마운트 된 파일 시스템을 포함하는 폴더입니다.
이 폴더의 하위 폴더 중 하나는 SD 카드를 나타낼 수 있습니다.
/storage 폴더
다른 저장소 위치를 가리키는 링크를 포함하는 폴더입니다.
이 폴더의 하위 폴더는 외부 SD 카드 또는 USB 디바이스를 나타낼 수 있습니다.
/etc 폴더
시스템 설정 파일이 포함된 폴더입니다.
이 폴더의 파일은 루팅 된 기기에서 수정할 수 있지만, 그렇게 하면 안정성 문제가 발생할 수 있습니다.
/proc 폴더
프로세스 및 시스템 정보를 포함하는 가상 폴더입니다.
이 폴더의 파일은 읽기 전용입니다.
/root 폴더
루트 사용자의 홈 디렉터리입니다.
이 폴더의 파일은 루팅 된 기기에서 액세스 할 수 있습니다.
/dev 폴더
장치 파일이 포함된 폴더입니다.
이 폴더의 파일은 시스템에서 사용됩니다.
/sbin 폴더
시스템 바이너리 파일이 포함된 폴더입니다.
이 폴더의 파일은 루팅 된 기기에서 실행할 수 있습니다.
APK 폴더 구조
apk 파일은 android Application Package의 줄임말이고 앱을 설치하는 역할을 함. zip 형식의 압축 파일이다.
META-INF
인증 서명과 관련한 정보가 담겨있는 폴더
assets
앱 실행에 필요한 자원들이 보관되는 폴더
res 폴더와 비슷하지만 용량이 큰 파일 위주로 저장
res
앱 실행에 필요한 자원들이 보관되는 폴더
- Drawable : 프로젝트에 활용될 이미지
- Layout : 안드로이드 화면을 담당하는 xml
- Values
- dimens.xml : 텍스트 크기, 도형 크기 등의 설정파일
- string.xml : 문자열에 관련된 설정 파일
- styles.xml : 색상, 액션바 유무, 배경 색 등의 화면 디자인 관련 설정을 정의
res 폴더는 assets 비해 용량이 적은 파일 위주로 저장됨
lib
라이브러리 파일들이 저장되는 폴더
AndroindManifest.xml
앱을 구성하는 컴포넌트 및 패키지명, 버전과 같은 앱의 정보가 저장되는 파일이다.
AndroindManifest.xml의 주용 컨포넌트
- Activity : 일반적으로 하나의 뷰를 말하며, 해당 Activity에 대한 속성을 정의함
- Service : 백그라운드에서 실행되는 서비스
- Broadcast Recriver : 안드로이드 내부 이벤트 핸들링을 위한 컴포넌트 ex) 문자수신, 배터리 부족등
- Content Provide : apk 간 데이터 공유를 위한 컴포넌트
class.dex
애플리케이션의 하위 요소이며 컴파일된 자바 및 클래스가 포함되어 있고, 여러 클래스가 들어있다
Android SDK의 필수 분분인 DX 도구로 변환된 Java 바이트 코드이고 Dalvik 가상 머신 인스턴스를 사용하여 자체 프로세서를 생성 가능
resources.arsc
res의 정보가 기록되어 있는 곳
컴파일된 리소스(문자열, 스타일 등)가 존재하는 곳
참고 사이트
https://source.android.com/docs/core/architecture
'play > Android' 카테고리의 다른 글
[Android] 안드로이드 앱 주요 구성 요소 (0) | 2023.06.29 |
---|---|
[Android] OS Architecture : 운영체제 구조 정리 (0) | 2023.06.27 |
[Reactnative] 준비하기 (0) | 2022.04.08 |
모바일 운영체제 종류 (0) | 2021.08.26 |
안드로이드 스튜디오 연습 3 (이미지 넣기, 화면 구성하기, 토스트 메세지) (6) | 2020.04.16 |