[이것이 안드로이드다 with 코틀린] 안드로이드와 코틀린
안드로이드 아키텍처
빌드란?
- 소스 코드를 변환해서 안드로이드에서의 실행 파일인 APK 파일로 만드는 것을 빌드(Build)라고 한다. 빌드는 소스 코드를 기게어로 변환한 후 라이브러리와 연결해서 실제 실행 파일로 만드는 과정을 일컫는 용어다. 안드로이드는 리눅스 커널 기반이므로 리눅스 시스템에서의 빌드를 이해하는것이 도움이 된다.
리눅스에서의 빌드
- 리눅스에서의 빌드란 소스 코드를 컴퓨터가 읽을 수 있는 기계어로 번역(컴파일)하고, 내가 만든 소스 코드에서 사용하는 라이브러리와 연결(Link)해서 최종 실행 파일 형태로 만드는 것이다.
안드로이드에서의 빌드
- 안드로이드에서의 빌드를 이해하기 위해서는 먼저 컴파일 과정부터 다시 살피는 것이 좋다. 리눅스 컴파일과의 차이점은 안드로이드에는 리소스(Resource)라는 개념이 있다는 것이다. 안드로이드는 2단계 컴파일을 나눌수 있다. 먼저 1단계는 바이트코드 단계이다. 여기서 소스코드와 리소스(이미지 파일,음악 파일등), 라이브러리까지 한번에 컴파일 해준다. 이때 생성된 파일은 안드로이드 플랫폼에서 인식할 수 있는 바이트코드로 컴파일된다. 이 파일은 스마트폰에서 바로 실행할수 없다. 2단계는 APK 파일 생성 단계다. 안드로이드의 빌드는 1단계에서 생성된 파일을 APK 매니저라는 도구로 개발자가 설정한 패스워드와 조합해서 설치 파일인 APK 파일로 만들어준다.
컴파일이란?
- Compile이란 사람이 읽을 수 있는 형태의 소스 코드를 컴퓨터가 읽을 수 있는 형태의 기계어로 변환해주는 과정이다. 컴퓨터는 기계어만 이해하고 동작하는데, 이 기계어의 구조를 사람이 이해하기 어려워 C,JAVA,KOTLIN과 같은 컴퓨터 언어가 생겨난 것이다.