Skyler Kaufman | 4443691 | 2011-04-07 15:11:52 -0700 | [diff] [blame^] | 1 | <!-- |
| 2 | Copyright 2010 The Android Open Source Project |
| 3 | |
| 4 | Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | you may not use this file except in compliance with the License. |
| 6 | You may obtain a copy of the License at |
| 7 | |
| 8 | http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | |
| 10 | Unless required by applicable law or agreed to in writing, software |
| 11 | distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | See the License for the specific language governing permissions and |
| 14 | limitations under the License. |
| 15 | --> |
| 16 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 17 | # Codenames, Tags, and Build Numbers # |
| 18 | |
| 19 | At a high level, Android development happens around families of |
| 20 | releases, which use code names ordered alphabetically after tasty |
| 21 | treats. |
| 22 | |
| 23 | The code names match the following version numbers, along with |
| 24 | API levels and NDK releases provided for convenience: |
| 25 | |
| 26 | Code name | Version | API level |
| 27 | ---------------|---------|------------ |
| 28 | (no code name) | 1.0 | API level 1 |
| 29 | (no code name) | 1.1 | API level 2 |
| 30 | Cupcake | 1.5 | API level 3, NDK 1 |
| 31 | Donut | 1.6 | API level 4, NDK 2 |
| 32 | Eclair | 2.0 | API level 5 |
| 33 | Eclair | 2.0.1 | API level 6 |
| 34 | Eclair | 2.1 | API level 7, NDK 3 |
| 35 | Froyo | 2.2.x | API level 8, NDK 4 |
| 36 | Gingerbread | 2.3.x | API level 9, NDK 5 |
| 37 | |
| 38 | Starting with Cupcake, individual builds are identified with a short |
| 39 | build code, e.g. FRF85B. The first letter is the code name of the |
| 40 | release family, e.g. F is Froyo. The second letter is a branch code |
| 41 | that allows Google to identify the exact code branch that the build |
| 42 | was made from, and R is by convention the primary release branch. |
| 43 | The next letter and two digits are a date code. The letter counts |
| 44 | quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two |
| 45 | digits count days within the quarter, so F85 is June 24 2010. |
| 46 | Finally, the last letter identifies individual versions related to |
| 47 | the same date code, sequentially starting with A; A is actually |
| 48 | implicit and usually omitted for brevity. The date code is not |
| 49 | guaranteed to be the exact date at which a build was made, and it is |
| 50 | common that minor variations added to an existing build re-use the |
| 51 | same date code as that existing build. |
| 52 | |
| 53 | Starting with Donut, the exact list of tags and builds is in the |
| 54 | following table: |
| 55 | |
| 56 | Build | Tag | Notes |
| 57 | -------|--------------------|----------------------------------- |
| 58 | DRC83 | android-1.6_r1.1 earliest Donut version, ADP1, ADP2 |
| 59 | DRC92 | android-1.6_r1.2 |
| 60 | DRD08 | android-1.6_r1.3 |
| 61 | DRD20 | android-1.6_r1.4 |
| 62 | DMD64 | android-1.6_r1.5 | latest Donut version |
| 63 | ESD20 | android-2.0_r1 | earliest Eclair version |
| 64 | ESD56 | android-2.0.1_r1 |
| 65 | ERD79 | android-2.1_r1 | Nexus One |
| 66 | ERE27 | android-2.1_r2 | Nexus One |
| 67 | EPE54B | android-2.1_r2.1p | Nexus One |
| 68 | ESE81 | android-2.1_r2.1s |
| 69 | EPF21B | android-2.1_r2.1p2 | latest Eclair version |
| 70 | FRF85B | android-2.2_r1 | earliest Froyo version, Nexus One |
| 71 | FRF91 | android-2.2_r1.1 | Nexus One |
| 72 | FRG01B | android-2.2_r1.2 |
| 73 | FRG22D | android-2.2_r1.3 |
| 74 | FRG83 | android-2.2.1_r1 | Nexus One |
| 75 | FRG83D | android-2.2.1_r2 | Nexus One |
| 76 | FRG83G | android-2.2.2_r1 | latest Froyo version, Nexus One |
| 77 | GRH55 | android-2.3_r1 | earliest Gingerbread version, Nexus S |
| 78 | GRH78 | android-2.3.1_r1 | Nexus S |
| 79 | GRH78C | android-2.3.2_r1 | latest Gingerbread version, Nexus S |
| 80 | |
| 81 | The branches donut, eclair, froyo, gingerbread represent development |
| 82 | branches that do not exactly match configurations that were tested |
| 83 | by Google. They might contain a variety of changes in addition to |
| 84 | the official tagged releases, and those haven't been as thoroughly |
| 85 | tested. |
| 86 | |