In an attempt to address some of the fragmentation issues affecting its Android mobile platform, Google has made it possible for developers to distribute different versions of the same app for different devices.
The rapid evolution of the operating system has meant some older Android phones and tablets have been unable to run some recent apps. Google's permission for a single app to have multiple Android installation files, known as APKs, should help developers ensure greater compatibility where such fragmentation of the platform exists.
"We're pleased to let you know that... multiple APK support is now available," Google software engineer Eric Chu wrote in a blog post on Thursday. "Multiple APK support is a new publishing option in Android Market for those developers who want extra control over distribution."
Chu noted that, while broad distribution of a single APK "works very well for almost all applications and has the advantage of simplified product maintenance", the option to distribute multiple APKs would let developers address different subsets of customers.
"These APKs are complete, independent APKs that share the same package name, but contain code and resources to target different Android platform versions, screen sizes, or GL texture-compression formats," Chu wrote.
The Android Market will detect the user's device and OS version and decide accordingly which APK should be delivered, he added, pointing out that the user will see just one Market listing for the app, as before.
"Multiple APK support gives you a variety of ways to control app distribution," Chu said. "For example, you could use it to create separate APKs for phones and tablets under the same product listing. You could also use it to take advantage of new APIs or new hardware capabilities without [affecting] your existing customer base."
The Android developer console has been updated to allow the upload of multiple APKs within a product listing, Chu said.
In March, spurred on by the appearance of Android tablets, Google also released a tool making it easier for developers to have their app work on a variety of screen sizes.