AIR 2:Developer FAQ
From Adobe Labs
General
Why are you having a public beta for Adobe AIR 2?
There are two primary reasons why we're releasing a public beta of AIR 2:
- We want developers to be able to start taking advantage of AIR 2 features as early as possible.
- It's imperative that developers test their applications against AIR 2 and report any bugs they find. Existing applications should run identically between earlier versions of AIR and AIR 2; if you find that this isn't the case, it's extremely important that you let us know.
What's new in Adobe AIR 2 beta 2 runtime?
In addition to hundreds of bug fixes, new capabilities include:
- Higher resolution bitmap printing and enhanced print APIs that support better interaction with the operating system
- Transport Layer Security (TLS)
What's changed in the AIR 2 beta SDK?
- AIRAliases.js - updated to reflect the latest AIR 2 runtime classes.
- airglobal.swc - updated to reflect the latest AIR 2 runtime classes.
- The application update framework has a new UI supporting Flex 4 applications. The SWC library for Flex4 is frameworks/libs/air/applicationupdater_ui.swc, while the Flex3.x compatible UI library was moved to frameworks/libs/air/flex3/applicationupdater_ui3.swc
- The template application descriptor file now references the AIR 2 beta namespace.
When was Adobe AIR 2 beta 2 released?
The Adobe AIR 2 beta 2 was released on February 2, 2010.
Where can I download the Adobe AIR 2 beta 2 runtime and SDK?
Where can I download documentation for Adobe AIR 2 beta?
The documentation for the AIR 2 beta including the Adobe AIR Developer Guide and ActionScript Language Reference can be downloaded from Adobe Labs:
Which platforms is the AIR 2 beta runtime available for?
The beta is available for Mac, Windows, and Linux. Please test your applications on as many platforms as you can.
What are the capabilities available in the AIR 2 Beta?
- Multi-touch: Touch events are similar to mouse events, but on multi-touch enabled devices, you can track multiple touch points simultaneously.
- Multi-touch support:
- Windows 7 and beyond.
- Requires multi-touch enabled hardware (obviously).
- Multi-touch support:
- Gestures: Applications can listen for multi-touch events, or gesture events (not both at the same time). Gestures are the synthesis of multi-touch events into a single event.
- Gesture support:
- Windows 7 and beyond.
- Macs running 10.6 and beyond with multi-touch trackpads.
- Type of gestures we support:
- GESTURE_TWO_FINGER_TAP (tapping with two fingers)
- GESTURE_PRESS_AND_TAP (holding one finger down, then tapping with another -- convention on some Windows devices for bringing up context menus)
- GESTURE_PAN
- GESTURE_ROTATE
- GESTURE_SWIPE
- GESTURE_ZOOM
- Gesture support:
- Open Files With Default Application: The new File.openWithDefaultApplication API lets you open a file instance with whatever application it happens to be associated with. This is a good cross-platform way to integrate with other applications since you don't have to know what applications are installed, or where.
- OS Download Security Dialog: The new File.downloaded property lets you indicate that a file was downloaded from the network and the OS should prompt the user with a confirmation dialog before opening it.
- Supported platforms:
- Windows XP SP2 and later.
- Mac OS 10.5 (Leopard) and later.
- (No Linux support because Linux doesn't have this concept.)
- Supported platforms:
- Storage Volume Detection: The new storage volume APIs let you listen for the mounting and unmounting of storage volumes, list accessible volumes, and get information on storage volumes such as the file system type, whether it's removable, whether it's writable, the drive letter, and the drive label.
- Native Processes: Launch and communicate with native "out-of-band" processes. Bundle your own native executables, or call executables that you know are already on the machine. This feature requires that your application be installed with a native installer rather than though a .AIR file (we provide tools for building native installers).
- Types of installers:
- OS X: DMG
- Windows: EXE
- Linux: Debian and Red Hat Package Manager
- Types of installers:
- File Promises: File promises let users drag and drop files that either don't exist yet (because you want to generate them on-demand), or that exist on a remote server. We provide an implementation that will automatically download remote files for you and save them to the drop location, and we provide an interface for you to implement if you want to generate files on-demand.
- Server Sockets: The new ServerSocket API let you listen on a socket so that you can implement inter-application communication, P2P applications, advanced network protocols like FTP, etc.
- Datagram Sockets: In addition to TCP sockets, AIR 2 will now support UDP sockets.
- Encrypted Sockets: Sockets can now be encrypted using TLS/SSL.
- IPv6 Support.
- Access to Low-Level Network Information: The NetworkInfo object lets you enumerate network interfaces on the machine and get access to properties such as whether they are active, their IP address, and their display name.
- DNS Resolution: Use DNSResolver to look up the following types of resource records:
- ARecord (IPv4 address for a host)
- AAAARecord (IPv6 address for a host)
- MXRecord: mail exchange record for a host
- PTRRecord: host name for an IP address
- SRVRecord: service record for a service
- Configurable HTTP Idle Timeout. URLRequest.idleTimeout and URLRequestDefaults.idleTimeout let you specify the amount of time (in milliseconds) that a connection will remain open before it receives any data. This is useful for things like [long polling http://en.wikipedia.org/wiki/Push_technology#Long_polling].
- Local Audio Encoding: Access audio data directly from the microphone. You used to have to send the data to a server and access it from there, but now you can do it entirely on the client.
- Global Error Handling: Global error handling lets you handle all uncaught errors (both synchronous errors and asynchronous error events) in one place in your code.
- Accessibility: AIR 2 will have the same level of support for screen readers as Flash. See this article for additional details: http://www.adobe.com/devnet/air/flex/articles/creating_accessible_apps_in_air_and_flex.html
- NativeWindow and Bitmap Size Increases: The maximum size of a NativeWindow and Bitmap instance used to be 2880x2880. In AIR 2, it will be 4094x4094.
- Improved Printing.
- Vector printing on Mac (already in FP 10).
- Higher resolution bitmap printing and enhanced print APIs that support better interaction with the operating system’s printing interface.
- Nested Transactions. SQLite will now support nested transactions.
- WebKit Updates:
- WebKit in AIR is based on the version shipped with Safari 4.0.3
- Support for JavaScript profiling
- SquirrelFish Extreme JavaScript engine resulting in 50% faster performance using SunSpider tests
- CSS3 Module support (2D transformations, transitions, animations, gradients, zoom and WebKit CSS selectors, etc.).
- Styling scrollbars via CSS
- Latest Canvas enhancements.
- General Optimizations:
- Lower CPU utilization when idle.
- Lower memory consumption.
- Smaller installer sizes on Mac and Windows
What are the system requirements for the AIR 2 beta?
Please see the "system requirements" section of the Adobe AIR 2 beta 2 Release Notes.
How have the system requirements changed from AIR 2?
- Windows - Windows 2000 is no longer supported
- Mac - PowerPC-based Macs are no longer support
- Linux - We have updated the version numbers of supported Linux distributions. With AIR 2, we now support Fedora Core 11, Ubuntu 9.04, and openSUSE 11.1.
Where can I find a list of known issues in the AIR 2 beta?
A list of known issues is listed in the Adobe AIR 2 beta 2 Release Notes.
Can I have AIR 1.5 and AIR 2 beta runtimes installed on the same machine?
No. The AIR 2 beta will automatically replace AIR 1.5. This means that all your AIR applications will run under the AIR 2 beta.
How do I go back to AIR 1.5.2 if I don't want to run the AIR 2 beta anymore?
To roll back to AIR 1.5.2, you must first uninstall the AIR 2 beta:
- Windows: AIR can be uninstalled through the Add/Remove Programs utility found in the Control Panel.
- OS X: Run the "Adobe AIR Uninstaller" application found in /Applications/Utilities.
The most current release of AIR can then be installed from here.
Important: If you are uninstalling the AIR 2 beta because of problems you're having running existing AIR 1.5 applications, please report these issues so that we can be sure they are fixed in the final AIR 2 release.
When AIR 2 is released, will all machines running AIR 1.5 automatically be updated to AIR 2?
Once AIR 2 is released, users will be automatically updated to AIR 2 within two weeks of the release so long as the user is an admin on their machine.
In enterprise environments where network administrators control when updates to software are deployed to end-users, AIR 2 may not be automatically updated until it approved by a network admin.
Does the AIR 2 beta support 64-bit Linux?
No. Though we are working on adding 64-bit support for Linux, this will not be made available in either the AIR 2 beta or final release. Our goal is to add support for 64-bit support in an update after the release of AIR 2.
In the meantime, 64-bit Linux users can perform the following instructions: http://kb2.adobe.com/cps/521/cpsid_52132.html
When will the final version of AIR 2 be released?
We expect to ship the final version in the first half of 2010.
Will the AIR 2 beta 2 expire?
Yes. The AIR 2 beta 2 will expire on September 1st, 2010.
Will there be additional betas?
Depending on feedback, we may release an additional beta.
Does the Adobe AIR 2 beta 2 support smart phones?
No. Our vision for AIR is to bring it to a number of device types including smart phones. We are currently evaluating smart phone platforms.
Can I upload applications to the Adobe AIR marketplace?
Once AIR 2 officially ships, we will begin accepting AIR 2 applications on the AIR marketplace.
Can I post an AIR 2 application on my website and distribute it?
Of course! However, the badge installer will not work until the final version of AIR 2 is made publicly available.
Application Development
How do I port my applications from AIR 1 to the AIR 2 beta?
AIR 1 applications should run without change using the AIR 2 beta. However, if you encounter any application that behaves different using the AIR 2 runtime, please let our team know by sending us feedback.
How do I take advantage of the new capabilities in the AIR 2 beta?
In order to use the new features in AIR 2, the namespace in your application descriptor file must reference "http://ns.adobe.com/air/application/2.0beta2".
Note: this namespace will not be supported in the final AIR 2 release. When AIR 2 is released, you will have to update the namespace, rebuild, and repackage any applications developed using the beta version. Adobe reserves the right to make incompatible API changes between the beta and final releases.
How can I overlay the Adobe AIR SDK for use with the Flex SDK?
Detailed instructions for overlaying the AIR SDK can be found in the AIR 2 release notes.
How can I overlay the Adobe AIR SDK for use with Flash CS4?
Follow the instructions provided above for overlaying the SDK for use with Flex Builder, but rather than copying and extracting into the "sdks/3.2.0" folder, use the "AIK1.5" folder, instead.
Can I use the Flash Builder beta to build AIR 2 applications?
Yes. You can download the Flash Builder beta here: http://labs.adobe.com/technologies/flashbuilder4/
If you encounter bugs, please send us feedback.
Can I use an install badge to deploy my AIR 2 beta application?
No. Deploying your application using an install badge will be possible when the final version of AIR 2 is made available.
Where can I view and download source code for applications that demonstrate the new features in AIR 2 beta?
Download AIR 2 beta samples and source code
As a JavaScript developer, how do I take advantage of the new profiling capabilities?
We have partnered with Aptana to add JavaScript profiling support in Aptana Studio. In order to take advantage of the new profiling capabilities, you will need download the latest extension from Aptana.
To download the Aptana plugin for Adobe AIR and to see a video overview of the feature, please visit the following page: http://www.aptana.org/air/
Will the content protection features of AIR that depend on Flash Rights Management Server work in the AIR 2 beta?
Yes.
Does the Adobe AIR 2 beta 2 include the Flash Player 10.1?
Yes, the Adobe AIR 2 beta 2 includes the beta version of Flash Player 10.1
Will applications built using Flex 4 work in the Adobe AIR 2 beta?
Yes. If you encounter bugs, please send us feedback.
Does the AIR 2 beta support accessibility?
It is possible to build accessible applications using the AIR 2 Beta. Existing applications may work with screen readers such as JAWS 11 without modification, but developers are advised to modify their applications to take advantage of these new features. You can learn more about accessibility in AIR 2 here: http://www.adobe.com/devnet/air/flex/articles/creating_accessible_apps_in_air_and_flex.html and by watching this Adobe MAX 2009 presentation on accessibility with custom components: http://tv.adobe.com/watch/max-2009-develop/building-accessible-flex-and-adobe-air-applications/
In addition, the AIR 2 Beta 2 installer will work with MSAA-enabled screen readers, such as JAWS 11 and NVDA.”
Can AIR 2 detect and interact with any kind of peripheral device?
No. AIR 2 can detect the mounting and un-mounting of devices which expose themselves as mass storage volumes. This feature does not allow AIR to communicate with other kinds of devices such as some digital cameras, GPS devices, or custom hardware. If you need to communicate with peripherals that do not expose themselves as mass storage devices, you can use the NativeProcess API to launch and communicate with a native process which can, in turn, communicate with your device.
Which mass storage devices can AIR 2 detect?
AIR 2 can detect the mounting and un-mounting of any device that exposes itself to the operating system as a storage volume. For example, Flip cameras and flash card readers are supported because they show up in the Finder (on OS X) and in Windows Explorer (on Windows) as storage devices. Digital cameras like the Canon PowerShot G9 or some mobile phones like the Apple iPhone cannot be detected by AIR because they use other protocols to communicate with the operating system rather than exposing themselves as mass storage devices. If your application depends on AIR 2 detecting a specific device, we recommend testing it with the AIR 2 public beta. If AIR cannot detect the device and you believe that it should, please let us know.
How do I launch .bat files using the native process API in AIR 2?
When invoking a .bat file directly using a native process API, the AIR runtime will report an error ("Error #3219: The NativeProcess could not be started.").
Passing command-line parameters to .bat files is a known injection vector. The AIR runtime, therefore, restricts calling .bat files directly.
To invoke a .bat file, you can call cmd.exe and pass the path of the .bat file you wish to execute as a parameter.
Important: Any parameters passed to cmd.exe should be validated in order to reduce the risk of injection.
Since the location of cmd.exe can vary between versions of Windows operating systems, you will need to first write the necessary code to find the location of cmd.exe on the user's system.
This can be accomplished by writing a simple helper .exe application that, when invoked using AIR's native process API, calls the Win32 API GetEnvironmentVariable("%COMSPEC%") and returns the path of cmd.exe. Once the path is known, another native process can be created that calls cmd.exe with the .bat file passed as a validate argument.
For additional information, see the links below.
Microsoft's cmd.exe documentation
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
GetEnvironmentVariable Function
http://msdn.microsoft.com/en-us/library/ms683188(VS.85).aspx
News
Where can I find the latest news and information about Adobe AIR?
- Adobe AIR Team Blog - product related news and announcements from the team
- Adobe AIR Developer Center - developer articles
Feedback
Are there forums available for posting questions?
Yes. Developers are encouraged to join other AIR 2 beta prerelease users on our user-to-user forums: http://forums.adobe.com/community/labs/air2/
How can I submit bugs or feature requests back to the AIR team?
If you have feedback or suggestions on how we can improve AIR, please let us know by sending us an email using our feedback form.
Can I report issues with the AIR 2 documentation?
Absolutely! We take the quality of our documentation very seriously. Please report bugs for any issues you see with our documentation, including documentation that you think is incorrect, or that you think is confusing or insufficient.
How can I provide feedback on this FAQ?
If you would like to provide feedback on this FAQ, please let us know by sending an email using our feedback form.
