[Android] 안드로이드의 빌드 과정

Falco·2023년 4월 27일
2

Android

목록 보기
53/55
post-thumbnail

빌드란??

안드로이드에서의 빌드는 개발자가 소스 코드를 작성 후 앱 설치 파일 APK를 만들기 까지의 실행 과정을 의미합니다.

안드로이드는 기본적으로 리눅스 커널위에 여러 소프트웨어 스택이 쌓인 형태로 리눅스의 빌드와 동일하다고 생각하시면 됩니다.

리눅스에서의 빌드는 소스 코드를 기계어로 컴파일 한 후 사용되는 라이브러리와의 Link를 수행하여 실제 실행 파일로 만드는 과정을 의미합니다.

빌드 도구

빌드 도구는 외부 라이브러리 추가 및 업데이트 등의 설정 시간을 단축시킵니다. 또한 테스트 실행 및 호환성 체크까지 진행합니다.

안드로이드에서 사용되는 빌드 도구는 maven, gradle등이 있으며 구글에서는 gradle의 사용을 권장하고 있습니다.

Gradle내부의 빌드 스크립트를 작성하여

  • 앱의 의존성
  • 라이브러리
  • 리소스 파일
  • 빌드 설정

등을 진행합니다.

빌드 진행

빌드 프로세스는 Gradle 빌드 도구가 수행합니다. 빌드 프로세스는 앱의 소스 코드와 빌드 스크립트를 결합하여 APK 파일을 생성합니다.

  1. 코틀린 컴파일러는 .kt파일을 .class 바이트코드파일로 변환합니다.

  2. Android SDKdx 도구를 사용하여 .class 파일들을 .dex 파일로 변환합니다.

  1. 안드로이드 리소스 패키징 도구(aapt)와 Gradle 사용하여 리소스 파일 및 외부 라이브러리 모듈을 .dex파일과 함께 APK 파일로 패키징합니다.

  2. APK 파일은 서명되어야 안드로이드 디바이스에서 실행될 수 있습니다. APK 파일에 서명하기 위해서는 디지털 인증서를 사용해야 합니다. APK 파일에 서명하는 작업은 빌드 과정에서 Gradle에 설정된 값에 따라 자동으로 수행합니다.

이렇게 서명된 APK가 만들어 질 수 있습니다.

APK 설치 및 실행

설치된 APK안드로이드 런타임과정을 따라 초기 JIT방식을 활용하여 앱을 설치한 후, 이후 자주 사용하는 앱을 AOT방식을 활용하여 컴파일하는 방식으로 진행됩니다.

각각의 컴파일 방식의 장,단점을 해소하기 위해 이렇게 컴파일을 2번 진행합니다.

참고 자료

이것이 안드로이드다 with kotlin

profile
강단있는 개발자가 되기위하여

0개의 댓글