Writing cross-platform AIR applications

We’ve seen a significant number of AIR applications making some common mistakes that result in these apps running fine on one platform (e.g. Windows), but being broken on others (Linux and Mac).
Charles Ward has put together an excellent article on the Adobe AIR Developer Center, highlighting best practices to make sure your application works well on all supported platforms.
I strongly recommend all AIR developers to go through the article.

64-bit Flash Player on Linux!

Based on community feedback, a pre-release version of native 64-bit Flash Player 10 is now available on Adobe Labs (x86-64, Linux).
Check out the announcement on the Linux Flash Player blog!

AIR 1.5 Released (Win/Mac)

Aligned with Adobe MAX 2008, we’ve just released AIR 1.5 for Windows and Macintosh. This release includes the following new features:
– Flash Player 10 features including 3D effects, pixel bender, new drawing API, dynamic media streaming, dynamic sound API, and more
– Updated WebKit HTML engine with greatly improved JavaScript performance
– Encrypted local SQL database support
– JavaScript debugging support
– Support for five additional languages (Swedish, Dutch, Czech, Turkish, and Polish)
– Updated DRM engine
The Linux version is expected soon.

Tutorial – AIR Beta SDK with Flex Builder on Linux

Update: An updated tutorial, for AIR 1.5.1 SDK, has been posted at http://blogs.adobe.com/ashutosh/2009/03/flex_builder_linux_with_air_15.html

Some changes are required to get Flex Builder to use the new AIR Beta SDK for Linux. This is a step-by-step guide to get things up and running.
1. Ensure that you have Sun JRE >= 1.5 in your PATH (This can be verified with “java -version”)
2. Install Eclipse (cpp or java) >= 3.3 to $HOME/eclipse
    – Download Eclipse 3.4 from http://www.eclipse.org/downloads/ (if you do not already have Eclipse >= 3.3)
    – cd ~
    – tar zxvf ./eclipse-cpp-ganymede-linux-gtk.tar.gz
    – This extracts eclipse under ~/eclipse
3. Install Flex Builder alpha 4 Eclipse plugin
    – Download the Flex Builder installer from http://labs.adobe.com/downloads/flexbuilder_linux.html and launch it
    – chmod +x ~/flexbuilder_linux_install_a4_081408.bin
    – ~/flexbuilder_linux_install_a4_081408.bin
    – Choose $HOME/eclipse as the “Existing Eclipse Folder”:
    – Choose “Proceed with caution” if prompted
4. Install Flex SDK 3.1
    – Download Flex SDK 3.1 from http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3
       – Choose Build, Adobe Flex SDK dated Aug 15, 2008
    – Unzip it to a new folder (“3.1”) under ~/Adobe_Flex_Builder_Linux/sdks:
    – cd ~/Adobe_Flex_Builder_Linux/sdks
    – mkdir 3.1
    – cd 3.1
    – unzip ~/flex_sdk_3.1.0.2710.zip
5. Install AIR Beta SDK under Flex SDK 3.1
    – Download Adobe AIR SDK from http://labs.adobe.com/downloads/air_linux.html to $HOME
    – Untar it to the folder created above
       – cd ~/Adobe_Flex_Builder_Linux/sdks/3.1
       – tar jxvf ~/adobeair_linux_sdk_b1_091508.tbz2
    – Rename bin/adl to bin/adl_lin and bin/adt to bin/adt_lin (These are what Flex Builder expects)
       – cd bin
       – mv adl adl_lin
       – mv adt adt_lin
6. Set the newly installed SDK as default
    – Launch eclipse
       – ~/eclipse/eclipse
    – Window -> Preferences -> Flex -> Installed Flex SDKs
    – Click on Add
    – Select ~/Adobe_Flex_Builder_Linux/sdks/3.1 as the “Flex SDK location”. Click OK.
       – Choose “Flex 3.1” as the active SDK by selecting its checkbox. Click OK.
We’re done!
To verify that the setup is correct:
1. Create a new AIR application
    – Create a new Flex Builder project (through File -> New)
    – Choose a project name, choose “Desktop application (runs in Adobe AIR)” as the application type. Click Finish.
2. Edit the new application’s .mxml file
    – Change the line:
       <mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
       <mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” title=”{NativeApplication.nativeApplication.runtimeVersion} – {NativeApplication.nativeApplication.runtimePatchLevel}”>
3. Run the application (Ctrl-F11)
4. The application’s window will show up. Check the title of the window. It should be “1 – 6590” (new AIR SDK) and not “1.0 – 20080320” (old AIR SDK) if everything was set up correctly.
The application can be packaged as a .air file through File -> Export -> Flex Builder -> Release Build.

Update: An updated tutorial, for AIR 1.5.1 SDK, has been posted at http://blogs.adobe.com/ashutosh/2009/03/flex_builder_linux_with_air_15.html

