Android 2.3 Gingerbread: the browser

I’ve to admit: I had a high expectative for new APIs and feature support in Gingerbread. After the iOS 4.2 update, and the last Google IO announcements for Gingerbread, I was expecting more HTML5, accelerometer, full-screen webapp and SVG support. Is Android Browser 2.3 supporting this? Let’s see.

What’s new on Android 2.3 browser?

While I am still waiting for the 2.3 OTA (over-the-air) update for my Nexus One, I’ve tested for one hour the Android Browser in the emulator available with the SDK, following the installation and localhost usage guidelines I wrote in Chapter 4 of the book.

Back in July, I’ve talked about Google’s promises on the browser and Froyo (2.2) browser updates. And a week ago, I’ve also talked about iOS 4.2 Safari updates with great surprises.

Therefore, my expectations were high. And I have to be honest: I’m disappointed.

The new browser does not support any of the promised and expected features. It seems to be the same browser with some minor core updates, such as support for better exception handling with new object constructors like SyntaxException, EvalError or URIError.

There is still no support for SVG, Web Sockets or other HTML5 stuff (besides HTML5 compatibility in 2.2). And there is no support for Device Motion, accelerometer, camera or speech support, as promised in Google IO (see video1 -starting at 6:00- and video2).

UPDATE: Here you will find the video:

UPDATE: We can find now WebM support for the video tag on Android 2.3. Animated GIF support was added in 2.2 and is still there in 2.3.

We can access many of these features from Flash Player 10.1, however the user needs to install it from Android Market first.

There is one big change affecting browser typing: the new virtual keyboard (see image at the right). It’s a great opportunity to use the free service I’ve launched a year ago: Mobile Tiny URL. You can short a URL optimized for numeric keypads, like the new Android’s one. Of course, it also works on other keyboards as well.

Waiting Android 3.0 Honeycomb

I have a request for the Android team for Android 3.0 Honeycomb: you need to empower your webapp platform. There is a lot of innovation to do in this topic and the Chrome team is leading this innovation in the desktop world with great success. You need to be at least in the same level in the mobile world.

I will continue with my testing on the browser. If you know any other feature working or missing, use the comment box below. If you want to check what’s new in the native environment, this is a good post.

If you want to know about HTML5 and other stuff for Mobile Web in Android, iOS and other 15 platforms, remember to look at Programming the Mobile Web book, from O’Reilly Media.

Share

Comments, ideas, questions?

