본문 바로가기
Android Studio

[Android 앱개발 입문] 프로젝트 빌드 (@ 추가하기)

by 젼젼39 2024. 3. 18.

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 누르면 파일이 나옴