Everything New in Adobe AIR 2.6

Adobe AIR 2.6 is now live (runtime and SDK). The primary focus of 2.6 is to achieve feature parity between Android and iOS, however we did manage to sneak some good features in for the SDK, Android, and for the desktop profile, as well.

Here’s a list of everything that’s new in AIR 2.6.

  • Asynchronous Bitmap Decoding. This features allows bitmaps to optionally be decoded in another thread as opposed to on-demand in the main thread. Setting the imageDecodingPolicy property on a LoaderContext to ImageDecodingPolicy.ON_LOAD enables asynchronous bitmap decoding which can keep your application more responsive and make animations much smoother.
  • Owned Windows. The use case for owned windows is primarily things like tool palettes. The owned window feature allows you to associate one NativeWindow with another so that the owned window is always above its owner in z-order. This was probably mostly possible before owned windows using things like activate events and the orderInBackOf, orderInFrontOf, orderToBack, and orderToFront APIs, but with owned windows, all you have to do is pass the owner of the new window in with the NativeWindowInitOptions object, and everything is handled for you. Much easier.
  • Bitmap Capture in StageWebView. The new drawViewPortToBitmapData function on StageWebView lets you draw the view port of a StageWebView to a bitmap. This feature has two primary use cases. The first and most obvious is the ability to grab a "screen capture" of the StageWebView, and the second (related) use case has to do with positioning Flash content on top of a StageWebView. Since it’s not possible to position Flash content on top of a StageWebView (Flash content is always drawn below), taking a snapshot of the content lets developers swap the StageWebView out for a bitmap when you need to position Flash content on top of it, then swap the StageWebView back when you’re ready.
  • Microphone support on iOS. The Microphone APIs now work on iOS.
  • StageWebView on iOS. Just like on Android, the StageWebView now works on iOS.
  • Multitasking on iOS. With 2.6, AIR applications will get activate and deactivate events on iOS as users switch to and from the app. AIR applications will also be properly resumed rather than restarted (unless the OS has decided to kill it for some reason which both iOS and Android reserve the right to do for any application).
  • Retina Support on iOS. Pretty self-explanatory. 2.6 has support for the very high-resolution iPhone 4 and iPod touch screens (326 PPI), and the higher resolution application icons.
  • iOS Camera, CameraUI, and CameraRoll Support. The Camera and CameraUI APIs are now supported on iOS, just like on Android. (Be sure to read How to Use CameraUI in a Cross-platform Way if you going to use these APIs for apps that you want to run on both iOS and Android devices).
  • Improved hardware acceleration on iOS. Hardware acceleration on iOS now works like it does on Android, and generally provides much better performance than with PFI. And speaking of PFI…
  • PFI is now ADT. The PFI (Packager for iPhone) utility is gone, and its functionality has been integrated into ADT. ADT can now be used to package AIR files, native desktop installers, Android applications, and iOS apps. I should also mention that iOS applications (IPA files) can be built and copied to iOS devices on Windows using ADT and iTunes. Very slick.
  • Configurable panning with soft keyboard activation. When a text field receives focus in an AIR application on a mobile device, the soft keyboard is generally shown, and if the keyboard covers the text field, the UI is automatically panned so that the text field isn’t obscured. This behavior is now configurable. By default, nothing will change, but starting with 2.6, developers can use an application descriptor setting to override the default behavior. With <softKeyboardBehavior> set to none in the application descriptor, the UI will not automatically pan. Rather than using the default behavior, developers can listen for the softKeyboardActivating event on the Stage and use the softKeyboardRect property to modify their applications’ layout themselves.
  • Programmatic control of the display of the on-screen keyboard. Using the new requestSoftKeyboard() function on InteractiveObject, along with the needsSoftKeyboard and softKeyboardInputAreaOfInterest properties, developers can now have complete programmatic control over displaying the soft keyboard. (Note that these APIs are Android-only and not supported on iOS.)
  • Support for the Amazon Android Market. AIR applications built with the AIR 2.6 SDK can be distributed on the new Amazin Appstore for Android. See my post AIR 2.6 Applications and the Amazon Appstore for Android for details.
  • Vector printing on Linux. If you can get your printer to work on Linux, you can now get vector printing in AIR. (Personally, I have terrible luck with printers on any OS.)
  • Native cursor support. This is a big one. If you’ve ever changed the cursor in Flash or Flex, you know there are several disadvantages like a noticeable performance hit, pauses in animated cursors due to CPU usage, and the fact that the custom cursor only works inside the AIR application (what’s really happening is that the native mouse cursor is being hidden, and a sprite is being rendered in its place which has to listen for MouseMove events to follow the invisible cursor). With AIR 2.6, developers have access to real native cursors. The new MouseCursorData class takes one or more bitmaps and a hotSpot Point, and creates an actual native cursor.
  • On-device debugging over USB (Android only). No more wrestling with WiFi debugging. Mobile Android apps can now be debugged over USB.
  • Native Menu event refinement. This one is subtle, but important. Sometimes an application needs to dynamically prepare a NativeMenu before showing it in order to add, remove, or disable items. That’s what the Event.DISPLAYING event is for. But a NativeMenu can be used without it actually being displayed as in the case of key equivalents being associated with NativeMenuItems. If a user is interacting with a NativeMenu using the keyboard, no displaying event is thrown which means that the code never has the opportunity to dynamically change the menu. That’s what the new Event.PREPARING event is for. A preparing event is thrown before a NativeMenu is displayed, and before it is accessed with a keyboard shortcut, making it somewhat more generic than a displaying event. I would recommend using Event.PREPARING from now on in case you ever decide to add keyboard shortcuts to your menus.
  • Enhanced text support on Android. Another big one. AIR 2.6 has support for scrolling, text selection, and text context menus (for cut/copy/paste) on Android.
  • NetConnection.httpIdleTimeout. In AIR 2, we added the URLRequest.idleTimeout and URLRequestDefaults.idleTimeout properties. In AIR 2.6, we’re adding similar support to NetConnection with the new httpIdleTimeout property.
  • Bundled Android USB drivers on Windows. Mac users can just connect their Android devices and start copying files and/or debugging right away. Windows users need to install Android USB drivers first. The AIR 2.6 SDK will have Windows USB drivers for most Android devices bundled to make this process much easier.
  • Support for the vipaccess:// URI. The vipaccess:// URI for invoking VeriSign’s VIP Access application is now white-listed in AIR.
  • -version flag for ADT. Running ADT with the -version flag will now return the version of ADT.

