Android 프로젝트에는 애플리케이션 소스와 리소스를 구성할 수 있습니다. 본격적으로 이 모듈의 전반적인 구조와 각 부분에 속하는 것을 알 수 있습니다.
다음 표에는 Android 프로젝트의 일반적인 파일이 나열되어 있습니다. 각 파일에 어떤 유형의 콘텐츠가 속하는지에 대한 메모를 포함해야 합니다. 최고 관행은 시간이 지남에 따라 발전하므로 이러한 설명은 프로젝트의 내용과 일치하지 않을 수 데이터를 가져올 수 있습니다
빌드 파일을 작성할 때는 선언적 접근 방식을 사용합니다. 빌드 로직 및 작업 정의는 플러그인에만 표시되어야 합니다. 빌드 로직을 플러그인으로 제한함으로써 빌드 파일은 데이터 선언이 되며, 이는 객체를 이해하는 데 수정할 수 있습니다. 향후 버전에는 선언적 Gradle: 할 수 있습니다.
폴더/파일 |
사용 |
---|---|
.gradle/ |
Gradle 프로젝트 캐시 디렉터리 Gradle에 의해 관리되며 다운로드한 Gradle 배포, 프로젝트 캐시, 구성 파일이 포함됩니다. 이 디렉터리의 파일을 변경하면 안 됩니다. |
.idea/ |
Android 스튜디오 프로젝트 메타데이터 이 디렉터리의 파일을 변경하면 안 됩니다. |
build.gradle(.kts) |
하위 프로젝트에서 공통 플러그인 클래스 경로를 설정하기 위한 플러그인 선언만 포함해야 합니다. 다른 코드는 설정 또는 중첩된 프로젝트 수준 빌드 파일에 있어야 합니다. |
gradle.properties |
힙 크기, 캐싱, 병렬 실행과 같은 Gradle 빌드 환경 측면을 제어하는 Gradle 속성을 포함합니다. 일부 임시 Android 속성이 여기에 정의되어 있으며 이는 AGP DSL이 추가되고 나중에 삭제될 때 발생하는 변경사항을 줄이기 위해 사용됩니다. |
gradlew (linux, Mac) gradlew.bat (Windows) |
Gradle 래퍼 파일 Gradle 배포를 다운로드한 다음 명령어를 전달하여 빌드를 부트스트랩합니다. 이를 통해 Gradle을 사전 설치하지 않고도 빌드를 실행할 수 있습니다. |
local.properties |
로컬 머신 구성 Android SDK의 위치와 같이 로컬 컴퓨터와 관련된 속성을 포함합니다. 이 파일을 소스 제어에서 제외하세요. |
settings.gradle(.kts) |
Gradle 초기화 및 프로젝트 구성을 위한 전역 빌드 정보 포함(예:
|
Gradle/ |
|
🔍s.versions.toml |
빌드 내에서 사용되는 종속 항목과 플러그인의 변수를 정의합니다. 여기에서 사용할 버전을 지정하면 프로젝트의 모든 하위 프로젝트에서 일관성을 유지할 수 있습니다. |
🔍 래퍼/ |
|
🔍 gradle‐wrapper.jar |
Gradle 부트스트랩 실행 파일 지정된 Gradle 배포 (존재하지 않는 경우)를 다운로드하고 인수를 전달하여 실행합니다. |
🔍 gradle‐wrapper.properties |
Gradle 래퍼 구성 Gradle 배포를 다운로드할 위치 (사용할 버전 포함)를 지정합니다. |
앱/ |
하위 프로젝트 (Android 스튜디오에서 '모듈'이라고 함)는 애플리케이션 또는 라이브러리를 빌드할 수 있으며 다른 하위 프로젝트나 외부 종속 항목에 종속될 수 있습니다.
|
🔍 build.gradle(.kts) |
이 하위 프로젝트를 빌드하는 방법을 선언합니다. 각 하위 프로젝트에는 별도의 빌드 파일이 필요하며
빌드 파일에 빌드 로직 (예: Kotlin 함수 정의 또는 조건)이나 작업 선언을 포함해서는 안 됩니다. 빌드 로직과 작업은 플러그인 내에만 포함되어야 합니다. |
🔍 src/ |
하위 프로젝트 소스 파일 소스 파일 (애플리케이션 코드 및 리소스)을 소스 세트로 그룹화합니다. |
단계에서 기본/ |
기본 소스 세트 모든 빌드 변형에 공통으로 적용되는 소스 코드 및 리소스 이 소스는 모든 빌드의 기반으로 기능하며, 보다 구체적인 다른 소스 세트는 이 소스에 추가되거나 재정의됩니다. |
🔍 자바/ 단계에서 코틀린/ |
Kotlin 및 Java 소스 코드
|
🔍 res/ |
XML 파일 및 이미지와 같은 애플리케이션 리소스를 포함합니다. 모든 애플리케이션은 런처 아이콘과 같은 일부 기본 리소스를 사용하지만 레이아웃 및 메뉴와 같은 많은 리소스는 뷰 기반 애플리케이션에만 사용됩니다. Compose 애플리케이션은 이 디렉터리에 정의된 문자열 리소스를 사용합니다. |
🔍 AndroidManifest.xml |
Android 패키지 관리자가 읽고 시스템에 알립니다.
|
🔍 androidTest/ |
기기 테스트 소스 세트 Android 지원 기기나 에뮬레이터에서 실행될 테스트의 소스를 포함합니다. 이러한 테스트는 실제 Android 환경에 액세스할 수 있지만 호스트 테스트보다 실행 속도가 느립니다. |
🔍 테스트/ |
호스트 테스트 소스 세트 기기에서 실행되는 테스트가 아닌 JVM에서 로컬로 실행되는 테스트의 소스를 포함합니다. 이러한 테스트는 기기 테스트보다 훨씬 빠르게 실행됩니다. 그러나 모든 시스템 호출 (애플리케이션을 실행하는 수명 주기 포함)은 모의 처리, 위조, 스텁 처리 또는 시뮬레이션되어야 합니다.
|
🔍 proguard-rules.pro |
애플리케이션 축소, 최적화, 난독화를 제어하는 규칙을 정의합니다. R8은 불필요한 코드와 리소스를 제거하고, 런타임 성능을 최적화하며, 식별자 이름을 변경하여 코드를 더욱 최소화합니다. |