P2P Video Calls on Android

Note: these AIR features are “working”, although they may not make it into the v1 product.

This week I have been working on a couple of different mini-projects to test out new beta features of AIR 2.5 for Android. The engineering team are pushing out features every week, and I have to say I’m very very impressed with their efforts. We are arguably now at feature parity with the desktop AIR releases, which is precisely the goal of the Open Screen Project.

In the 5/7 build we have added Camera, Microphone, StageWebView and NativeExtensions features to the beta. Of course AIR comes with all of the Flash Player 10.1 features along with multi-touch/gestures, support for bitmap matrix caching and Geolocation APIs.

“FlashTime” is obviously a working title, and the code isn’t exactly stable so I don’t want to release it just yet. I hope I can finish it by next week, by which time it will have a name – suggestions welcome.

Flash/AIR on!

FlashTime – P2P Video Calls on Android

Note: these features are “working”, they may not make it into the v1 product.

This week I have been working on a couple of different mini-projects based on our upcoming release of AIR 2.5 for Android. The engineering team are pushing out features every week, and I have to say I’m very very impressed with their efforts. We are arguably now at feature parity with the desktop Flash Platform, which is precisely the goal of the Open Screen Project.

In the 5/7 build we have added Camera, Microphone, StageWebView and NativeExtensions features to the beta. Of course AIR comes with all of the Flash Player 10.1 features along with multi-touch/gestures, support for bitmap matrix caching and Geolocation APIs.

I’m still working on FlashTime right now and so I don’t want to share the source code just yet. I hope I can finish it by next week and I’ll update this post and Twitter.

Flash/AIR on!

Flash Player 10.1 Beta launch at Google IO

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 Motorola Droid users with Froyo to test out.  General availability is expected on June 17th 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.”

Optimise your Flash Content

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.

FullScreen (AS-only)

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: stage.displayState=StageDisplayState.FULL_SCREEN;

Smart Rendering

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.

Sleep Mode

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…

Out-of-Memory Management

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.

Device Events

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.

Minimum Spec

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.

More info here

Upcoming E-Seminar Series: App in a Week

With CS5 now available the EMEA Evangelism team have been hard at work prepping for our upcoming tour and the Online Developer Week. The course of events will fall between June 7th – 10th covering everything from design in Photoshop CS5 to development, and even deployment of your applications using the Flash Platform suite of tools.

The tools covered will include Flash Builder, Flash Professional, Flash Catalyst, Flex 4 and the Flash Player 10.1 and AIR 2 runtimes. In my own session we’ll also be covering Device Central and some asset optimization guidelines for targeting mobile phones.

We’ll also look at P2P with Flash Player 10.1 as well as Livecycle, PHP and Java integration on the backend.


June 7th – 12:00 – 13:00 GMT Erase the Designer to Developer gap: Adding interactions to your design with Serge Jespers
June 7th – 15:00 – 16:00 GMT Connecting your design to PHP services with Mihai Corlan
June 8th – 12:00 – 13:00 GMT Connecting a web application to a J2EE backend using Flash Builder 4 with Michael Chaize
June 8th – 15:00 – 16:00 GMT Working with Flash CS5 components in your Flash Builder 4 project with Mike Jones
June 9th – 12:00 – 13:00 GMT Going multi-user with P2P in Flash Player 10.1 with Tom Krcha
June 9th – 15:00 – 16:00 GMT Developing multi-user applications with LiveCycle services with Tom Krcha
June 10th – 12:00 – 13:00 GMT Bringing web Applications to the desktop with AIR 2.0 with Piotr Walczyscyn
Jun 10th – 15:00 – 16:00 GMT Code once and run on multiple mobile devices with Mark Doherty

We’ve been busy for the past week building “EVA” to demonstrate all of the above.  I think you’ll be really impressed with it and of course we’ll be providing the code after for you to use in your own applications.


Flash Player 10.1 Tablet (NVIDIA Tegra & ARM)

While I was at the Mobile World Congress earlier this year I recorded a quick video of sample tablet hardware running a beta version of Flash Player 10.1.  It has taken a “little” while to arrive on Adobe TV, but in the video I’ll show some popular websites covering video and gaming.

The hardware is a development board sporting the ARM based NVIDIA Tegra Next Generation chipset, which is a dual-core ARM-Cortex A9 device.  Although I didn’t show it here, at the conference we were also running AIR applications beautifully on the hardware.

Our Open Screen Project partners NVIDIA announced that some 30+ tablet computers are expected to ship in 2010 with this chipset.  One of the advantages of having NVIDIA and ARM as Open Screen Project partners is that we can all contribute collectively to Flash Player acceleration for these devices.  So as OEM begin to adopt TEGRA they can rest assured that the Flash engineering is already taken care of.

