The Browser

The improvements to the Android web browser are some of the most noticeable in Ice Cream Sandwich. Browser performance both in JavaScript rendering and web page scrolling is worlds better than in Gingerbread. We've already explained why scrolling is smoother (full OpenGL ES render path), while the js performance improvements come courtesy of a newer V8 rendering engine in ICS.

The browser in 4.x also includes essentially everything that made the browser in 3.x smooth as well. As opposed to the Android 2.x browser's immediate rendering system - which would redraw the page in its entirety as you zoomed and panned around and seem choppy as a result - Android 3.x/4.x now render tiles into a backing store for webpages. This is the same system that iOS, webOS, and Samsung's custom browsers use, and as a result panning and translating around is now just as smooth as it is in those platforms. To be totally honest, this is probably one of the single largest and most welcome improvements over Android 2.x because of how dramatic the difference is.

 
 
Android 4.0 browser with visual indicator enabled (left), debug settings (right)

In Android 4.0 you can actually go inside the debug settings for the browser (enter about:debug into the address bar, enter, then a new settings pane emerges) and enable or disable OpenGL assisted rendering for the browser. With it off, it feels just like 2.x's choppy stock browser, and with it on, it feels buttery smooth like 3.x. The difference is beyond dramatic. This is actually a feature that was present in Android 3.x as well. 

A look at SunSpider and Browsermark performance tells us all we need to know about how the JavaScript V8 engine performance has changed under ICS:

SunSpider Javascript Benchmark 0.9.1 - Stock Browser

BrowserMark

While companies like Motorola and Samsung backported parts of the Honeycomb browser to their own Gingerbread browsers, the stock Gingerbread browser needed work. ICS modernizes the Android web browser and finally removes the need for third party customizations, at least from a performance standpoint.

Gingerbread vs. Ice Cream Sandwich
  Gingerbread Ice Cream Sandwich
Browser

The ICS browser is still WebKit based and uses a much newer version of WebKit than what you'll find in Android 2.3.6. Compared to the latest Honeycomb browser however there's not all that much difference in version number. The ICS browser does still use an older version of WebKit than Mobile Safari in iOS 5.0.1:

User Agent String Comparison
Device OS WebKit Version UA String
Apple iPhone 4S iOS 5.0.1 534.46 Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3
Samsung Galaxy Nexus Android 4.0.2 534.30

Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

ASUS TF Prime Android 3.2.1 534.13

Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer Prime TF201 Build HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

Google Nexus One Android 2.3.6 533.1 Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

HTML5 compatibility is fairly similar to Honeycomb, although a significant improvement compared to Gingerbread. If you haven't had any experience with Honeycomb tablets, the ICS browser will feel like like brand new technology.

The HTML5 Test
Test Apple iPhone 4S Samsung Galaxy Nexus Google Nexus One ASUS Eee Pad Transformer ASUS Eee Pad Transformer Prime
OS iOS 5.0.1 Android 4.0.2 Android 2.3.6 Android 3.2.1 Android 3.2.1
WebKit Version 534.46 534.30 533.1 534.13 534.13
Total Score 305 (and 9 bonus points) 256 (and 3 bonus points) 182 (and 1 bonus point) 222 (and 3 bonus points) 233 (and 3 bonus points)
Parsing rules 11 (2 bonus points) 11 (2 bonus points) 1/11 11 (2 bonus points) 11 (2 bonus points)
Canvas 20 20 20 20 20
Video 21/31 (4 bonus points) 21/31 21/31 21/31 21/31
Audio 20 (3 bonus points) 20 (1 bonus point) 20 (1 bonus point) 20 (1 bonus point) 20 (1 bonus point)
Elements 22/29 23/29 13/29 20/29 20/29
Forms 77/100 57/100 33/100 54/100 54/100
User Interaction 17/36 17/36 0/36

0/36

0/36
History and navigation 5 5 5 0/5 0/5
Microdata 0/15 0/15 0/15 0/15 0/15
Web applications 15/20 15/20 19/20 15/20 15/20
Security 5/10 5/10 5/10 5/10 5/10
Geolocation 15 15 15 15 15
WebGL 9/25 9/25 0/25 0/25 9/25
Communication 32/36 12/36 9/36 10/36 12/36
Files 0/20 10/20 0/20 10/20 10/20
Storage 15/20 15/20 15/20 15/20 15/20
Workers 15 0/15 0/15 0/15 0/15
Local multimedia 0/20 0/20 0/20 0/20 0/20
Notifications 0/10 0/10 0/10 0/10 0/10
Other 6/8 6/8 6/8 6/8 6/8

Performance and compatibility are obvious improvements, however there's much more to the ICS browser. For starters it implements tabbed browsing, a feature that has been available on Honeycomb but not in Gingerbread. Given the small screen size, tabs aren't immediately visible but are instead switched between after hitting the tabs button. The process makes sense and thanks to GPU accelerated drawing, scrolling through tabs is extremely smooth.

 
The normal desktop UA switcher (left), More options under developer settings (right)

Google added quick user agent switching to ask for desktop versions of websites vs. mobile by default through a checkbox under settings. Enabling the option changes the browser's UA string from representing itself as a mobile Safari browser to Chrome 11. There's also a menu inside debug settings to change your user agent (UAString) to look like the desktop, iPhone, iPad, Nexus One with Froyo, or a Xoom with Honeycomb. 

User Agent String Comparison
Device UA String
Default

Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Desktop

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit 534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24

