API 8 · FROYO
Android 2.2 Froyo
Massive performance improvement (2–5× in benchmarks)
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 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_ADMINsignatureBIND_WALLPAPERsignature|privilegedKILL_BACKGROUND_PROCESSESnormalSET_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.