Jichao Li, Software Engineer; Shobana Ravi, Software Engineer
Since our href="https://android-developers.googleblog.com/2017/05/android-instant-apps-is-open-to-all.html">public
launch at Google I/O, we've been working hard to improve the developer
experience of building instant apps. Today, we're excited to announce
availability of the Android Instant Apps SDK 1.1 with some highly-requested
features such as improved NDK support, configuration APKs for binary size
reduction, and a new API to maintain user's context when they transition from an
instant app to the installed app.
Introducing configuration APKs
For a great instant app experience, app binaries need to be lean and well
structured. That's why we're introducing configuration APKs.
Configuration APKs allow developers to isolate device-specific resources and
native libraries into independent APKs. For an application that uses
configuration APKs, the Android Instant Apps framework will only load the
resources and native libraries relevant to the user's device, thereby reducing
the total size of the instant app on the device.
We currently support configuration APKs for display density, CPU architecture
(ABI), and language. With these, we have seen an average reduction of 10% in the
size of the binaries loaded. Actual savings for a given app depend on the number
of resource files and native libraries that can be configured.
As an example, a user on an ARM device with LDPI screen density and language set
to Chinese would then receive device-agnostic code and resources, and then only
get the configuration APKs that have ARM native libraries, the Chinese language,
and LDPI resources. They would not receive any of the other configuration APKs
such as the x86 libraries, Spanish language strings, or HDPI resources.
Setting up configuration APKs for your app is a simple change to your gradle
setup. Just follow the steps in our href="https://developer.android.com/topic/instant-apps/guides/config-splits.html">public
documentation.
Persistent user context after installation
On Android Oreo, the internal storage of the instant version of the app is
directly available to the installed version of the app. With this release of the
SDK, we are enabling this functionality on older versions of the Android
Framework, including Lollipop, Marshmallow, and Nougat devices.
To extract the internal storage of the instant app, installed apps can now call
href="https://developers.google.com/android/reference/com/google/android/gms/instantapps/InstantAppsClient#getInstantAppData()">InstantAppsClient.getInstantAppData()
using the Instant Apps Google Play Services API and get a ZIP file of the
instant app's internal storage.
Check out our href="https://github.com/googlesamples/android-instant-apps">code sample and
href="https://developers.google.com/android/reference/com/google/android/gms/instantapps/InstantAppsClient#getInstantAppData()">documentation
for more details on how to use this API.
Start building your Android Instant App
It's simple to start building your instant app on the latest SDK. Just open the
SDK Manager in Android Studio and update your Instant Apps Development SDK to
1.1.0. We can't wait to see what instant app experiences you build with these
new features.
0 comments