[Android 구조 및 개념] 안드로이드 앱 빌드 절차

이기덕·2022년 6월 29일
0

안드로이드 스튜디오를 통해 프로그래밍을 하다보면, 앱의 빌드가 어떤 절차로 이루어지는지에 대해 제대로 알지 못해도 자동으로 앱을 빌드한다는 것을 알 수 있다.
그래서 이번에 안드로이드 앱 빌드 절차에 대한 이해가 필요하다고 생각하여 학습하였고, 그 내용을 정리 하고자 한다.

안드로이드 앱 빌드 절차

안드로이드 스튜디오에선 따로 명령을 하지 않아도 프로젝트의 내용을 수정하면 자동으로 앱을 빌드한다.

  • 빌드를 하는 동안 안드로이드 도구가 리소스와 코드 그리고 AndroidManifest.xml을 가지고 하나의 .apk 파일로 만든다.
  • 생성된 .apk 파일은 실제 장치나 에뮬레이터에서 실행될 수 있게 디버그 키가 부여된다.

위 과정에서 프로젝트 빌드와 관리에 필요한 모든 것을 그래들(Gradle) 자동화 빌드 도구를 사용해 처리하므로 신경 쓰지 않아도 된다.

레이아웃 파일(xml)의 내용은?

레이아웃 파일의 내용은 어떻게 애플리케이션의 View 객체로 변환되는 절차는 아래와 같다.

  • 빌드 절차의 일부로 aapt2(Android Asset Packaging Tool 2)가 레이아웃파일의 리소스들을 좀 더 압축된 형태로 컴파일한다.
  • 컴파일된 리소스들은 .apk 파일로 통합된다.
  • activity에서 setContentView()가 호출되면 LayoutInflater 클래스를 통해 레이아웃 파일에 정의된 각 View의 인스턴스를 생성한다.

위 과정에서 View 인스턴스는 뷰 계층 구조를 따라 루트 레이아웃부터 순서대로 생성되며,이러한 과정을 인플레이트(inflate)라 한다.

뷰 클래스를 코드로 생성하는 경우

뷰 클래스를 xml로 정의하는 대신에 액티비티에서 코드로 생성 할 수도 있다. 하지만 xml로 정의할 경우 프레젠테이션 계층을 애플리케이션 로직과 분리할 수 있기에 좋은 방법은 아니다.

안드로이드 빌드 직접 해보기

앞서 알아본 모든 과정은 안드로이드 스튜디오 IDE에 통합되어 자동으로 수행된다.
그래서 안드로이드 스튜디오 외부에서 직접 그래들(Gradle)을 실행하여 빌드 작업을 수행하려면 아래와 같은 절차를 거친다.

  1. 프로젝트 디렉터리로 이동한 후 아래 명령을 실행한다.
Mac/Linux : ./gradlew tasks
Windows : gradlew.bat tasks
  1. 위 명령을 실행하면 가능한 작업 내역을 보여주며, 그중 installDebug를 실행한다.
Max/Linux : ./gradlew installDebug
Windows : gradlew.bat installDebug

위 과정을 통해 연결된 장치에 앱이 빌드되어 설치된다.
하지만 실행은 되지 않으며, 실행하려면 해당 장치에서 직접 앱을 실행해야 한다.

profile
Kotlin

0개의 댓글