본문 바로가기

Android

[버섯] 안드로이드 버전별 코드 네임 및 빌드 넘버들(Codenames, Tags, and Build Numbers)

안녕하세요 버섯돌이 유재성입니다.

안드로이드 프로그래밍을 하다보면 호환성 문제로 코드네임과 버전에 따른 API Level 정보가 필요한 경우가 있습니다.

단순히 코드명과 버전 정보만 올리려다 다양하게 활용 할 수 있도록 사이트 소개 겸 안드로이드 소스 사이트의 글을 옮겨 놓습니다.

안드로이드의 동작 방식이 궁금하신 분들은 방문하셔서 훑어 보셔도 좋으리라 봅니다.

 

사이트 : http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

API Level이 어떤 것이며 어떤 형태로 사용하는지 세부적인 내용을 다루고 있으니 궁금하신 분들은 링크 페이지를 방문하시기 바랍니다.

Platform VersionAPI LevelVERSION_CODENotes
Android 4.419KITKATPlatform Highlights
Android 4.318JELLY_BEAN_MR2Platform Highlights
Android 4.2, 4.2.217JELLY_BEAN_MR1Platform Highlights
Android 4.1, 4.1.116JELLY_BEANPlatform Highlights
Android 4.0.3, 4.0.415ICE_CREAM_SANDWICH_MR1Platform Highlights
Android 4.0, 4.0.1, 4.0.214ICE_CREAM_SANDWICH
Android 3.213HONEYCOMB_MR2
Android 3.1.x12HONEYCOMB_MR1Platform Highlights
Android 3.0.x11HONEYCOMBPlatform Highlights
Android 2.3.4
Android 2.3.3
10GINGERBREAD_MR1Platform Highlights
Android 2.3.2
Android 2.3.1
Android 2.3
9GINGERBREAD
Android 2.2.x8FROYOPlatform Highlights
Android 2.1.x7ECLAIR_MR1Platform Highlights
Android 2.0.16ECLAIR_0_1
Android 2.05ECLAIR
Android 1.64DONUTPlatform Highlights
Android 1.53CUPCAKEPlatform Highlights
Android 1.12BASE_1_1
Android 1.01BASE

 

 

사이트 : http://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases

안드로이드 소스와 관련된 곳으로 세부적인 내용을 다룹니다.

Codenames, Tags, and Build Numbers

At a high level, Android development happens around families of releases, which use code names ordered alphabetically after tasty treats.

Platform Codenames, Versions, API Levels, and NDK Releases


The code names match the following version numbers, along with API levels and NDK releases provided for convenience:

Code nameVersionAPI level
(no code name)1.0API level 1
(no code name)1.1API level 2
Cupcake1.5API level 3, NDK 1
Donut1.6API level 4, NDK 2
Eclair2.0API level 5
Eclair2.0.1API level 6
Eclair2.1API level 7, NDK 3
Froyo2.2.xAPI level 8, NDK 4
Gingerbread2.3 - 2.3.2API level 9, NDK 5
Gingerbread2.3.3 - 2.3.7API level 10
Honeycomb3.0API level 11
Honeycomb3.1API level 12, NDK 6
Honeycomb3.2.xAPI level 13
Ice Cream Sandwich4.0.1 - 4.0.2API level 14, NDK 7
Ice Cream Sandwich4.0.3 - 4.0.4API level 15, NDK 8
Jelly Bean4.1.xAPI level 16
Jelly Bean4.2.xAPI level 17
Jelly Bean4.3.xAPI level 18
KitKat4.4 - 4.4.2API level 19

Starting with Cupcake, individual builds are identified with a short build code, e.g. FRF85B.

The first letter is the code name of the release family, e.g. F is Froyo.

The second letter is a branch code that allows Google to identify the exact code branch that the build was made from, and R is by convention the primary release branch.

The next letter and two digits are a date code. The letter counts quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two digits count days within the quarter, so F85 is June 24 2010.

Finally, the last letter identifies individual versions related to the same date code, sequentially starting with A; A is actually implicit and usually omitted for brevity.

The date code is not guaranteed to be the exact date at which a build was made, and it is common that minor variations added to an existing build re-use the same date code as that existing build.

Source Code Tags and Builds


Starting with Donut, the exact list of tags and builds is in the following table:

