Android Studio 3.5’s first beta is out, and it brings a number of fixes and optimizations, along with one major new feature; the ability to deliver app features dynamically. This new feature essentially allows developers to set up requirements for certain app features or versions thereof, and only deliver an app version that contains or is compatible with those if the target device meets those requirements.
This feature is set to be a literal game changer, making this release a big deal even if its only other real content is simple bug fixes. Google calls the new feature “conditional delivery for dynamic feature modules”, and it allows developers to set up three requirements.
Apps being delivered can look at a user device’s country of origin, API level, which is determined by its Android version, and of course, the device’s overall hardware and software features. Using all of these requirement sets as triggers, developers will be able to manufacture different feature modules and feature sets that cater to a given user’s device strengths and weaknesses.
One of the easiest examples to think up for a use case, as stated above, is for games. The feature could allow for delivery of a slightly downgraded version of a game, or one that eschews certain optimizations, based on a target device’s power, Android API level, and feature set.
To paint the clearest lines possible on this feature, perhaps a developer has a game that they developed in Unity, and can thus port around to different CPU architectures, platforms, graphical backends, and so on. If this developer creates a beautiful, highly optimized Vulkan version alongside a less beefy OpenGL version, rather than forcing OpenGL users to download the full game including Vulkan optimizations that they can’t use, they can simply serve them only the OpenGL version.
Likewise, developers who may use certain Android API features for certain things could potentially create workarounds, however inefficient or not-so-pretty, to serve to devices running older Android versions.
The bug fixes this time around fixes for things like APK Analyzer returning strange errors after the latest upgrade, code completion support fixes for the built-in Java IDE, Turkish letters bugs in Gradle, and more. Some of the more key fixes include doing away with a bug that prevented in-IDE app testing, cache syncing for projects, protections for library changes in new projects, and a fix for a data binding issue that popped up in a recent Gradle version.
As with any upgrade to the Beta channel of Android Studio, you’ll need to have your Android Studio set up to be on the Beta channel before you can take advantage. It’s ready to download as of this writing, so if you’re a developer and this list of features and fixes piqued your interest, now’s the time to give it a go. If something happens that you don’t like, you can always roll back to the Stable channel to revert changes and go back to the way things were before you did the update.