안녕하세요 버섯돌이 유재성입니다.
안드로이드 프로그래밍을 하다보면 호환성 문제로 코드네임과 버전에 따른 API Level 정보가 필요한 경우가 있습니다.
단순히 코드명과 버전 정보만 올리려다 다양하게 활용 할 수 있도록 사이트 소개 겸 안드로이드 소스 사이트의 글을 옮겨 놓습니다.
안드로이드의 동작 방식이 궁금하신 분들은 방문하셔서 훑어 보셔도 좋으리라 봅니다.
사이트 : http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
API Level이 어떤 것이며 어떤 형태로 사용하는지 세부적인 내용을 다루고 있으니 궁금하신 분들은 링크 페이지를 방문하시기 바랍니다.
안드로이드 소스와 관련된 곳으로 세부적인 내용을 다룹니다.
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 name | Version | API level |
---|---|---|
(no code name) | 1.0 | API level 1 |
(no code name) | 1.1 | API level 2 |
Cupcake | 1.5 | API level 3, NDK 1 |
Donut | 1.6 | API level 4, NDK 2 |
Eclair | 2.0 | API level 5 |
Eclair | 2.0.1 | API level 6 |
Eclair | 2.1 | API level 7, NDK 3 |
Froyo | 2.2.x | API level 8, NDK 4 |
Gingerbread | 2.3 - 2.3.2 | API level 9, NDK 5 |
Gingerbread | 2.3.3 - 2.3.7 | API level 10 |
Honeycomb | 3.0 | API level 11 |
Honeycomb | 3.1 | API level 12, NDK 6 |
Honeycomb | 3.2.x | API level 13 |
Ice Cream Sandwich | 4.0.1 - 4.0.2 | API level 14, NDK 7 |
Ice Cream Sandwich | 4.0.3 - 4.0.4 | API level 15, NDK 8 |
Jelly Bean | 4.1.x | API level 16 |
Jelly Bean | 4.2.x | API level 17 |
Jelly Bean | 4.3.x | API level 18 |
KitKat | 4.4 - 4.4.2 | API 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:
Build | Tag | Notes |
---|---|---|
DRC83 | android-1.6_r1.1 | earliest Donut version, ADP1, ADP2 |
DRC92 | android-1.6_r1.2 | |
DRD08 | android-1.6_r1.3 | |
DRD20 | android-1.6_r1.4 | |
DMD64 | android-1.6_r1.5 | latest Donut version |
ESD20 | android-2.0_r1 | earliest Eclair version |
ESD56 | android-2.0.1_r1 | |
ERD79 | android-2.1_r1 | Nexus One |
ERE27 | android-2.1_r2 | Nexus One |
EPE54B | android-2.1_r2.1p | Nexus One |
ESE81 | android-2.1_r2.1s | |
EPF21B | android-2.1_r2.1p2 | latest Eclair version |
FRF85B | android-2.2_r1 | earliest Froyo version, Nexus One |
FRF91 | android-2.2_r1.1 | Nexus One |
FRG01B | android-2.2_r1.2 | |
FRG22D | android-2.2_r1.3 | |
FRG83 | android-2.2.1_r1 | Nexus One |
FRG83D | android-2.2.1_r2 | Nexus One |
FRG83G | android-2.2.2_r1 | Nexus One |
FRK76 | android-2.2.3_r1 | |
FRK76C | android-2.2.3_r2 | latest Froyo version |
GRH55 | android-2.3_r1 | earliest Gingerbread version, Nexus S |
GRH78 | android-2.3.1_r1 | Nexus S |
GRH78C | android-2.3.2_r1 | Nexus S |
GRI40 | android-2.3.3_r1 | Nexus One, Nexus S |
GRI54 | android-2.3.3_r1.1 | Nexus S |
GRJ06D | android-2.3.4_r0.9 | Nexus S 4G |
GRJ22 | android-2.3.4_r1 | Nexus One, Nexus S, Nexus S 4G |
GRJ90 | android-2.3.5_r1 | Nexus S 4G |
GRK39C | android-2.3.6_r0.9 | Nexus S |
GRK39F | android-2.3.6_r1 | Nexus One, Nexus S |
GWK74 | android-2.3.7_r1 | latest Gingerbread version, Nexus S 4G |
ITL41D | android-4.0.1_r1 | earliest Ice Cream Sandwich version, Galaxy Nexus |
ITL41D | android-4.0.1_r1.1 | Galaxy Nexus |
ITL41F | android-4.0.1_r1.2 | Galaxy Nexus |
ICL53F | android-4.0.2_r1 | Galaxy Nexus |
IML74K | android-4.0.3_r1 | Nexus S |
IML77 | android-4.0.3_r1.1 | |
IMM76 | android-4.0.4_r1 | |
IMM76D | android-4.0.4_r1.1 | Nexus S, Nexus S 4G, Galaxy Nexus |
IMM76I | android-4.0.4_r1.2 | Galaxy Nexus |
IMM76K | android-4.0.4_r2 | Galaxy Nexus |
IMM76L | android-4.0.4_r2.1 | latest Ice Cream Sandwich version |
JRO03C | android-4.1.1_r1 | earliest Jelly Bean version, Galaxy Nexus |
JRO03D | android-4.1.1_r1.1 | Nexus 7 |
JRO03E | android-4.1.1_r2 | Nexus S |
JRO03H | android-4.1.1_r3 | |
JRO03L | android-4.1.1_r4 | Nexus S |
JRO03O | android-4.1.1_r5 | Galaxy Nexus |
JRO03R | android-4.1.1_r6 | Nexus S 4G |
JRO03S | android-4.1.1_r6.1 | Nexus 7 |
JZO54K | android-4.1.2_r1 | Nexus S, Galaxy Nexus, Nexus 7 |
JZO54L | android-4.1.2_r2 | |
JZO54M | android-4.1.2_r2.1 | |
JOP40C | android-4.2_r1 | Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10 |
JOP40D | android-4.2.1_r1 | Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10 |
JOP40F | android-4.2.1_r1.1 | Nexus 10 |
JOP40G | android-4.2.1_r1.2 | Nexus 4 |
JDQ39 | android-4.2.2_r1 | Galaxy Nexus, Nexus 7, Nexus 4, Nexus 10 |
JDQ39B | android-4.2.2_r1.1 | Nexus 7 |
JDQ39E | android-4.2.2_r1.1 | Nexus 4 |
JWR66L | android-4.3_r0.9 | Nexus 7 |
JWR66N | android-4.3_r0.9.1 | Galaxy Nexus, Nexus 7 (grouper/tilapia/flo), Nexus 4, Nexus 10 |
JWR66V | android-4.3_r1 | Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10 |
JWR66Y | android-4.3_r1.1 | Galaxy Nexus, Nexus 7 (grouper/tilapia), Nexus 4, Nexus 10 |
JSR78D | android-4.3_r2 | Nexus 7 (deb) |
JSS15J | android-4.3_r2.1 | Jelly Bean version, Nexus 7 (flo/deb) |
JSS15Q | android-4.3_r2.2 | Jelly Bean version, Nexus 7 (flo) |
JSS15R | android-4.3_r2.3 | Latest Jelly Bean version, Nexus 7 (flo) |
JLS36C | android-4.3_r3 | Jelly Bean version, Nexus 7 (deb) |
JLS36I | android-4.3.1_r1 | Latest Jelly Bean version, Nexus 7 (deb) |
KRT16M | android-4.4_r1 | Initial KitKat version, Nexus 5 (hammerhead) |
KRT16S | android-4.4_r1.2 | KitKat version, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10 |
KOT49E | android-4.4.1_r1 | KitKat version, Nexus 5, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10 |
KOT49H | android-4.4.2_r1 | KitKat version, Nexus 5, Nexus 7 (flo/deb/grouper/tilapia), Nexus 4, Nexus 10 |
KVT49L | android-4.4.2_r2 | Latest 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:
Build | Tag | Notes |
---|---|---|
HRI39 | android-3.0_r1 | earliest Honeycomb version |
HRI66 | android-3.0_r1.1 | |
HWI69 | android-3.0_r1.2 | |
HRI83 | android-3.0_r1.3 | |
HMJ37 | android-3.1_r1 | |
HTJ85B | android-3.2_r1 | |
HTK55D | android-3.2.1_r1 | |
HTK75D | android-3.2.1_r2 | |
HLK75C | android-3.2.2_r1 | |
HLK75D | android-3.2.2_r2 | |
HLK75F | android-3.2.4_r1 | |
HLK75H | android-3.2.6_r1 | latest 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
'Android' 카테고리의 다른 글
[추천][Site] Android 기초 강좌 - 안드로이드 사이트의 Training 목차 (0) | 2014.11.23 |
---|---|
[버섯] Media Playback - 안드로이드에서 RTSP 플레이어 개발 관련 (0) | 2014.11.23 |
[펌][LIB]Chat bubbles in Android - 체팅창의 말풍선 구현 방법 (0) | 2014.11.23 |
[펌][Android][AndEngine] AndEngine Guides (0) | 2014.11.23 |
[펌][Android][AndEngine] 인터넷상의 이미지 로딩하기 (Loading texture from internet source?) (0) | 2014.11.23 |