One of the improvements promised for Android 2.2 ("Froyo") was Adobe Flash support. For simple Flash use in websites, especially Flash-based video, it seems to work well. Now Adobe AIR for Android has been released, along with the first wave of AIR-based demos and games. That sounds exciting for developers porting to Android from other platforms, but it's currently disappointing in practice.
To test the current Flash and AIR capabilities, I installed the latest update to Flash Player 10.1 on my HTC Incredible, along with Adobe AIR, an AIR demo, and three highly rated (in the Android Market) AIR-based apps: Meteor Storm, Jello Bounce, and PhysTest. I passed on the official Adobe Flash Showcase, which turned out to be little more than a bookmark to m.flash.com. Instead, I tested that site directly in the default Android 2.2 Web browser.
What I witnessed were slow responses to user interface actions, application crashes, and browser hangs. Not surprisingly given the performance and stability issues, these applications have been updated almost daily, so it's a good thing that the app authors report being able to ship them very quickly.
The simple AIR demo (AIRonAndroid Browser) demonstrates use of the phone's accelerometer, camera, GPS, multitouch, orientation, and keyboard events features. The initial version had numerous bugs and needed to be killed to get it to exit; today's update is more stable and responsive, but not exactly a speed demon.
Taking AIR out of the equation, the Flash games on the Adobe Flash Showcase were painfully slow to load, and once in play constantly hung the Android Web browser, which then had to be killed and relaunched to view any sites at all. On the other hand, the Flash-enabled movie trailers played very well; as long as my phone was on my office Wi-Fi network, the action was smooth and nearly lag-free, except for a few audio synchronization issues that were most apparent in speech when the actors' mouths were visible.
PhysTest is an interactive test application for a game physics engine using AIR. The first version of the application I tried had obvious performance issues; today's update seems to have been successfully tuned. The objects being drawn are simple, and the application uses single touch but no other hardware input. I frankly don't know what would happen if this engine was used with bitmapped and textured objects or tried to support the phone's accelerometer.
Meteor Storm, a touch-based missile-defense type of game, does use bitmaps and plays decently. There is a noticeable lag in response after touches, but the game has been tuned well enough that I was able to compensate for the slowness.
Jello Bounce, a Bill Cosby bobble-head simulation with audio, was initially totally unresponsive, hanging the entire phone, and after a subjectively endless interval Android presented me with the dreaded Force Close/Wait/Report dialog box. After I either reported it or pressed Wait, Jello Bounce started running. The resulting display and sounds were really stupid. I uninstalled it. I guess you can write stupid games in any language -- I'll chalk this particular failure up to the developer, not the technology.
Overall, the underlying Flash/AIR technology seems promising, although not yet competitive in performance with Java apps or even with well-written PhoneGap or HTML5 apps. It's early days for AIR on Android, however, so I won't count Adobe out quite yet.
On the other hand, Steve Jobs may actually have had a point (other than spite) when he banned Flash from the iPhone. Time will tell.
This article, "Adobe AIR on Android falls short," was originally published at InfoWorld.com. Read more of Gruman et al.'s Mobile Edge blog and follow the latest developments in mobile technology at InfoWorld.com.