Zygote
API 8 · FROYO

Android 2.2 Froyo

Massive performance improvement (2–5× in benchmarks)

released
2010-05-20
runtime
Dalvik
design
pre-Holo
status
stable

The story

By 2010 Android's growth was limited by performance. Buyers compared it to iOS and found it slow.

The problem

Dalvik interpreted every bytecode instruction. There was no compilation, so application code was always slower than native.

Froyo added a trace-based JIT to Dalvik, delivering performance gains large enough that Google demonstrated them with benchmarks. It also added tethering, Flash support and Apps2SD.

The one thing to remember

The first JIT on Android, and the first serious answer to the performance complaint.

What shipped

  • Massive performance improvement (2–5× in benchmarks)
  • Wi-Fi hotspot and USB tethering
  • Flash 10.1 support
  • Apps on SD card

Platform internals

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

  • Trace-based JIT compiler added to Dalvik
  • Support for x86 and ARMv7 optimisations

What developers had to deal with

  • JIT compilation of Dalvik bytecode
  • Apps2SD with android:installLocation
  • Cloud-to-device messaging (C2DM), the ancestor of FCM

Permissions introduced here

  • BIND_DEVICE_ADMINsignature
  • BIND_WALLPAPERsignature|privileged
  • KILL_BACKGROUND_PROCESSESnormal
  • SET_TIMEunknown

Where this sits

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

Kernel

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