0 Replies Latest reply on Oct 5, 2016 4:11 AM by chris.campbell

    6/16/2016 - Release - AIR 22 Runtime and SDK

    chris.campbell Adobe Employee

      Today we're pleased to announce that the next version of AIR is available for immediate download.  This release of AIR provides an update to the captive Flash Player plugin included with the SDK and runtime.

       

      Below are some of the key features and benefits of AIR 22.  Please see our release notes for full details.

       

      New Features:

       

      • Video Pipeline Changes for Android AIR

      To address recommendations from Google and to keep pace with OS future developments, we've made significant changes in the way we use video codecs for decoding on AIR Android.  There is no impact on functionality or performance for an AS developer.  However, if you encounter issues with your AIR Android application, please report them to us at https://bugbase.adobe.com.

       

      • HiDPI support for AIR Windows

      From AIR 22 onwards, we have introduced HiDPI support for AIR Desktop on Windows, where we will be providing higher quality rendering for AIR contents on HiDPI displays. The feature will work on the concept of higher pixel density scaling instead of pixel-doubling scaling. The feature is already provided for AIR on Mac Retina displays.

       

      To implement the above feature in your AIR application, set requestedDisplayResolution to “high” in your application's descriptor file.

       

      <requestedDisplayResolution>high</requestedDisplayResolution>

       

      stage.contentsScaleFactor

      AIR content scales according to the value of stage.contentsScaleFactor. Where, the value of stage.contentsScaleFactor would be calculated as stage.contentsScaleFactor = Current DPI / DPI at 100% (The DPI at 100% for Windows is 96 by default)

       

      However, some of the content on Windows would scale only after the user signs-off and then signs-in again, as prompted by the OS. In the case where an extended screen is connected, the AIR app would adjust according to the DPI level of the particular screen, where each screen can have its independent DPI level. High quality renderings will cover the Stage3D content, vector assets and text, whereas high-resolution bitmap assets will have to be provided by the developer.

       

      The Stage3D back buffer needs to be configured to the high resolution back buffer which can be done by calling Context3D.configureBackBuffer with the wantsBestResolution parameter set to 'true'.

       

      The number of Screen pixels for the content will be ActionScript side Flash Pixels * Contents Scale Factor * Contents Scale Factor

       

      • Anti-Aliasing (Render to texture) for AIR Mobile

      Anti-Aliasing is useful in improving perceived image quality in applications. Hardware base Multisampling Anti-Aliasing (MSAA) is now available for both Mobile Platforms i.e. iOS and Android using Contex3D.setRenderToTexture API.

       

      This feature was previously available for Desktop and Flash Player.

       

      To enable MSAA set the level from 0 to 2 using the Context3D.setRenderToTexture.

       

      The following are the effect of levels of antialiasing values:

      0=1 subsample, No antialiasing

      1=2 subsamples, medium antialiasing

      2=4 subsamples, high antialiasing.

       

      If you provide a higher level of antialiasing (more than 2) the level will be clipped to either the maximum level of antialiasing supported by GPU or 2.

       

      Note: This feature is currently not available in configureBackbuffer.

       

      API Assumptions and Dependencies

      1) Anti-Aliasing is not available in software mode rendering.

      2) Extra GPU memory will be used by the App using Anti-aliasing and hence can cause slight performance degradation.

       

      • Echo Cancellation on AIR iOS

      Starting with AIR 22, AIR developers will now have access to Echo Cancellation with AIR iOS applications.  Acoustic echo occurs when speaker output feeds back to the built-in microphone input producing disturbing echoing artifacts and significantly reducing the quality of captured data.  Typical acoustic echo arises with collaboration applications, where two or more parties carry out interactive conversation.  With AIR 22 and onwards, developers will be able to create VOIP applications without any echo using AIR on iOS.

       

      This feature is already present on AIR for desktop.  To get access to the device Microphone, we typically use Microphone.getMicrophone(), but this API returns a simple microphone, which does not have the ability to eliminate acoustic echo.  In order to remove acoustic echo, we need to get an instance of the Microphone using the API: Microphone.getEnhancedMicrophone(). The device microphone returned by this API will have the acoustic echo cancellation feature enabled.

       

      Please note that the application must be packaged with latest AIR SDK 22 or above and the swf-version should be 33 or above.

       

      public function Microphone()

      {

      mic = Microphone.getEnhancedMicrophone();

      mic.setLoopBack(true);

      mic.addEventListener(StatusEvent.STATUS, mic_status);

      }

       

      Limitations:  VOIP Applications will work only on RTMP.  Performance of this feature will be varying depending upon the iOS version and the device type.  The API MicrophoneEnhancedOptions will be a no-op on AIR for iOS.

       

      • Multitasking Enhancements Support in AIR iOS - Beta

      With iOS 9, Apple introduced Multitasking enhancements for some iPad devices, please see details on following pages.

       

      https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.h tml

      https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/AdoptingMult itaskingOniPad/

       

      We're happy to share that AIR 22 lets developers utilize these iOS enhancements (with the exception of Picure-In-Picture).  Here are the technical guidelines to bring these functionalities to your iOS application on supported iPads.

       

      Technical Guidelines

       

      Application Descriptor Changes

      Three new tags (multiasking, launchScreen, and assetsCar) in the application descriptor have been introduced.

       

      <iPhone>

              <multitasking>true</multitasking>

              <launchScreen>LaunchScreen.storyboardc</launchScreen>

              <assetsCar>Assets.car</assetsCar>

            

      <InfoAdditions><![CDATA[

                   <key>UIDeviceFamily</key>

                           <array>

                               <string>1</string>

                               <string>2</string>

                           </array>

      ]]></InfoAdditions>

      </iPhone>

       

      The default value of the multitasking tag is false. We need to keep the value true for supporting multitasking.  launchScreen and assetsCar represent the name of storyboardc and Asset.car file used respectively. The launchScreen file is mandatory but assetCar is optional.

       

      Note: these files are also used to show the launch images for your app, hence you do not need to provide the launch images separately while packaging the IPA for iOS 8+ devices. For iOS 7 and below, you still need to package the launch images separately. As per Apple guidelines, to be able to support the multasking enhancements, your app needs to support all orientation states, that means following tags are mandatory.

       

      <aspectRatio>any</aspectRatio>
      <autoOrients>true</autoOrients>

       

      Creating Assets.car and storyboardc files

      To create Assets.car File and storyboard.c files used in your multitasking application, an AS developer needs to have a Mac with Xcode 7.1 or above.

       

        1. On your Mac, launch Xcode and open File -> New -> Project -> iOS Application -> single View Application.
        2. Give any name to the app and click create.
        3. In the general tab of your project select Deployment Target as 8.0.
        4. Click on Assets.xcassets on the left column and create a New Image Set, name it LaunchImageScreen and add images to the image placeholder as needed. For the various image dimensions, you might want to refer to this link.
        5. Click on the LaunchScreen.storyboard in the left column.
        6. At the bottom right of the xcode window, enter the text “image” in the filter text box.
        7. Drag and drop the Image View to the LaunchScreen.storyboard.
        8. On the top right, in the image view selector, select the Image
        9. Set the LaunchImageScreen created above.
        10. Now, drag the image view in the storyboard to cover the full screen of the storyboard. At the bottom left click on add missing constraints.
        11. Run this native app on your iOS device (iOS 8+) and make sure the launchscreen covers your screen.
        12. Go to the .app file created in your file system where you created the project, right click on .app file and show package contents.
        13. Copy the Assets.car file from the package and also the LaunchScreen.storyboardc file from Base.lproj folder.

       

      You can package the app with the extracted Assets.car and LaunchScreen.storyboardc as assets as the following ADT command.  Appropriate resize events are dispatched on runtime for various app states, AS Developers can handle them on runtime.

       

      <path to adt> -package -target ipa-app-store -provisioning-profile <.mobileprovision> -keystore <.p12> -storetype pkcs12 -storepass <password> <.ipa> <.xml> <.swf> LaunchScreen.storyboardc Assets.car

       

      • Support for Android N Beta

      AIR Applications built using AIR 21 or below may not run properly on Google's latest Android N preview build and can encounter following error (see below).  We've fixed this issue with AIR 22 and developers are encouraged to upgrade to the AIR SDK 22 to comply with Android's new restrictions.

       

      Detected problems with app native libraries (please consult log for detail):
      libCore.so: unauthorized access to 'libstagefright.so'
      libCore.so: unauthorized access to 'libutils.so'
      libCore.so: unauthorized access to 'libui.so'

       

      • System level Flash Player support for AIR desktop applications

      Starting in AIR 22, applications that play swf content via the HTML control (WebKit) will now load the system level NPAPI Flash Player provided by Adobe (https://get.adobe.com/flashplayer).  If this plugin is not available on the system, the end user will be prompted to download and install the plugin from Adobe.

       

       

      Fixed Issues:

      • [Win10][StageWebView]Some uppercase letters can't be entered in a form input [4091451]
      • [Win10] AIR quits unexpectedly when trying to instantiate camera on Surface 4 [4086185]
      • Application throws error#2031 if SecureSocket tries to connect to non-TLS server socket [4049565]
      • [iOS] App crashes when compiled with AIR 20 or higher [4151370]
      • [iOS9] AIR crashed when use sound in background mode [4083774]
      • [iOS] [Win SDK] Compilation fails while executing ld64 error on packaging IPA in Windows machine using  -hideAneLibSymbols yes [4118588]
      • [iOS][Android] StageText: FocusEvent.MOUSE_FOCUS_CHANGE event added that allows preventDefault[] to cancel focus loss [4057869]
      • [iOS] UIBackgroundModes for "location" not working [4136086]
      • [iOS] Push notification subscription crashes the app [4137024]
      • [iOS] App crashes on calling CameraUI [4148590]
      • [iOS] A particular application crashes when brought to foreground from background
      • [iOS] The Bengali[ or Hindi] characters displayed as blank box when clicked outside of Textfield after typing Bengali[or Hindi] characters into Textfield. [3975752]
      • [iOS][Win] IPA packaged on Windows machine cannot be submitted to the Apple App store. Error "This build is invalid" occurs in iTunes connect
      • [iOS][Win] Installation Error: ApplicationVerificationFailed message appears on installing IPA using adt command if there is any info plist inside the assets or ANE
      • [Android] FocusEvent.MouseFocusChange event should be added in StageText in Android – 3797220
      • [Android]Memory problem on airSDK20 [4101613]
      • [Android] FLV videos don't work with StageVideo [3943664]
      • [Android] Entering Unicode Emoticons crashes an App [4118744]
      • ATF containing RGB888 format are not getting rendered properly [4154433]
      • ANE compiled with AIR 22 is not working anymore [4146925]

       

       

      Download Locations:

       

      AIR runtime for Windows: 22.0.0.153 Runtime Download

      AIR runtime for Macintosh: 22.0.0.153 Runtime Download

       

      AIR SDK & Compiler for Windows: 22.0.0.153 SDK & Compiler Download

      AIR SDK & Compiler for Macintosh: 22.0.0.153 SDK & Compiler Download

       

      Note: To provide all the all the necessary tools for our developers in one place and avoid having to download multiple components, we are packaging Adobe AIR 22 SDK and ActionScript Compiler 2.0 in a single SDK called “Adobe AIR 20 SDK & Compiler”.

       

      AIR SDK (Compatible with Flex) for Windows: 22.0.0.153 SDK Windows Download

      AIR SDK (Compatible with Flex) for Macintosh: 22.0.0.153 SDK Macintosh Download

       

      Previous versions of the AIR runtime and SDK can be found on the Archived AIR SDK and Runtimes page