Loading Facebook Comments ...
  1. #1 written by James Pearce December 6th, 2010 at 18:49

    At least expected the device motion APIs… :-/

    To be honest, it’s hard to to tell from the (lack of) documentation what APIs are and are not supported. Did you just try stuff out?

    RE Q
  2. #2 written by Hugh Isaacs II December 6th, 2010 at 18:58

    Sad, they could’ve at least thrown in input speech, web sockets and accelerometer support.

    Especially input speech, I mean all they would have to do is not display the keyboard and use their voice recognition pop up when on a speech enabled input box (this could’ve been implemented very easily).

    RE Q
  3. #3 written by firt December 6th, 2010 at 22:04

    James, I’ve tested the APIs… and I made an extensive test over the window object. As the global JS object, you can find there all the “classes” (or object constructors), events and more. That is how I detected the new stuff in iOS and that is how I conclude that Android 2.3 is not supporting them. I’ve also made a comparison between the DOM available in 2.2 and in 2.3, so I could find the differences.

    RE Q
  4. #4 written by Ryan December 6th, 2010 at 23:47

    Perhaps they didn’t think iOS4.2 would come out guns blazing with browser updates. Let’s hope they push a minor update with browser goodies.

    RE Q
  5. #5 written by Tom December 7th, 2010 at 10:07

    its a shame they dont support the html5 in a way ios does now; websocket should have been supported for a year now

    RE Q
  6. #6 written by Boki December 7th, 2010 at 11:50

    What’s happening with the HTML5 audio tag support? Have they fixed this ever-present bug of incompetence?

    RE Q
  7. #7 written by Boki December 7th, 2010 at 20:39

    I’ve had a look into it, and there seem to be quite a few improvements to web page rendering (like better support for inline frames), which is great news for web apps. The HTML5 video and audio tags seem to work now on a basic level – I still haven’t been able to get them to play via JavaScript. I hope they haven’t implemented the same annoying feature as the iOS guys, with the “you have to click it to play it” principle. That just renders audio playback in web games useless…

    RE Q
  8. #8 written by David December 9th, 2010 at 14:10

    Hey,

    is there a way to make your WebApp Fullscreen, making it look like a native app?
    (like ) on the iOS?

    That would be great

    RE Q
  9. #9 written by firt December 9th, 2010 at 21:04

    David, there is no meta-tag or other way to make a fullscreen webapp using only the browser. You should create a hybrid application: a native app with a fullscreen WebView control loading your webapp.

    I agree with you: that would be great on Android.

    RE Q
  10. #10 written by anodyne December 20th, 2010 at 15:25

    Wasn’t the support for animated GIFs added in 2.2? At least they seem to work on Nexus One and Galaxy S nowadays…

    RE Q
  11. #11 written by Matt January 3rd, 2011 at 09:07

    Does Gingerbread support advanced touch events in javascript, like pinch-to-zoom? People have been asking for that for ages…

    RE Q
  12. #12 written by Tim Dorr January 12th, 2011 at 01:37

    Web Sockets aren’t a finalized standard and were sent back to the drawing board: http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/

    Animated GIFs are most definitely supported in 2.2 and 2.3. I have seen this myself.

    I can’t speak to SVG support, but have you tested this? If you think animated GIFs aren’t working when they are, that would lead me to question if you have.

    RE Q
  13. #13 written by firt January 12th, 2011 at 01:41

    Tim, mostly all HTML5 and new API stuff aren’t a finalized standard. This is a whole discussion by its own, but browsers are implementing all this new stuff not matter what the W3C says about them. Everyone will follow the discussion, but nobody wants now to wait for the discussion to be finished.

    You are right about Animated GIF’s, there is still a bug on the first 2.2 release. SVG is definitely not supported.

    RE Q
  14. #14 written by firt January 12th, 2011 at 01:44

    @ Matt, Android does not support gesture events as in Safari for iOS (ongesturestart, ongesturechange, etc.)

    RE Q
  15. #15 written by Doug January 12th, 2011 at 02:43

    2.3 (and 2.2 before it) have file upload support which gives you the option of snapping a picture or selecting one from your camera roll. By “camera support” are you talking about direct access to data? Have they promised that? And if so, is that part of an open standard I’m not aware of?

    RE Q
  16. #16 written by firt January 12th, 2011 at 03:05

    I’m talking about direct access to data (or at least, snapshots). The only standards are from widgets API (like WAC APIs). It was promised as you can see on the video embedded, that is why I’m mentioning it.

    RE Q
  17. #17 written by Doug January 12th, 2011 at 03:45

    Yep, watched the video after I asked the question. But the video could just be an which works in 2.2. Looks like the holy grail though would be http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#devices

    RE Q
  18. #18 written by Mike January 25th, 2011 at 16:21

    Do you now if 2.3 has support for multitouch in the browser? Specifically broadcasting multitouch events to JavaScript (as iOS does). (not gestures, but raw touch events)

    Currently the browser only appears to support single touch.

    mike

    RE Q
  19. #19 written by firt January 25th, 2011 at 16:38

    Hi Mike, Android Browser supports touch events and internally it has the ability to receive multiple touchs. It doesn’t support gesture events, as the Safari on iOS does.

    However, there are different hardware using Android. Some of them are not multi-touch, and for the ones who are it depends on the Android OS version. On latest versions, the browser captures multitouch for zooming (even if you deactivate zooming via viewports), so the short answeris: “Android does not support multitouch on JavaScript for most modern devices”. It’s a real shame.

    RE Q
  20. #20 written by DanielP February 6th, 2011 at 01:35

    Here is an Android Gingerbread online simulation.
    It is based on the Android emulator with a Nexus S skin:
    http://www.appdemopod.com/demo?id=1072001

    RE Q
  21. #21 written by Acrylic Style February 9th, 2011 at 18:50

    Something I found out, Android 2.3 allows for inline audio playback.

    Haven’t quite figured out how to do this but bandcamp.com has implemented it.

    RE Q
  22. #22 written by Henry August 12th, 2011 at 10:55

    Hello!
    I am planning to buy Xperia Play? But I am interested in Phones that can open websites like skype. If you check the website it has drop down menus. What do you suggest can Play do that?

    RE Q

SetPageWidth