Before we talk about this feature, let me give an overview of Shared and Captive runtimes.
- Shared Runtime – A runtime that is installed as a separate application and can be used by multiple applications.
- Captive or Embedded Runtime – A runtime that is embedded within the application and is only used by that one application.
With shared runtime when an AIR Android application is launched a dialog is shown to install/update the runtime if AIR runtime is not installed or not updated, and this being an extra step is not a great experience for the application users.
Starting AIR 3.7, packaging AIR applications for Android in any target will embed the AIR runtime in the application itself. So, this dialog will now not be seen for applications packaged from AIR 3.7 and onwards. This will allow applications to get a better installation experience, however the application size would increase by around 9MB. This is now parallel to iOS applications where also AIR runtime is embedded.
Advantages of moving to applications with captive AIR runtime:
- AIR Android applications can now be installed seamlessly, without a separate runtime download.
- Users will not be concerned with updating the runtime.
- Developers can now control their applications to use a specific runtime version.
The existing workflows for packaging Android applications from tools such as Flash Builder and Flash Professional remains unchanged. Internally however these tools would create applications with AIR runtime embedded for all the targets.