My favourite so far would have to be the NotionInk Adam, which is an Android based tablet created in India.  The screen apparently has transmissive, transflective, and reflective display modes that will serve the device well in different lighting conditions.

Preview: Flash Player 10.1 on the Palm Pre

Yesterday I spotted a lady here in the UK showing off her Palm Pre to a friend.  So today I recorded a video to take a look at Palm’s WebOS Browser with Flash Player 10.1.  Please note that the engineering build on this device is not up-to-date, but you can certainly get an impression of how great the experience will be.

For the user experience professionals out there, check out the card metaphor for switching between applications; amazing.

Helisso – A Packager for Symbian devices

As some of you know, learning about AIR, AS3, Flex, Flash Catalyst, Flash Builder has been my side-project for a few months now.  As I mentioned in a previous post, it is essential to prepare for the future and invest now in learning new skills.

For me, the best way to learn new things is to create a project that’s difficult, yet cool enough to keep you interested.  So my first few steps revolved around learning how to use Fireworks, then Flash Catalyst, Flash Builder and ultimately distribute an application using Adobe AIR.

AIR 2.0

One of the amazing new features of AIR 2.0 is the ability to embed and execute native code from right inside Actionscript, an API called NativeProcess.  This means that you can safely run existing services over the command line, as well as install your own native service components.  AIR 2.0 is in beta right now on Adobe Labs, and is mobile ready as designed so it’s a great time to get started.

So what would a Platform Evangelist for mobile and devices create?

Introducing Helisso

What is it?

  • A packaging utility that can produce SIS packages for Symbian devices
  • It targets the Flash Lite 3.x runtime for Nokia’s S60 devices
  • It runs on PC and Mac OS, all versions


  • The tool has embedded Python binaries inside, compiled versions of “Ensymble
  • For signing purposes the tool also includes OpenSSL for certificate signing
  • It is unsupported and without warranty

How do I use it?

  • A tutorial from Ms. Myers, reigning packaging queen, is here.

Where can I get it?

I have been hugely impressed with the capabilities provided by AIR, in this only my first AS3 project.  Looking back on all of the technologies that I have used has really got me excited about AIR applications on Android, and even sprouted a few iPhone applications in advance of that.  Seriously, imagine having all of the power of AIR and this toolchain on mobile phones?

Lastly, a big shout out to Steve Hartley of Oppian, Jussi Ylänen creator of Ensymble, without whom this wouldn’t have been possible.

Flash Player 10.1 – Installations and updates

Flash Player 10.1 will become available in the first half of 2010 for all supported platforms.  In fact, the desktop beta 3 is already looking incredible and proving to be a huge hit with developers testing their content.

One of the most important parts of our work with our Open Screen Project OEM partners is to enable the seamless discovery, installation and update of Flash Player 10.1 on device platforms.  I know that some have asked questions on this, and so I’m glad to bring you some responses, if a little late.

Extending the reach

In the “marketecture” diagram below you can see that Flash Player 10.1 is extending it’s platform reach, doubling it in fact.  It’s worth noting that recent reports around minimum spec’s for Flash Player 10.1 are eluded to here also, because working with our partners, we are targeting the latest chipsets available.

To explain, smartphones have a typical lifespan that is less than half that of a desktop computer, and so hardware choices are made by planning for the future.  Over the past few years we have shipped over 1.5Billion devices with Flash Lite using this simple rule.

Therefore the choice to target the ARM Cortex-A8 chipsets will result in greater efficiency, and most importantly a wider range of consistent experiences as uptake grows.  To be clear, that uptake is already happening, and it will expand rapidly just like it does every other year.

It’s like a Moore’s Law of mobile phones :-)

Yet some devices will not be able to support the full Flash Player 10.1 due to low hardware capabilities, and for many of those devices we have a new version of our optimized runtime, Flash Lite, to fill the gap.  In fact the alpha version has already been spotted running Farmville on Android Eclair here.

Driving the Distribution

Working with our OEM partners we have enabled the Flash Player to be installed in a manner consistent with the desktop experience.  When visiting websites that have Flash content, users can click on the “Flash Player required” images/links provided by content developers to begin the installation process.

As with the desktop, the browser then redirects to the Flash Player Download Center, and in the case of mobile phones we pass these requests to the requisite device application stores such as the Android Market.  Today’s application stores have extended abilities to correctly identify devices, and to manage the update of applications and plugins like Flash Player.  Users can of course visit their application store directly if they wish.

In addition, those users purchasing new devices from a retailer may already have Flash Player pre-installed, made available in over-the-air software updates or through the browser directly.

