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를 낮게 잡을 수 있고,
하위 안드로이드 버전을 쓰는 사용자들에게도 앱을 배포할 수 있다.
하위 안드로이드 버전 사용자보다 상위 안드로이드 버전 사용자가 많기 때문에
다수의 수요에 맞추는 편이 유리하지만
소수의 수요도 충족시키고 싶다면
저렇게 버전 조건문을 활용하면 된다.
'Android 개발 > android :: Tip' 카테고리의 다른 글
[안드로이드 Animation] 애니메이션 딜레이 - 시간 지연 설정하기 (시작 delay 설정) (2) | 2020.05.22 |
---|---|
[안드로이드 XML] 자동으로 코드 줄바꾸고 들여쓰기 (0) | 2020.04.04 |
[안드로이드 View] Textview 또는 Button 기본 여백 제거하기 (0) | 2020.04.03 |
[안드로이드 Animation] 액티비티 전환 애니메이션 설정, 해제, overridePendingTransition 안되는 경우 (1) | 2019.11.27 |
[안드로이드 스튜디오] android studio 모듈(module) 삭제 방법 (0) | 2019.09.27 |
[안드로이드 스튜디오] android studio에서 모듈(Module) 추가 방법 (0) | 2019.09.27 |
[안드로이드 View] TextView 글자수 초과시 말줄임 (...) 표시 넣는 방법 (0) | 2019.09.27 |
[안드로이드 View] custom TextView 로 style 일괄 적용하기 (0) | 2019.09.25 |
댓글