You know the Android codenames, right? Starting with Android 1.5, they're alphabetical snacks - Cupcake, Donut, Éclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, and Jelly Bean. But what about before 1.5? What were those called? And why did they start with C? We've got real answers from real Googlers.

Wikipedia's Android Version History is a pretty awesome article, but, as of a few days ago, it was erroneously calling 1.0 and 1.1 "Astro" and "Bender." We had never heard of this, and there wasn't a good source attached to it, so we took to G+ to set the record straight. Luckily for us, Android Engineers Jean-Baptiste Queru, Dianne Hackborn, and Romain Guy chimed in with historical accounts of Android's sugary pseudonyms.

As with any historical accounts, stories are going to differ slightly, but everyone agrees that the delicious code names didn't start with Cupcake, Android 1.1 was known as "Petit Four." After hearing that and doing some Googling, you'll find it even says so on the official Android Platform Overview page.

As for 1.0, the answer may be boring, but JBQ says "Android 1.0 didn't have a codename at all." Dianne Hackborn says she doesn't remember the code name of 1.0, and suggests "maybe it was just 'OMG are we going to survive this?'"

Pre-1.0, things start to get less user-friendly, with JBQ saying:

When I started in Nov 2007, the scheme was around "milestone" builds, and milestones m3 and m5 ended up being used for preview SDKs. After that, we had weekly builds (e.g. WB13 was the build for the 13th week of 2008), and after that we had test cycles during which we were incorporating external feedback (e.g. TC3 was the third such cycle).

There were no codenames at any time from where I started until the beginning of the work on post-1.0 tasks.

And, sure enough, if we take a look at the official SDK archives, you'll see versions like "m3-rc20a," "m3-rc37a," "m5-rc14."

Left: m3-rc20a | Right: m5-rc15

These "milestone" builds are all pre-1.0 builds of Android that look nothing like the 1.0 build we saw ship in the G1. M3 looks like a Blackberry OS, and M5 has 4 apps, no app drawer, and no usable desktop.

If you think names like "m3-rc37a" sound hard to keep track of, you aren't the only one who feels that way, with JBQ explaining that this murkiness would later be the impetus for a new build numbering system.

In early 2009, there was a lot of confusion with the build numbers because people didn't use the full build numbers, saying "rc30" without saying whether they were talking about 1.0-rc30 or 1.1-rc30 (and there were many more variants inside Google). That's when we decided to switch to a new scheme for build numbers, the one that we're now using. The first build under that scheme might have been CRA29.

That's when we realized that having C for the third release was a good idea (even though it was really the fourth release as there had actually been two versions of 1.0), and when we decided to pick codenames alphabetically after that.

And there you have the reason they started with "C." It was the third release, so "C" just seemed like a good idea. JBQ also says that "Donut was the first one where the name was made to explicitly start with a letter in alphabetical order." So it sounds like after realizing Cupcake and 3 went together well, they settled on alphabetical snacks.

So what about these "Astro" and "Bender" names from Wikipedia? Romain Guy says of the Wikipedia article "They link to a talk I gave were I mentioned Astro and Bender but I never said they were 1.0 and 1.1" Dianne Hackborn attaches them to the milestone builds, saying:

Astro Boy and Bender were definitely code names that were tagged on some milestones with plans for using a robot theme, but these may have been pre-1.0 milestones, or plans-that-changed for after 1.0.

And in the G+ post for this post (we are getting seriously recursive here), Dianne also adds that:

The early code name was Astro Boy, not Astro. The plan was to use code names that were fictional robots, and we were going to do them in alphabetical order. As things went on, plans changed, and those milestones were modified, and at some point we ended up with 1.1 being Petit Four because our PM liked tasty treats. We then went with that, but went back to doing them in alphabetical order.

So Astro Boy and Bender were real, but they went with the super-early milestone builds, similar to what's pictured above. The full timeline goes like this:

  • Android milestone builds (with Astro Boy and Bender floating around in here somewhere)
  • Android 1.0 (No codename)
  • Android 1.1 - Petit Four
  • Android 1.5 - Cupcake
  • Android 1.6 - Donut
  • Android 2.0 - Éclair
  • Android 2.1 - Éclair
  • Android 2.2 - Froyo
  • Android 2.3 - Gingerbread
  • Android 3.0 - Honeycomb
  • Android 4.0 - Ice Cream Sandwich
  • Android 4.1 - Jelly Bean

So there you go. An actual codename history, and not this silly "1.0 Astro/1.1 Bender" stuff that people on the internet are endlessly repeating. Don't believe everything you read.