BuildTagNotes
DRC83android-1.6_r1.1earliest Donut version, ADP1, ADP2
DRC92android-1.6_r1.2
DRD08android-1.6_r1.3
DRD20android-1.6_r1.4
DMD64android-1.6_r1.5latest Donut version
ESD20android-2.0_r1earliest Eclair version
ESD56android-2.0.1_r1
ERD79android-2.1_r1Nexus One
ERE27android-2.1_r2Nexus One
EPE54Bandroid-2.1_r2.1pNexus One
ESE81android-2.1_r2.1s
EPF21Bandroid-2.1_r2.1p2latest Eclair version
FRF85Bandroid-2.2_r1earliest Froyo version, Nexus One
FRF91android-2.2_r1.1Nexus One
FRG01Bandroid-2.2_r1.2
FRG22Dandroid-2.2_r1.3
FRG83android-2.2.1_r1Nexus One
FRG83Dandroid-2.2.1_r2Nexus One
FRG83Gandroid-2.2.2_r1Nexus One
FRK76android-2.2.3_r1
FRK76Candroid-2.2.3_r2latest Froyo version
GRH55android-2.3_r1earliest Gingerbread version, Nexus S
GRH78android-2.3.1_r1Nexus S
GRH78Candroid-2.3.2_r1Nexus S
GRI40android-2.3.3_r1Nexus One, Nexus S
GRI54android-2.3.3_r1.1Nexus S
GRJ06Dandroid-2.3.4_r0.9Nexus S 4G
GRJ22android-2.3.4_r1Nexus One, Nexus S, Nexus S 4G
GRJ90android-2.3.5_r1Nexus S 4G
GRK39Candroid-2.3.6_r0.9Nexus S
GRK39Fandroid-2.3.6_r1Nexus One, Nexus S
GWK74android-2.3.7_r1latest Gingerbread version, Nexus S 4G
ITL41Dandroid-4.0.1_r1earliest Ice Cream Sandwich version, Galaxy Nexus
ITL41Dandroid-4.0.1_r1.1Galaxy Nexus
ITL41Fandroid-4.0.1_r1.2Galaxy Nexus
ICL53Fandroid-4.0.2_r1Galaxy Nexus
IML74Kandroid-4.0.3_r1Nexus S
IML77android-4.0.3_r1.1
IMM76android-4.0.4_r1
IMM76Dandroid-4.0.4_r1.1Nexus S, Nexus S 4G, Galaxy Nexus
IMM76Iandroid-4.0.4_r1.2Galaxy Nexus
IMM76Kandroid-4.0.4_r2Galaxy Nexus
IMM76Landroid-4.0.4_r2.1latest Ice Cream Sandwich version
JRO03Candroid-4.1.1_r1earliest Jelly Bean version, Galaxy Nexus
JRO03Dandroid-4.1.1_r1.1Nexus 7
JRO03Eandroid-4.1.1_r2Nexus S
JRO03Handroid-4.1.1_r3
JRO03Landroid-4.1.1_r4Nexus S
JRO03Oandroid-4.1.1_r5Galaxy Nexus
JRO03Randroid-4.1.1_r6Nexus S 4G
JRO03Sandroid-4.1.1_r6.1Nexus 7
JZO54Kandroid-4.1.2_r1Nexus S, Galaxy Nexus, Nexus 7
JZO54Landroid-4.1.2_r2
JZO54Mandroid-4.1.2_r2.1
JOP40Candroid-4.2_r1Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10
JOP40Dandroid-4.2.1_r1Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10
JOP40Fandroid-4.2.1_r1.1Nexus 10
JOP40Gandroid-4.2.1_r1.2Nexus 4
JDQ39android-4.2.2_r1Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10
JDQ39Bandroid-4.2.2_r1.1Nexus 7
JDQ39Eandroid-4.2.2_r1.1Nexus 4
JWR66Landroid-4.3_r0.9Nexus 7
JWR66Nandroid-4.3_r0.9.1Galaxy Nexus, Nexus 7 (grouper/tilapia/flo), Nexus 4, Nexus 10
JWR66Vandroid-4.3_r1Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10
JWR66Yandroid-4.3_r1.1Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10
JSR78Dandroid-4.3_r2Nexus 7 (deb)
JSS15Jandroid-4.3_r2.1Jelly Bean version, Nexus 7 (flo/deb)
JSS15Qandroid-4.3_r2.2Jelly Bean version, Nexus 7 (flo)
JSS15Randroid-4.3_r2.3Latest Jelly Bean version, Nexus 7 (flo)
JLS36Candroid-4.3_r3Jelly Bean version, Nexus 7 (deb)
JLS36Iandroid-4.3.1_r1Latest Jelly Bean version, Nexus 7 (deb)
KRT16Mandroid-4.4_r1Initial KitKat version, Nexus 5 (hammerhead)
KRT16Sandroid-4.4_r1.2KitKat version, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10
KOT49Eandroid-4.4.1_r1KitKat version, Nexus 5, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10
KOT49Handroid-4.4.2_r1KitKat version, Nexus 5, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10
KVT49Landroid-4.4.2_r2Latest KitKat version, Nexus 7 (deb Verizon)

The branches froyo, gingerbread, ics-mr0, ics-mr1, jb-dev, jb-mr1-dev, jb-mr1.1-dev, jb-mr2-dev, kitkat-dev represent development branches that do not exactly match configurations that were tested by Google. They might contain a variety of changes in addition to the official tagged releases, and those haven't been as thoroughly tested.

Honeycomb GPL Modules


For Honeycomb, the entire platform source code isn't available. However, the parts of Honeycomb licensed under the GPL and LGPL are available under the following tags:

BuildTagNotes
HRI39android-3.0_r1earliest Honeycomb version
HRI66android-3.0_r1.1
HWI69android-3.0_r1.2
HRI83android-3.0_r1.3
HMJ37android-3.1_r1
HTJ85Bandroid-3.2_r1
HTK55Dandroid-3.2.1_r1
HTK75Dandroid-3.2.1_r2
HLK75Candroid-3.2.2_r1
HLK75Dandroid-3.2.2_r2
HLK75Fandroid-3.2.4_r1
HLK75Handroid-3.2.6_r1latest Honeycomb version

There is no manifest that contains exactly those. However, there are manifests that allow building those components. The following commands work for 3.0_r1.1, and using other versions can be done by switching the git checkout paramater, and if necessary the -m parameter in repo init. The git checkout command outputs an error for the non-GPL projects, where it can't find the tag in question.

$ repo init -b master -m base-for-3.0-gpl.xml
$ repo sync
$ repo forall
-c git checkout android-3.0_r1.1