본문 바로가기

Android

안드로이드 개념) Complie, Build와 Gradle

728x90

Compile이란

고급 언어로 작성한 프로그램을 번역하고, 기계가 실행할 수 있는 형식인 기계어의 프로그램으로 변환하는 활동입니다.

Compiler 란

Compile을 실제로 실시하는 소프트웨어 또는 프로그램

Build란

소스코드 파일을 컴파일한 후 여러 개의 모듈로 묶어서 실행파일로 만드는 과정을 의미합니다.

앱 개발 시 테스트 진행 또는 개발이 완료된 시점에서 사용자에게 배포하기위해 빌드작업을 해야합니다. 앱에 포함된 리소스와 자바 코드를 컴파일하고 준비된 키로 서명하여 배포용 파일인 APK 파일을 추출하는데, 안드로이드 스튜디오에서는 이러한 작업들을 Gradle을 사용하여 처리합니다.

Gradel은 Groovy 언어를 사용한 Domain-specific-language를 사용하여 코드가 간결하고 프로젝트의 어떤 부분에서 업데이트가 되었는지 알기 때문에 점진적인 추가가 가능합니다. 즉 업데이트 시 반영된 빌드의 부분은 재실행하지않아 빌드 시간이 단축된다는 장점이 있는 것이죠.

안드로이드 스튜디오에서 build.gradle 파일을 볼 수 있는데 gradle 파일은 프로젝트 수준모듈 수준으로 나누어지며 프로젝트 수준의 gradle 파일에서의 설정은 대부분 dependencies 항목에 라이브러리를 추가하는 정도지만, 모듈 수준의 gradle은 빌드 시 아주 중요한 역할합니다.

compileSdkVersion : 사용하려는 컴파일러의 버전

해당 설정은 빌드 시 이용되는 툴 버전 정보입니다. 주로 외부에서 작성된 코드를 import하여 사용할 때 버전 정보가 맞지않아 빌드 작업이 정상적으로 수행되지 않는 경우에 명시적으로 변경하는 경우 사용합니다.

applicationID " .... " : 앱의 고유한 식별을 위해 부여된 식별자

안드로이드 앱을 식별하기위한 식별자로 위에서 말했듯이 고유해야 합니다. 즉 다른 어떤 앱과도 동일한 식별자가 있으면 안된다는 의미입니다. 구글플레이 스토어에 등록 시 또는 다운하려는 기기에 이미 동일한 식별정보를 가진 앱이 있다면 해당 앱은 등록, 설치되지 않습니다.

minSdkVersion : 지원하는 안드로이드의 최소 버전

종종 옛날에 쓰던 공기계를 이용해 최신게임이나 앱을 다운할 때 버전이 맞지않아 설치가 되지않는다는 메시지가 나오는데 이 경우가 발생하는 이유가 지금 설명하는 것 입니다. 개발자가 개발 중인 앱에 대한 최소 지원 버전을 API Level로 명시합니다. 즉 명시된 Level 보다 하위의 버전은 설치할 수 없습니다.

targetSdkVersion : 사용하고 있는 Sdk의 버전

현재 개발 중인 앱이 사용하고있는 라이브러리의 버전입니다. 만일 최소 지원버전을 14로 설정하고 컴파일 시 버전을 28로 설정하였을 때 특정 라이브러리가 23 버전 이상을 지원하지 않을 경우 이 부분을 변경해주어야 합니다.

versionCode : 앱의 버전

앱의 버전 정보입니다. 기기로 앱을 사용하거나 게임 중에 갑자기 업데이트를 하라는 메시지가 뜨면서 앱의 사용에 제한을 받는 경우가 생기죠? 앱이 업데이트 등으로 변경사항이 발생했을 때 사용자에게 서비스하고 있는 앱의 해당 항목의 버전을 변경하여 구글플레이 스토어에 등록하게 되는데 이런 경우가 지금의 설명하는 것입니다.

gradle 파일의 denpendencies 항목에 표준 라이브러리 외의 외부 라이브러리를 이용하는 경우가 많고 당연히 gradle이 빌드 때 참조해야하는 부분을 설정하게되어 모듈 수준의 gradle 파일이 자주 변경됩니다.

'Android' 카테고리의 다른 글

안드로이드 개념) CPU Profiler  (0) 2021.01.30
안드로이드 개념) Debug, Debuging, Debugger  (0) 2021.01.30
리소스와 코드의 연결  (0) 2021.01.30
Android Test : Ui Test - Espresso  (0) 2021.01.30
Android Test : Unit Test - Junit  (0) 2021.01.30