Surprise! Today at Google I/O Vic Gundotra, Google VP Engineering announced Flash Player 10.1 and Adobe AIR 2.5 running on FroYo. The launch today represents a milestone that we’ve been working towards for some time, and all of us at Adobe are hugely excited to see Flash Player 10.1 finally get into the hands of consumers.
The beta is now waiting on the Android Market for Nexus One and other Android 2.2 users to test out. General availability is expected in June 2010.
While today’s announcement is all about Android, our target mobile operating systems for Flash Player also include Windows Phone 7, webOS, Symbian, and BlackBerry. Adobe provides a porting kit and Linux-based reference implementation to Open Screen Project partners to allow them to port Flash Player 10.1 to other platforms. These ports are subject to Adobe certification and must pass our standards for compatibility, performance and usability in order for devices to be marketed as “Includes Adobe Flash Player.”
Flash Player 10.1 on Android
In all, Flash Player 10.1 has been built from the ground up, and not just for mobile phones but for the desktops, tablets, netbooks and even televisions, consoles and set-top boxes. We have been working extremely hard on the runtime of course, but on top of that many of you have been working with us to optimize your web content for Flash Player 10.1.
Here is a landing page that features a number of websites that highlight the variety of Flash Player user experiences available on a mobile device. These sites and most popular websites that use Flash can now be accessed on smartphones supporting Flash Player 10.1.
Since we demonstrated the Flash Player on Android at the Mobile World Congress there have been a number of decisions made, changes implemented and tweaks applied to Flash Player 10.1. These changes focused on usability, integration, performance and power management – so let’s look at some of these in more detail.
Installation and updates
I have documented the process over here in another post. Suffice to say, the process is simple and demonstrates our commitment with the Open Screen Project to ensuring the evolution of Flash Player on mobile and devices.
Due to time constraints with shipping FroYo it hasn’t been possible to make all of the Android browser changes required to enable multi-touch in Flash Player. Web enablement has always been the top priority and so this (extremely complex) integration will happen later. AIR 2.5 on Android is multi-touch enabled and so it’s still possible to use your fingers, thumbs and toes as necessary on Android.
One of the cool new feature of Flash Player 10.1 is the accelerometer API, making Flash Player the first browser technology to support access to this hardware. In Device Central CS5 we have added some emulation support for the API, you can read more here.
Focused Mode (single tap)
The Android and other browsers support multi-touch for viewing web pages, so that you can pan and zoom around non-optimized sites with ease. To ensure that touch events are received by Flash or the browser appropriately we have created focused mode. It works very simply using a priority system, so if you tap the Flash content that you want to interact with Flash receives the touch events, if Flash doesn’t pick up the event then it’s passed to the browser. Tapping on the HTML will revert this focus priority back to the browser.
Smartzoom (double tap)
When a user double taps a piece of Flash content it will zoom to fit the screen, while maintaining the correct aspect ratio. The content is still viewed in the context of the HTML, rather than launching into full screen mode. This ensures that content remains in embedded mode – which makes sense given that this is the predominant usage of Flash on the web.
Another change to our previous showing is that FullScreen mode is now controlled via actionscript, just as it is on the desktop. So if you want your video player or game to playback using the full screen, then you’ll need to use this code:
We have already seen some of the benefits of this effort on the desktop version of Flash Player 10.1. Essentially it means that Flash content that’s not visible to the user will not be rendered and will receive limited CPU time. SWFs that are off-screen and/or consuming required resources can also be put to sleep and resumed on demand. You can control this behaviour by applying priority values to SWF files using the embed tag.
Video Hardware Decoding
One of the hardest features to get right has been video hardware decoding, and for the beta version this will not be enabled.
The player will be put to sleep along with the device to conserve power. So if you fall asleep watching youtube then you won’t wake up to talking cats at 4am – tried and tested. cats…
For me, this is the kick-ass feature that should always have been arbitrating the use of the Flash Player. If your content is not optimized correctly, has serious memory leaks and manages to use too much CPU power then it’ll go in the “sin bin” :-) These SWFs will render with a “click-to-play” button that the user can control as necessary.
As with Flash Lite before it, Flash Player 10.1 has to be a good citizen on a mobile phone. So if you receive a call or change application then Flash Player will respond appropriately, which typically means shutting down or pausing depending on the platform.
As has been documented before, our minimum spec for Flash Player 10.1 is ARM11-Cortex A8/9 at 550mhz. For Cortex-A8 processors we require NEON, which enables improved multi-media playback for a lower mhz rating.
If you don’t know what any of that means then I wouldn’t be too concerned. These chipsets represent the bulk of what our OEM partners are shipping, or planning to ship moving forward – and this list will undoubtedly expand.
AIR 2.5 on Android
Also announced today is an expanded pre-release of AIR 2.5 for Android devices. Many of us on the Evangelism team have been playing with this for several weeks now, and it’s seriously cool.