Prior to ICS, the browser was a serious limitation of the Android platform on smartphones - it was choppy, and something OEMs continually replaced with their own (sometimes worse, sometimes better) browser. Granted you could always download and replace the browser with one of your own choosing, but for the mainstream user the Gingerbread browser was a problem. In ICS the browser is a blessing to use. It's very fast, smooth and compatible. We've had no problems using the Honeycomb browser and the same can be thankfully said about the evolution of it in ICS.

The Keyboard & Facial Recognition Email & Gmail
Comments Locked

185 Comments

View All Comments

  • CoryS - Thursday, January 19, 2012 - link

    Guys, this is a NEXUS it is a dev device. That primary reason I got it was because of this...better hardware will be right around the corner...but we won't see another Nexus..especially on Verizon for some time.

    It is refreshing to have a community to fix issues OEMS ignore (yes even Apple) for a change. This is my first unlocked device, and i can't see myself ever going back to anything else.
  • medi01 - Friday, January 20, 2012 - link

    Wake up, Smartphone market (worldwide):
    1. Samsung 24%
    2. Apple 18%

    Android vs Apple = 3 vs 1 and gap is raising.

    Most people turn to apple due to FUD, like this article. Google "steppit out of the shade of its competitor" having three times Apple's market share and much more usable interface (try to quickly access settings like wlan/bluetooth/gps on ios)
  • steven75 - Friday, February 10, 2012 - link

    LOL dont you get it? You don't *need* to fiddle with those settings on iOS necause the battery life is so dramatically better.

    Also, funny reading this comment after Apple's Q4 report where they dominated.
  • Omid.M - Wednesday, January 18, 2012 - link

    I hope Samsung puts out this phone based on GN aesthetics but Exynos 5250 (plus MDM9xxx multi-mode/LTE modem) and blows away the competition.

    @moids
  • Chumster - Wednesday, January 18, 2012 - link

    Could someone clarify on what GPU/CPU he was talking about coming in Q2 devices? Cray? Crate? It was hard to pick up on my headphones.
  • mmp121 - Wednesday, January 18, 2012 - link

    Krait

    Read below:

    http://www.anandtech.com/show/4170/qualcomms-annou...

    Enjoy!
  • Conficio - Wednesday, January 18, 2012 - link

    Really, Google can't survive once Walled Garden platforms like iOS gain traction.

    While it is nice to control the OS (Chrome OS) on PC like devices and nice to stick it to Microsoft, it is essential in the world of smart phones. Google clearly saw that Apple did the unthinkable, wrestle control of the phone's apps away from the networks. That is an existential thread for Google. If there is a billion PC users world wide, there is a multitude of smart phone users, sooner or later.

    If a hardware manufacturer and OS provider like Apple (or Microsoft) controls the apps that can be provided to the phone and features, move from browser to apps on phones, then this is the end of (a profitable) google sooner or later.

    From anther point of view, Google is a huge data center that provides you with data services on their computing power (and you pay for it with advertisement somehow). Apple is a hardware manufacturer that sees it necessary to control the software to deliver a good user experience. Sure, two different approaches to a smart phone OS.
  • hackbod - Tuesday, January 24, 2012 - link

    "Google clearly saw that Apple did the unthinkable, wrestle control of the phone's apps away from the networks."

    There is this weird thing I see expressed a lot, as if Android is a reaction to the iPhone.

    It is not.

    In this particular case, it is obvious: Android's SDK was made available a few months after the original iPhone was on sale, well before there was *any* native SDK for the iPhone. At that time Apple's very clear official policy was that web-based apps was the One True Way to create applications for their phone. There was no concept of an App Store, no phone apps except what Apple shipped built in to the iPhone, nothing wrestled away from the networks in that department.

    If Android was a reaction to anything, it was to the current situation on desktop PCs, with one company controlling that platform, and being able to quite strongly dictate and control its ecosystem and thus large parts of the computer industry.

    One of the goals of Android was to try to keep that from happening in the upcoming mobile industry, by creating an open platform so that everybody in the industry can compete as equally as possible.

    (And an aside -- this also makes it funny to see the recent stuff going around about Google "losing control" of Android. Android was very much set up so that no one company, not even Google, could have anything like the control that Microsoft does over Windows. This should be pretty obvious to anyone who wants to actually write thoughtful articles on the topic and not just link bait.)
  • bjacobson - Wednesday, January 18, 2012 - link

    Can you talk more about this? From Diane Hackborne's post here (https://plus.google.com/u/0/105051985738280261832/... it sounds like the "limitation" is memory bandwidth in that hardwares that are "laggy" are laggy because they can't render to the entire screen 2 and 3x per frame for all the overlays. Which wouldn't seem like so much of a Tegra2 limitation in my opinion considering it has the power to play games like Quake 3 at 1600x1200 @ 60fps (I think...right?). What are your thoughts?
  • hackbod - Tuesday, January 24, 2012 - link

    I don't know about the performance of Tegra 2 playing Quake, but you need to be very careful when comparing the traditional 3d workload that GPUs are highly optimized to support (as exemplified by Quake) vs. the performance rendering 2d graphics.

    Traditional 3d games tend to rely, for example, on triangle rendering as much if not more than raw pixel fill rate, and GPUs are designed to be able to do that fast. When drawing 2d scenes, there are very few triangles but those triangles cover very large parts of the screen and are rendered as overlapping layers.

    On all of the hardware I have seen, for 2d rendering raw memory bandwidth (determining the number of times every pixel can be touched per frame) is the #1 impact on performance.

    Look back at that post -- for a typical scroll of all apps in launcher, without using overlay tricks (which aren't available on Tegra when the screen is rotated), you are looking at touching every pixels about 4 times to render all the layers and composite them to the screen. This is just not a typical 3D game workload.

Log in

Don't have an account? Sign up now