62 Responses to Everything New in Adobe AIR 2.6

  1. Pingback: FITC // What’s new in AIR 2.6

  2. Pingback: Everything New in Adobe AIR 2.6 « Christian Cantrell | For Omina Quries

  3. Mark Fuqua says:

    Christian,

    Great news on 2.6…I was starting to worry iOS support would be too long in coming.

    I am hoping you can help me. I need to incorporate reading QRcodes in my application and react to them. In my research, I have found plugins for Phonegap and Appcelerator Titanium. the only mention I seem to be able to find for Air is Scott Janousek’s blog… http://flashmobile.scottjanousek.com/2010/07/14/qrcode-reader-for-android-using-adobe-air/

    He says it is not very perfomant. I think both phonegap and I am sure Appcelerator’s method is native…any pointers…I really want to use Air.

  4. Pingback: Adobe AIR 2.6 | CODIGO.actionscript

  5. Pingback: As novidades do Adobe AIR 2.6 | Leonardo França

  6. michaelb says:

    WOW !… looks freaking tight … When is the next bus tour !..hahah the Apollo has landed in full effect..

  7. Pingback: What’s new in AIR 2.6 for iOS | Adobe Flash Lite

  8. Pingback: lovedev's me2day

  9. Andrew says:

    Which version of FlashBuilder is required for this? Burrito? Any thoughts on AIR 2.6 + Flex Hero (better/incompatible/same)?

  10. James says:

    Its great to see the list of new and improved features in AIR 2.6… Really awesome features and nice progress…

    I’m already using AIR for Android and apart from new features, I’m more interested in the performance improvement with every new release of AIR runtime on mobile.

    So, if you could give us some statistics or benchmarks of some of the performance improvements of AIR 2.6, it would be really really great…

    Thanks

    • Paul B says:

      Ditto x 10. All the features in the world won’t help without adequate performance. We have been optimizing our Air app for months using 2.6 prerelease. It has not been without numerous challenges. Not from a feature standpoint, but from a performance standpoint.

      I guess it is easier to add features and wait for the performance of the hardware to catch up, e.g. Flash for mobile.

  11. Pingback: Anonymous

  12. Pingback: MadeInFlex » Blog Archive » AIR 2.6 released!!

  13. Ivan says:

    cool… but, please Christian tell me, how can I update to air 2.6 and use it with CS5 if there isn’t a new extension yet?

  14. Pingback: AIR 2.6: Welcome back iOS! | EverythingFlex: Flex & AIR

  15. Thx! It’s great news for all Fl-Developers! Super!

  16. Adrian says:

    Do we need a mac in order to package the app for AppStore ?

  17. Really helpful feature-list! Thanks for posting.

  18. Jabari says:

    Some very nice updates, a bit disappointed native notifications weren’t added though. A native oAuth library would be nice as well.

  19. Pingback: AIR for iOS? - Flashforum

  20. Pingback: Packaging AIR application for iOS devices with ADT command and ANT script at Space of Flex/AIR technologies

  21. Derek says:

    Any one try this with Flex yet? Specifically Hero?

    • Paul B says:

      Yes. It does work with Flex Hero. We have done it for the iPad. However, it is not without numerous challenges as adequate performance requires significant attention to optimization. While we have recently seen some impressive performance results using AS3. Although they may exist, we cannot say the same for Flex Hero yet.

  22. amicheaux says:

    anyone else getting this error when trying to debug with flash builder burrito and AIR 2.6 sdk “com.adobe.air.apk.APKPackager.setDebugHost(Ljava/lang/String;)V”

    • Derek Feddon says:

      Yeah, I’m getting the same error in Burrito on Win 7 (x64). Posted to the AIR forums this morning and received this response:

      Flash Builder Burrito (Preview release) does not support AIR SDK 2.6 because some APIs have changed in the AIR SDK 2.6 and Flash Builder Burrito does not aware of those changes. Therefore, what you are seeing is an expected behavior.

      So I presume we need to ditch Burrito and use FB 4.

  23. Pingback: How to Use AIR 2.6 with Flash Builder 4 « Christian Cantrell

  24. Pingback: Adobe AIR 2.6, And All Was Right With The World | eonflex.com

  25. Frederic says:

    Is it possible to use modules in Flex and compile the SWF together with the /assets /config /modules folders in a ios mobile project?

  26. Pingback: RichBox » Blog Archiv » 翻译:Adobe AIR 2.6的新特性

  27. Pingback: Adobe AIR 2.6 is Live

  28. Pingback: AIR 2.6 out » Nischal's blog

  29. Pingback: Adobe AIR 2.6 | i'Mauro blog

  30. What about staged video? Does Mac and PC Desktops get stagedvideo now?

    Thanks

  31. Pingback: Unity Goes Flash | Flash Video Traning Source

  32. Christian Cantrell says:

    StageVideo is only on Adobe AIR for TV, and in the desktop browser player for the moment. We will look into bringing it to other profiles in the future.

  33. Pingback: Asynchronous bitmap decoding in the Adobe Flash runtimes - ByteArray.org

  34. lincon says:

    StageVideo is used in the flex_sdk_4.5.0.19786.You can try it absolutely.But the in the HTML should be added to the Object.

  35. Mark says:

    I really want to know, if there’ll be a Packager for CS5 available soon …

    cheers

  36. Chris Banford says:

    Great work Christian!

    Really like the way Air is maturing and it underlines our decision to base our future client front-ends on it.

    Just wondering… Does Adobe do any type of external beta testing (thinking of AIR 3.0)? We’d be interested if there was such a beast.

    Cheers
    -Chris

  37. Pingback: Asynchronous bitmap decoding in the Adobe Flash runtimes (Adobe Flash Platform Blog)

  38. wolf67 says:

    i use it in xp and it works fine. good program

  39. Pawel Tucholski says:

    Hi

    Nice progress…

    Is barcode scanning in the roadmap of Adobe AIR ?

    Cheers
    Pawel

  40. cmes says:

    Hi
    is the camera support only for iOS 4 devices or can it also be used on 3G/3GS 3.x iOS? I can’t seem to find a clear answer in the docs.
    tx

  41. Pingback: Una manera fácil de crear experiencias : RIA212

  42. Pingback: Una manera fácil de crear experiencias | AUG Venezuela

  43. Pingback: The White Wood | 2011… Year to be a Flash Dev with some emerging technology… Thank you Apple

  44. Pingback: Adobe Air 2.6 and Flex 4.5 released

  45. Jacob says:

    So I guess the Native Installer compatibility with the Update Framework has not been fixed yet?

  46. Neil says:

    Good to see the effort being directed at the mobile market. Once again performance is the key, if we can get that right we are on to a winner here. If not then we will get slated all over again.

  47. Pingback: Adobe AIR 2.6[中文版] | ChinemitBlog

  48. cosmin says:

    “terrible luck with printers”
    I hear you man!

  49. Hannes says:

    We are trying to port our current Flex 3.5 web application to Adobe AIR 2.6.

    Is it possible to use Flex 3.5 with Adobe AIR 2.6?

    Thanks
    Hannes

  50. amar says:

    when will air support getting the system volume or if its mute ? not the volume for the sound channel you set up in your code.

    Since this is a desktop feature, this should be supported. Also, in iOS devices.

  51. Pingback: To Kill or Pause an iOS App (when it’s Deactivated) | roguish

  52. Pingback: The new features of Adobe AIR 2.6 | Leonardo França

  53. Pingback: Comb over Charlie – a Multiscreen Adventure powered by AIR 2.6 | Flashstreamworks

  54. Pingback: Packaging AIR application for iOS devices with ADT command and ANT script | Asher Tech Blog

  55. cyberprodigy says:

    cool. Except for softKeyboardInputAreaOfInterest which does not work. And had been silently removed from livedocs recently as well. Any alternatives to softKeyboardInputAreaOfInterest ?