티스토리 뷰
안드로이드 앱을 개발하면서 막상 build.gradle(빌드파일)에 대한 속성에 대해서 dependency를 제외하고는 제대로 알지 못했다.
그래서 면접 질문에 나왔는데 대답을 못했음..... ㄸㄹㄹㄹ...
이참에 !! 정리해보자 !!
참고
- https://jw910911.tistory.com/49
- https://jsdev.kr/t/targetsdkversion-compilesdkversion/4653
- https://developer.android.com/guide/topics/manifest/uses-sdk-element.html
build.gradle(Project)
- 내가 사용할 gradle script가 작성된 위치 설정
- dependency를 이용하기 위한 repository 설정
build.gradle(Module)
- 내가 어떻게 컴파일을 하겠다에 대한 정보를 가짐
- apply plugin: 'com.android.application' <= 빌드 대상은 애플리케이션임을 의미함. (com.android.application이라는 build script를 적용할 것이다. 만약, library일 경우, com.android.library )
compileSdkVersion
- 컴파일 시에 해당 버전으로 컴파일을 진행한다는 것을 의미
- 컴파일 버전에 따라 API의 사용여부를 확인할 수 있음 (Ex : deprecated 된 API 나 지원 가능 API 등을 알 수 있음)
( 컴파일 버전에 따라 해당 안드로이드 버전의 API를 이용할 수 있기 때문에, 항상 최신 버전으로 설정해 놓는 것이 좋다. 컴파일 시에만 적용되는 것으로써, runtime에는 아무런 영향을 미치지 않는다. )
buildToolsSdkVersion
- 빌드 도구에 대한 버전.
- 항상 최신 버전으로 유지.
minSdkVersion
- 앱이 실행되는 Android 플랫폼의 최소 버전
- API 수준 식별자에 의해 지정
targetSdkVersion
- 앱이 실행되는 API 수준 지정
- 시스템은 앱이 실행될 때, 시스템 수준의 API가 앱 수준의 API보다 높을 경우, 예상되어지는 동작을 수행하기 위해 호환성 동작을 활성화 할 수 있음. 이때, 해당 호환성 동작을 비활성화하기 위해서는 targetSdkVersion을 설정함.
(그러나, 앱을 유지관리하려면, 최신 API레벨에 맞춰 최신 버전으로 설정한 후, 테스트를 진행하는 것이 좋음)
versionCode
- 양의 정수이며, 내부 버전 번호로 사용.
- 버전이 다른 앱 간의 최신 버전을 판단하는데만 사용.
- 사용자에게 보여지는 버전번호가 아님.
- 사용자에게 버전번호를 표출하기 위해서는 versionName을 이용해야 함.
- versionCode가 Google Play나 현재 기기에 설치되어 있는 버전보다 낮다면, APK 설치 불가
versionName
- 사용자에게 표시되는 버전 번호로써 사용된느 문자열
-----------------------
따라서, 애플리케이션을 안정적으로 동작시키기 위해서는
minSdkVersion <= targetSdkVersion == compileSdkVersion
으로 설정하는 것이 좋다.
-----------------------
'android' 카테고리의 다른 글
[android] Serializable vs Parcelable ( + reflection) (0) | 2020.06.15 |
---|---|
[android] Android Jetpack : ViewModel (0) | 2020.06.10 |
[android] CustomView (0) | 2020.06.01 |
[android] MVVM 디자인 패턴 - AAC (0) | 2020.05.29 |
[android] 안드로이드 개념 - Activity의 launchMode 의 Flag 정리 (0) | 2020.05.29 |