Android Browser versions
Whilst looking into browser update cycles I started examining the various versions of the Android Browser. I wasn't expecting this to be simple but it ended up being more complex than I thought so I've summarised my findings here.
The main data points I've used for the comparison are outlined below.
Android codename
The Android codename is probably the easiest thing to grasp when it comes to Android versions but, whilst it mostly matches the versioning system, it doesn't directly map to it - for example Eclair was used for Android 2.0 and 2.1, Honeycomb for 3.0, 3.1 and 3.2, and Jellybean for 4.1, 4.2 and 4.3.
Android version
The Android version is the next thing to look at, this follows a standard format of major.minor.patch
. However, this doesn't seem to tell the full story - there is also an API version.
API version
I'm not entirely sure what the API version actually maps to in Android but it is both sequential and more fine grained than the main Android version so I've gone down to this level.
Update 2015-03-19: API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.
WebKit version
Whilst a browser is more than just the rendering engine - the JavaScript engine plays a significant part - I've not got data for the JavaScript engine so I've looked at the WebKit version as an indicator to see if the browser had changed. I don't have complete data for this but the WebKit version is updated much less frequently than anything else but still not to a set pattern.
However, the WebKit version doesn't seem to be reliable as an indicator of the browser changing, the Can I Use... support tables for Android 2.2 and 2.3 indicate that <audio>
and <video>
support changed between these two versions yet the WebKit version did not. There were also two API versions covered by 2.3 and the data from Can I Use... doesn't indicate which one they are referring to when they say 2.3, but 2.3.3+ (API 10) is much more common than 2.3-2.3.2 (API 9).
Further complicating the situation I have two devices running different patch versions of Android 2.3 at API version 10 - 2.3.4 and 2.3.5. Despite having the same WebKit version, and somewhat counter intuitively, the Browser on the 2.3.4 device scores marginally higher than the 2.3.5 device on both the HTML5 and CSS3 tests.
Chrome for Android
As of Android 4.1, Chrome became the default browser. Or not. It's hard to say. The presence of Browser in an Android 4.2 version of Cyanogen shows that it's still possible to have the old default browser. Added to which Samsung and LG devices ship with different versions of Chrome (and others probably do too). At least one Android 4.1 device only ships with Browser and maybe some devices include Browser as well as Chrome?
With Android 4.4 it seems that Browser is not included but vendors can recreate Browser using a web view. But then again, in Android 4.4 the WebView is significantly different from previous versions of Android since it is now based on Chromium and the V8 JavaScript engine. I think that this now means we can mark the official end of Browser in Android at version 4.3 (Jellybean) [API 18].
Update 2014-04-15: Version 11 of Cyanogen is based on Android 4.4 and includes Browser which reports itself in the user agent string as Chrome 30.0.0.0. This fits with the release date of Chrome 30 making it the current version of Chrome when Android 4.4 was released.
Update 2015-01-19: Android 5 (Lollipop) now uses an updatable Chromium for the web view meaning that it can now benefit from updates independent of the operating system.
Android Browser version data
Date | API Version | Android version | Codename | WebKit |
---|---|---|---|---|
2009-04-30 | 3 | 1.5 | Cupcake | 528.5 |
2009-09-15 | 4 | 1.6 | Donut | 528.5 |
2009-09-26 | 5 | 2.0 | Eclair | 530.17 |
2009-12-03 | 6 | 2.0.1 | Eclair | 530.17 |
2010-01-12 | 7 | 2.1 | Eclair | 530.17 |
2010-05-20 | 8 | 2.2 | Froyo | 533.1 |
2010-12-06 | 9 | 2.3 | Gingerbread | ? |
2011-02-09 | 10 | 2.3.3 | Gingerbread | 533.1 |
2011-02-22 | 11 | 3.0 | Honeycomb | 534.13 |
2011-05-10 | 12 | 3.1 | Honeycomb | 534.13 |
2011-07-15 | 13 | 3.2 | Honeycomb | 534.13 |
2011-10-19 | 14 | 4.0 | Ice cream sandwich | 534.30 |
2011-12-16 | 15 | 4.0.3 | Ice cream sandwich | 534.30 |
2012-07-09 | 16 | 4.1 | Jellybean | 534.30 |
2012-11-13 | 17 | 4.2 | Jellybean | 534.30 |
2013-07-24 | 18 | 4.3 | Jellybean | 534.30 |
2013-07-24 | 19 | 4.4 | KitKat | 537.36 |
2014-07-14 | 20 | 4.4w | KitKat for wearables | N/A |
2014-11-03 | 21 | 5.0 | Lollipop | 537.36 (Chrome 37) |
2015-03-09 | 22 | 5.1 | Lollipop | ? |
Conclusion
There isn't any correlation between any of the data points and, even if there were, it's apparent this isn't the whole story. Essentially, don't try and make any assumptions about Android browsers based on any of the available data points - do your own testing.