Delivering Enhancements

As with the desktop install process, with each version of the Flash Player various updates are applied throughout it’s lifetime to ensure a high level of quality.  Users can expect these updates to be provided automatically on some platforms via their application store update process, as well as through over-the-air software updates.

In the example above you can see the update notifications that users are familiar with on Android devices, and it is expected that this will be used for Flash Player 10.1 during it’s lifetime.  Though I should point out that Nokia have been providing their own update mechanism, directly in the browser for some time now with a huge user uptake.

During the past few days Palm have also begun to lay the ground for Flash Player 10.1 support by delivering their software update.

Player Detection

On the desktop today developers use a combination of methods to detect the Flash Player and version.  Recognizing the need for a consistent approach, these same methods can be used on mobile phones in the future.  Adobe recommends SWFObject2, an open source project that provides cross-browser support.  It is also supported fully within our Creative Suite tools.  SWFObject works across browsers and device platforms to detect the Flash Player and it’s version.  Should an update been required, the tool can enable the ExpressInstall experience or provide fallbacks as required.

Historically I know some have invested considerable time and energy in device databases such as WURFL, which helped us to accurately distribute application installers to devices.  With Flash Player 10.1 we need only be concerned about the browser use case, and so I would argue that we do not need to continue this effort long term.

I hope this information will help you build a picture of the huge efforts that our engineering and product teams have made.  The mechanisms for discovery, install and update of the Flash Player 10.1 are a fantastic achievement, even though for some of you these may seem rather obvious.

With the Open Screen Project partners we are literally changing the ecosystem, enabling a more complete and consistent web experience on devices, and driving the industry forward with the Flash Platform in 2010.

Acrobat Connect Pro is now on the AppStore

One of the tools that I use almost every day at Adobe for screensharing, video conferencing and presentations is called Acrobat Connect Pro.  It has been around for quite some time and today it’s used globally by organizations to help reduce the travel burden, as well as enabling teams to work together.

Today it is available for the Mac and PC and is created using the Flash Platform, with the addition of some extra features for screen sharing built into the Connect Addin for the desktop.

The great news is that yesterday the team launched their first version of Connect on mobile devices, starting with the iPhone.  It is available for free now on the AppStore, although of course you will need an account and you can sign up for a 30 day trial for free over here.


  • Attend Connect Pro Meetings with integrated conference call or Voice over IP audio.
  • See who has joined the meeting, and their role (host, presenter, or attendee)
  • View presentations, PDF documents, videos, and screen sharing provided by the meeting organizer.
  • Rotate, pan, and zoom to choose your personal ‘best view’ of shared content
  • View webcamera broadcasts from unlimited live camera feeds provided in the meeting
  • Participate in Chat conversations throughout the meeting.
  • Join meetings attended by users on virtually any computer system: Mac, Windows, Linux, Solaris and now iPhone.

Built using Flash Professional CS5

Acrobat Connect for the iPhone was created using the Adobe Flash Platform, and specifically with AIR 2.0 APIs.  The team were able to create their contextual application using Flash Professional CS5 and simply package the application using the upcoming tool!

I know that many of you have wondered about building out complex applications such as this, and so I think this is a great demonstration of what you can achieve using both AIR and the new Flash Pro tool.

In addition, we have already shown Acrobat Connect running on Android devices and that was achieved by simply repackaging the code.  The team made some great choices with regards to their design that have made it possible for the UI to lay itself out dynamically for different screen sizes and orientations.  Some of the mobile developers among you will probably have played with these concepts before, and the rule has always been to ensure that you bake these into your design and development from the start.

As you can see the experience is really fluid and great for the end user.  I’ve been able to connect seamlessly to the Connect session and broadcast my iTunes library in coverflow view :-)

Redmond Pie and the “Farmville Test”

Many of you may have read that the HTC Desire ROM has become “available” via Modaco Forums and their chef Paul.  As reported Taimur from Remond Pie has uploaded a video demo of the HTC Desire running Farmville within Facebook, and as he discovered, it wasn’t quite baked for mobile devices.

The story is a little more complex than simply being a beta build running content that hasn’t been optimized for small screens; although that’s true as well.

At Mobile World Congress Adobe demonstrated the full Flash Player (Flash Player 10.1) running on Android, Palm webOS and other smartphone platforms.  As a high end smartphone, the HTC Desire will ultimately support Flash Player 10.1 when it becomes available in the first half of 2010.  As a user you will be able to upgrade the free player over the air with a simple software update.

Currently however, the HTC Desire ROM contains our highly optimized player Flash Lite, not Flash Player 10.1.