Does the AIR Beta work for your Linux distribution?

Although the list of supported distributions (Ubuntu 7.10, Fedora 8, OpenSuSE 10.3) is small compared to the total number of Linux distros out there, we expect AIR to run fine on a lot more of them.
It is not possible for us to exhaustively test all features on all distributions – we depend on you for this feedback. To ensure that AIR runs on as many distributions as possible, implementation of AIR features is based on standard specifications (such as the FreeDesktop specs). More and more distributions, window managers and desktop environments now adhere to these.
It would also be great to have feedback about other devices that run Linux, such as OLPC XO, EEE PC and Samsung Q1U.
System requirements are listed as part of the release notes.
We’d like to know if the latest release on labs works for your favorite distribution – please go ahead and post the result in a comment below.

Adobe AIR for Linux Beta is out!

We just released the beta version of Adobe AIR for Linux on Adobe Labs!
This Labs release of AIR has all features implemented for Linux, except support for DRM and badge installations. Major new features include support for system tray icons, keyboard shortcuts, localization, internationalized input (IME support), filetype registration, SWF and PDF in HTML, multi-monitor support, fullscreen mode, encrypted local storage, support for V4L2 cameras and printing.
The list of supported distributions has also been updated to:
1. Ubuntu 7.10
2. Fedora 8
3. OpenSuSE 10.3
Any AIR application that works on Windows/Mac AIR release version 1.1 should ideally work on Linux too, except if it uses DRM features. Let us know if you face any issues.
Release notes provide more details about system requirements, installation instructions and any known issues.
Go get some fresh AIR and let us know how it works out for you!

Adobe AIR on Linux: Call for Pre-Release Users

We’ve been actively working on features that weren’t present in the alpha release of AIR for Linux – system tray icon, keyboard accelerators, PDF & SWF in HTML, encrypted local store, multi-monitor support and more.
To iron out as many issues as possible before coming out with a public beta release on Adobe Labs, we’d like to invite users to help test pre-release builds. If you’re interested and comfortable working with pre-release software, please send an email to the AIR Linux program manager at ashish – dot – baweja – at – adobe – dot – com with answers to the following questions (picked from James Ward’s post before the first Labs release):
1. Will you be able to submit bug reports on issues that you find back to our development team?
2. How many hours a week can you spend testing on Linux?
3. What is the primary distribution of Linux that you’re using? If you are using more than one distribution, please list.
4. Will you be developing applications on your Linux machine (as opposed to writing on Windows and testing the applications on Linux)?
5. What other operating system are you using, if any (Mac, Windows)? Can you compare the behavior of AIR for Linux with AIR for Windows and AIR for Mac OS?
6. Are you working on an AIR application today? If so, please describe.
Please include your name, email address and your company’s name.

AIR apps and HTTP proxies on Linux

With the alpha build of AIR on Linux, setting up an HTTP proxy for use by AIR applications requires exporting environment variables AIR_PROXY_SERVER and AIR_PROXY_PORT with appropriate values.
We intend to do away with this and use something that’s standard on Linux. The problem is that there is no standard. GNOME and KDE use different mechanisms. Individual applications use their own mechanisms.
We’ve decided to use the current desktop environment’s proxy settings, with the option of having these overridden with an environment variable.
On KDE, proxy settings can be set using kcontrol (KDE Control Center). On GNOME, these can be set using gnome-network-preferences (or directly using gconf-editor). The following gconf keys are involved:
a) /system/proxy/mode – A non-‘none’ value indicates that a proxy has been set (recommended value = “manual”)
b) /system/http_proxy/host
c) /system/http_proxy/port
Most browsers too use these values to figure out system proxy settings.
These settings can be overridden with an environment variable http_proxy (with its value in the format http://hostname:port). This variable is the most common one used by applications on Linux. apt-get and wget, for instance, use it.
I’m looking forward to freedesktop.org’s shared configuration system as one standard, desktop-agnostic mechanism for managing such per-user configuration settings. (It’s currently in the planning/requirements-gathering stage.)


Hi and welcome to my blog. I’m an engineer working on Adobe AIR for Linux operating environments.
Through this blog, in addition to providing updates about releases (and pre-releases), I’d like to discuss Linux-specific issues that pertain to Adobe AIR – troubleshooting tips, feedback about what features and distributions you think are most important, what issues you face, how certain features work (or not) under specific desktop and windowing environments. I may also solicit inputs from you to help us decide how we should proceed on specific issues.
If you haven’t yet tried it, I encourage you to go get AIR and check out your favorite app on Linux. Details of what does and does not work in the alpha release on Adobe Labs are available in the release notes. (If you find problems, the best place to report them is the labs forum).