본문 바로가기
Android 개발/android :: Tip

[안드로이드] 플랫폼 버전별 API 레벨 및 버전코드 정리 (20.08.01 updated)

by 독학하는 1인 개발자 2019. 11. 11.

Android 개발 Tip.

 

- Platform Version Api

 

플랫폼 버전별 API 레벨 및 버전코드 정리

 

Android 1.0 ~ 11 (Api 1 ~ 30)

 

버전 별 다른 동작 수행하는 방법 및 코드



 

 

 

개발을 해보면,

 

사용자 기기의 안드로이드 버전에 따라

 

되는 것도 있고 안 되는 것도 있다.

 

 

그래서 개발시 minSdk를 설정하거나,

 

코드상으로 버전 별 차이를 두어야 할 필요가 있다.

 

 

그런데 안드로이드 API 레벨은 항상 헷갈린다.

 

워낙 많아서..

 

한 번에 모아서 정리해두고 필요할 때마다 봐야겠다.

 

 

버전코드를 활용해서 사용자 기기에 안드로이드 버전에 따라

 

다른 동작을 수행하게 할 수 있다. 글 후반부에서 알아보자.

 

 

 

 

1. 안드로이드 플랫폼 버전 API 레벨 정리

 

Android 11은 아직 베타 테스트 버전이 배포중이고

 

정식 배포는 9월이나 올해 말에 배포될 예정이라고 한다.

 

플랫폼 버전 API 레벨 플랫폼 명 버전 코드
Android 11 30 Android 11 현재 베타 테스트
Android 10.0 29 Android 10 Q
Android 9 28 Pie P
Android 8.1 27 Oreo O_MR1
Android 8.0 26 Oreo O

Android 7.1.1

Android 7.1

25 Nougat N_MR1
Android 7.0 24 Nougat N
Android 6.0 23 Marshmallow M
Android 5.0 22 Lollipop LOLLIPOP_MR1
Android 5.0 21 Lollipop LOLLIPOP

Android 4.4W 20 KitKat Wear KITKAT_WATCH
Android 4.4 19 KitKat KITKAT
Android 4.3 18 Jelly Bean JELLY_BEAN_MR2
Android 4.2, 4.2.2 17 Jelly Bean JELLY_BEAN_MR1
Android 4.1, 4.1.1 16 Jelly Bean JELLY_BEAN
Android 4.0.3, 4.0.4 15 IceCreamSandwich ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.2 14 IceCreamSandwich ICE_CREAM_SANDWICH
Android 3.2 13 Honeycomb HONEYCOMB_MR2
Android 3.1.x 12 Honeycomb HONEYCOMB_MR1
Android 3.0.x 11 Honeycomb HONEYCOMB

Android 2.3.4

Android 2.3.3

10 Gingerbread GINGERBREAD_MR1

Android 2.3.2

Android 2.3.1

Android 2.3

9 Gingerbread GINGERBREAD
Android 2.2.x 8 Froyo FROYO
Android 2.1.x 7 Eclair ECLAIR_MR1
Android 2.0.1 6 Eclair ECLAIR_0_1
Android 2.0 5 Eclair ECLAIR
Android 1.6 4 Donut DONUT
Android 1.5 3 Cupcake CUPCAKE
Android 1.1 2 Base BASE_1_1
Android 1.0 1 Base BASE

 

 

 

 

 

2. 버전 코드 별로 다른 동작 수행하는 방법

 

 

버전 코드는 각 버전 코드를 활용해서

 

자바 코드 상으로 확인할 경으우,

 

Build.VERSION_CODES.버전 코드

 

를 통해 확인할 수 있다.

 

 

버전 코드 숫자를 쓰거나, or 버전 코드명을 쓰거나

 

아래 둘 중 택1

 

1. 버전코드 숫자를 쓰는 법

if(Build.VERSION.SDK_INT >= 21){
    // 원하는 동작
}

 

2. 버전코드명을 쓰는 법

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
    // 원하는 동작
}

 

 

 

이렇게 조건문을 만들면

 

기기의 안드로이드 버전에 따라 다른 수행을 설정할 수 있다.

 

 

원하는 기능이 있는데

 

만약에 특정 버전 이상에서만 작동한다면

 

아예 넣지 않는 것보다는 저렇게 조건문을 써서

 

특정 코드 이상에서는 작동하도록 하는 것이 좋다.

 

 

그렇게 하면 min SDK를 낮게 잡을 수 있고,

 

하위 안드로이드 버전을 쓰는 사용자들에게도 앱을 배포할 수 있다.

 

 

하위 안드로이드 버전 사용자보다 상위 안드로이드 버전 사용자가 많기 때문에

 

다수의 수요에 맞추는 편이 유리하지만

 

소수의 수요도 충족시키고 싶다면

 

저렇게 버전 조건문을 활용하면 된다.

 

 

 

 

 

 

댓글