Zygote
API 1 · BASE

Android 1.0

The first Android release, on the T-Mobile G1 / HTC Dream

released
2008-09-23
runtime
Dalvik
design
pre-Holo (pre-release G1 look)
status
stable

The story

Android Inc. was founded in 2003 to build an operating system for cameras, then pivoted to phones. Google acquired it in 2005, and the Open Handset Alliance announced the platform in November 2007. The first device, the T-Mobile G1, arrived in September 2008.

The problem

There was no credible open mobile platform. Symbian was dominant, the iPhone had just launched, and carriers controlled what software a phone could run.

Android 1.0 shipped a complete stack: Linux kernel, Dalvik, a Java API, a web browser, the Android Market. It was the first mainstream phone OS where a third party could install software the carrier had not approved.

The one thing to remember

The version that established the shape everything else grew into.

What shipped

  • The first Android release, on the T-Mobile G1 / HTC Dream
  • Pull-down notification shade
  • Home screen with widgets
  • Android Market for apps
  • Google Maps with Street View

Platform internals

What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.

  • Initial AOSP platform: Linux kernel, Dalvik VM, core libraries
  • The first zygote-based app spawning model

What developers had to deal with

  • The original android.* SDK: Activity, Service, BroadcastReceiver, ContentProvider
  • SQLite via android.database
  • WebKit-based WebView

Permissions introduced here

  • ACCESS_CHECKIN_PROPERTIESunknown
  • ACCESS_COARSE_LOCATIONdangerous
  • ACCESS_FINE_LOCATIONdangerous
  • ACCESS_LOCATION_EXTRA_COMMANDSnormal
  • ACCESS_NETWORK_STATEnormal
  • ACCESS_WIFI_STATEnormal
  • BATTERY_STATSsignature|privileged|development
  • BLUETOOTHnormal
  • BLUETOOTH_ADMINnormal
  • BROADCAST_PACKAGE_REMOVEDunknown
  • BROADCAST_STICKYnormal
  • CALL_PHONEdangerous
  • CALL_PRIVILEGEDunknown
  • CAMERAdangerous
  • CHANGE_COMPONENT_ENABLED_STATEunknown
  • CHANGE_CONFIGURATIONsignature|privileged|development
  • CHANGE_NETWORK_STATEnormal
  • CHANGE_WIFI_STATEnormal
  • CLEAR_APP_CACHEsignature|privileged
  • CONTROL_LOCATION_UPDATESunknown
  • DELETE_CACHE_FILESsignature|privileged
  • DELETE_PACKAGESunknown
  • DIAGNOSTICunknown
  • DISABLE_KEYGUARDnormal

…and 50 more.

Where this sits

Release 1 of 37 API levels, by date
Headline features
5
Architecture changes
2
Developer changes
3
Sources cited
3

Kernel

This release shipped on Linux kernel versions 2.6.25. Kernel versions vary by device.