After the recent release of the new AIR 2.6 SDK people started again to discuss which can be
the best way to deliver an Flash Platform application on Android devices.
As often happen the right answer is “It depends!”.
The aim of this post is to outline the most important differences between Flash Player and Air based applications
in order to help developers to make the right choice.
The Flash player 10.1 became available in Android 2.2 in June 2010 and runs within the device native browser. There are several similarities and differences between the
two environments and it’s very important to understand them in order to make the right choice for a mobile application.
Both types of environment are intended for cross-platform rich media applications. They both use the ActionScript language but Air for Android only supports AS3.
To let developers able to show HTML content in the API there is the StageWebView class that provides a simple means to display HTML content on devices where the HTMLLoader class is not supported.
The class provides no interaction between ActionScript and the HTML content except through the methods and properties of the StageWebView class itself.
Both benefit from the recent performance and optimization improvements such as hardware acceleration for graphics and video, bitmap manipulation, battery and CPU optimization, better memory utilization and scripting optimization.
It’s strongly encouraged to use only Spark components for both of them and even more always keep in mind that a native application lives in the OS without the restriction of the browser sand boxes.
The Flash Player based applications are typically located on a web site, there is no need of installation and updates / bug fixing are easier, the AIR applications require packaging, certificate and installation on the device.
The Flash player is subject to the browser sandbox and its restricted environment. The browser security is high because applications may come from many unknown websites.
The AIR applications security has to be handled by developers and an app can access to most of the OS features and /or files.
The Flash Player based applications store data suing Flash Local SharedObject and there is no access to the file system or any way to access with other applications to the SharedObject data.
AIR applications on their hand function as native applications and have access to local storage and system files. Persistent data may be stored in a local database that can be used also by other applications.
AIR has additional functionality unique to mobile devices such as geolocation, accelerometer and access to the camera. Multi touch and gesture input is currently supported in AIR but not on the device native browser.
A new book from O’Reilly about Android app with AIR is coming Developing Android Applications with Adobe AIR, we strongly encourage to consider it because this topic cannot be covered with a blog post.