1. 프로젝트 빌드
: Android 빌드 시스템은 앱 리소스 및 소스 코드를 컴파일하고 배포할 수 있는 APK로 패키징함
- AndroidStudio는 고급 빌드 툴 킷인 Gradle을 사용해 빌드 프로세스를 자동화하고 관리함
1) 빌드 프로세스의 구조
2) 컴파일러의 역할
: 소스코드를 DEX(Dalvik Executable) 파일로 변환하고 그 외 모든 것을 컴파일 된 리소스로 변환
- aapt 도구는 리소스 파일(/res 폴더 하위 파일)들을 컴파일 된 리소스 (R 클래스 파일과 패키지된 리소스 파일)로 변환
- kotlinc 컴파일러는 kotlin 소스 파일(자동으로 생성된 R.java와 사용자가 정의한 .kt 파일)을 kotlin 클래스 파일(.class 확장자)로 변환
- dx 안드로이드 개발도구는 컴파일된 kotlin 클래스 파일을 DEX파일 (.dex 확장자)로 변환시킴
- 이 DEX파일에는 Android기기에서 실행되는 바이트코드가 포함됨
3) APKPackager
: DEX파일과 컴파일된 리소스를 단일 APK에 결합함
- 앱을 Android 기기에 설치하고 배포하기 위해 APKPackager는 디버그 또는 릴리스 키스토어를 사용해 APK를 서명
(1) 디버그 버전의 앱 (= 테스트 및 프로파일링 전용의 앱)
- 빌드 중인 경우에는, 패키저가 디버그 키스토어로 앱에 서명함
- Android Studio는 디버그 키스토어로 새 프로젝트를 자동으로 구성함
(2) 릴리스 버전의 앱 (= 외부에 릴리스할 앱)
- 빌드 중인 경우에는, 패키저가 릴리스 키스토어로 앱에 서명함
(3) 최종 APK를 생성하기 전
- 패키저는 기기에서 실행될 때 더 적은 메모리를 사용하도록 앱을 최적화하기 위해 zipalign 도구를 사용
2. 빌드 구성 파일
- 새 프로젝트 시작 시, Android Studio가 프로젝트 구조를 생성하고, 빌드 구성 파일 (build.gradle(project level), settings.gradle, build.gradle(module level) 등)을 자동으로 만들고, 적합한 기본값에 따라 파일에 값을 채움
1) build.gradle(Project level)
: 루트 프로젝트 디렉토리에 있는 최상위 build.gradle 파일은 프로젝트의 모든 모듈에 적용되는 빌드 구성을 정의
buildscript{
repositories{
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
allprojects{
repositories{
google()
jcenter()
}
}
task clean(type: Delete){
delete rootProject.buildDir
}
// buildscript{ } 블록 : 모든 모듈에 공통되는 Gradle 리포지토리와 종속성을 정의
// allprojects{ } 블록 : 현 프로젝트의 모든 모듈에서 사용되는 리포지토리와 종속성을 정의
2) settings.gradle
: 앱을 빌드할 때 어떤 모듈을 포함할지를 Gradle에 알려줌
- 대부분의 프로젝트에서 이 파일은 간단함. (다음 코드만을 포함함)
include ':app'
3) build.gradle(Module level)
//apk를 따로 빼려면
build > build APK > build APK > locate 누르면 파일이 나옴
'Android Studio' 카테고리의 다른 글
[Android 앱개발 입문] 안드로이드 UI 기본 (@ 추가하기) (0) | 2024.03.18 |
---|---|
[Android 앱개발 입문] 프로젝트 실습 (# 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 리소스 파일, 코틀린 소스 파일 (# 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 프로젝트 구조 - 앱 구성 파일 분석, 매니페스트 파일 (# 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 이것저것 기초 (0) | 2024.03.18 |