We create apps and distribute the on Google Play and have gone years being able to create one .apk and distribute to all devices.
Recently we found one device (Samsung Galaxy Core Prime SM-G360V
Android version: 5.1.1) that we will need to make a special build.
It is probably possible to find something that will work on all devices, but I just don't want to force my thousands of users to update their app just because of one phone.
I have read this:
https://support.google.com/googleplay/android-developer/answer/7353455?hl=en
and I have read this:
https://developer.android.com/google/play/publishing/multiple-apks
They don't really go over a strategy for doing what we want to do:
Leave our existing .apk in the store and keep the 5.1.1 device from downloading it.
Add a new .apk that only the 5.1.1 device will download.
One element of my concern is that the instructions talk about a list of excluded phones but they don't talk about a list of supported phones.
I would like to exclude a phone on our existing .apk; and set a supported phone on the new .apk (implying that all other devices are excluded).
This is also making changes to a production app without really being able to test so we have to have clear instructions of the side effects of anything we are changing on Google Play.
Using a whole APK variant for a single device is pretty unusual. Much more common reasons for using Multiple APKs are:
having an old version for older phones on old SDKs, and new versions for newer phones
having different versions for different native libraries
having different versions for different densities of assets
For all of these use cases developers are now encouraged to use the Android App Bundle rather than publishing multiple APKs.
To be honest, if you are only doing the change for one phone I'd encourage a single "if" statement in the code. It's a pain for users to get an update, you are right, but if the change is small, Google Play patching and compression should keep the update size pretty small.
Related
We currently have an Android app listed in play store which supports Android 2.x and plan an update which has minimum Android 4 (having Holo theme etc).
The question now is:
If we publish the update, what will happen to phones having Android 2.x?
Will they see the last version supporting Android 2 in the store or won´t they see the app?
I didn´t find anything about this in the store guidelines. There is a concept for multiple APKs, but we do not want to publish new 2.x versions, we only want the availability of the old app version for Android 2 powered devices...
The normal flow is to have just one APK active at a time. But you can enable multiple APKs to be active by following this rules. You have to check the changes to your manifest between the two versions and see if they apply to those rules.
It worth reading the full multiple apks page to get a better understanding before making any changes/upload to developer console.
Also, note that to have multiple APKs you must switch your console view to advanced mode (because simple mode only allows to have one APK active).
This link has some guidelines specific to having multiple APKs for different API levels (which is your case).
I need to make an application which have quite different design and some extra functionality for android phone and tablet.
Can i make separate .apk for phone and tablet and upload them as one or I need to make one .apk which has separate layouts and permission checks?
you need to make one .apk,because having two different .apk just differing on the basis of their compatible devices will be kind of weird.You need to create your layouts according to the devices you want to run your app on,either for tablets or smartphones of different sizes.See this one Do I need 14 different layouts to support all Android devices?
Yes, this should be possible. Please have a look at the respective article in the Android Developer Guide:
http://developer.android.com/google/play/publishing/multiple-apks.html
However, Google encourages to develop and deploy only one APK for all devices for several reasons: http://developer.android.com/google/play/publishing/multiple-apks.html#SingleAPK
I understand how multiple APKs work on Google Play, but so far I've supported a single APK for V7 (2.1) and up. I'd like to start using Android 3.x-4.x+ features that could be more difficult to make backwards compatible, and I wouldn't mind not having to build in that growing compatibility library. But I still want to make the product available to Android 2.x users, even though that version will be "frozen" and not receive future product enhancements.
So how should this best be done? I could use the basic multiple-APK approach, but then users of 2.x devices might see things in the product description that are not in the APK that they would be installing. But would the version number show up correctly based on the APK that matches the user's device?
Any other ideas from someone who's done this?
I am in a situation where I have to publish two variants of the same application which are optimized for different devices (one for a specific HTC, other for all the other devices)
I want to be able to publish both the apps specifying which one is compatible with which device.
Is it something that I'll be controlling with the Manifest file?
If yes, then how!?
The typical scenario is, I have a separate version for HTC Inspire 4G, and another version for every other phone.
How do I upload these two to the market when:
The app is supposed to be an upgrade
The app is a fresh upload
Is the only difference in the interphases? You could probably combine the projects using alternate layouts.
If you absolutely MUST have two separate apps, I think you may have to copy the contents of your project over to a new file, since the android market won't allow you to publish multiple apps with the same package name (it will stop you from uploading any app witht the same namespace and ask you to upgrade the first app instead).
I think your only options are to somehow combine the code into one app that distinguishes between the devices internally somehow, or to create two completely seperate projects, and publish them under similar names.
Unfortunately, each application on market must have unique package. So you are out of luck to upgrade single application to different ones depending on device.
I'd suggest that you make accommodations for Inspire 4G in your code. I suspect that differences are not that significant to warrant two applications.
If I create an application for Android, how do you package extra items in with it like a live wallpaper or widgets? For example, google maps does this by including a live wallpaper with the download of the latest version.
On a related note, with google maps, it's available for, I believe, 1.6 and up, but it seems that it is all the same download. So how do you ensure that, even though there may be a 2.x only feature included, it still shows up for lower OS phones? Or is the marketplace maybe actually holding onto two separate APKs for each OS?
I don't know anything about live wallpapers, but widgets aren't really a separate item from the app; if you read the development guide about widgets, you'll see that they're actually just another component of an application.
I'm not sure what you're getting at for the second question. Are you asking how Google Maps is deployed for multiple platforms? If so, maybe you should check the answer I posted to your last question (which is more focused on multiple platform deployment). The specifics I don't know; I'm not sure if they're two separate APKs or if Google just used their backwards compatibility.