What's the minimum OS to do android in app subscription? - android

I would like implement in-app subscription on my android app, but what's the minimum target to do that ?
2.1 or 2.2 ?

From the Android Developers site (Version 3 is the latest):
In-app Billing Version 3 is supported on devices running Android 2.2 or higher that have the latest version of the Google Play store installed (a vast majority of active devices).
So the minimum target is 2.2.
http://developer.android.com/google/play/billing/billing_overview.html

As soon as I know, the subscription "minimum target" is related to the Google Play Store app, and not from your app.
Take a look at:
http://developer.android.com/google/play/billing/versions.html#Subs

In-app Billing Version 3 is supported on devices running Android 2.2 or higher that have the latest version of the Google Play store installed.
Source: http://developer.android.com/google/play/billing/billing_overview.html#migration

Use the version 2.1 and above since for all the mobile devices are almost higher versions and its good to develop with min version 2.1 & above.

Before deciding the min version for your application you must always check the platform distribution on google. For example, I choose not to include 2.2, since it brings unnecessary API legacy issues and too much work for too less benefit. Keep in mind, in-app billing is really complex to get right. The API's are just crazy'ly complex.

Related

Are there any corelation between Android OS version and supported Google play services version?

Firebase Crashlytics has announced that it's going to remove its old version and we should use its new version SDK till november 15th on our androird app. To do so, we should also increase our minimum supported google play services version to at lease 16 which currently is 11.xx.xx.
So the question is what android devices don't support google play services v 16.xx.xx? I need to know this so I can estimate our users churn.
Are there any relations between minimum google play services version and Android OS version or Android API level or Device model?
Are there any relations between minimum google play services version and Android OS version or Android API level or Device model?
As with any other unknown app, just peek its Manifest. If there's limitation on sdk, it will be there as well.
So the question is what android devices don't support google play services v 16.xx.xx?
That's going to be an extremely long list of devices that are mostly no longer in use any more. It's probably not worthwhile to try to get this list, as it's going to take so much work to process what that means for you. It's probably better to take the advice of Android Studio (during new project configuration) when it says that "your app will run on approximately 99.8% of devices" when targeting api level 16. According to the documentation:
In general, devices running Android 4.1 (API level 16) or later and have the Google Play services app installed receive updates within a few days. This allows you to use the newest APIs in Google Play services and reach most of the devices in the Android ecosystem. Devices older than Android 4.1 or devices without the Google Play services app are not supported.
Are there any relations between minimum google play services version and Android OS version or Android API level or Device model?
Play services currently keeps itself up to date on all devices that target API level 16 or higher.
If you want to fully understand all the documentation details about the relationship between Play services and Android API levels, you should read the documentation. Play services doesn't target anything about specific devices or models. It is purely dependent on API level.

Targeting older mobile devices in 2019

Something doesn't add up:
According to Google Play’s target API level requirements new apps for Android as of June 2019 cannot target Android versions below 8. Starting with August 2019, nothing below version 9.
Yet, according to Distribution dashboard the 9's version devices share is just a bit above 10% while 9 and 8 combined get you to about 30%.
Am I correct to deduce that anyone thinking of creating a new app today (June 2019)
can only reach 30% of his Android audience (via Play Store) and
if s/he doesn't make it before August, only 10% of the whole Android users can be reached?
Apple has a similarly sounding page here, but: 1. it mentions iOS 12 share being above 80% and 2. I don't think built using iOS 12.1 SDK or later really means targeting iOS 12.1 and above.
Current Xcode still lets you target iOS 8.0 (do they still accept it into the App Store?) which still happily runs on 2011 iPhone 4S despite its minuscule market share.
The targetSdkVersion restriction was introduced to prevent app developers from using old apis like permissions to bypass runtime permissions.
An app targeting older api version was always allowed all required permissions at installation time. With the introduction of run time permissions, user has a better understanding and control of permissions in app.
The minSdkVersion is the one which actually affects from which version of Android your app runs.
API Level 21 would do good as it has near to 85% coverage of devices.
The restrictions that the Play Store imposes is on targetSdkVersion. You are confusing that with minSdkVersion. minSdkVersion controls how old of an Android device can run the code, and this is not affected by the Play Store restrictions.

In appgyver, How to change app build target to 8.0 (Android)?

In August 1, Google Play requires new apps to target at least Android 8.0 (API level 26). But in appgyver, I notice the latest available version is 4.5.3. Is there any way to upgrade it? Thanks!
I having the same issue, which is the maximum API level which appgyver supports is 21 only. GooglePlay required at least API Level 26 on August 2018 onward.
AppGyver just officially answered this question here.
TL;TR AppGyver is using Crosswalk, an Intel product, to build Android apps, and Intel has shut down Crosswalk over a year ago, now it is not possible for AppGyver to update their Build Service without rewriting the entier Android part, which would cost them too much, Supersonic and Steroids being depreciated, Android is officially abandonned by AppGyver, the Build Service will stay as is for apps that are internally distributed but won't allow to build apps destinated for Play Store.
Edit: I found a solution that allow me to get the app accepted on the Play Store, but app will crash on Android 8.
I then tested to install my app from the Play Store on a Android 6 with success but as we could expect it crashes on Android 8, the edited Target SDK number dupes the Play Store so it lets the APK in, but in the end it hasn't been built with Android 8 capabilities, so it won't work on that version.
All I had to do was to import my APK in APK Icon Editor, go in the Properties tab, change the Target SDK value to 26 (be sure to keep a lower value in the Minimum SDK field as it's the one telling what Android version can actually instal your app, if it's high then older phones won't have access to your app), and click on Pack APK to generate a new signed APK that is accepted by the Play Store!
Its as easy as this:
I then tested to install my app from the Play Store on a Android 6 with success but as we could expect it crashes on Android 8, the edited Target SDK number dupes the Play Store so it lets the APK in, but in the end it hasn't been built with Android 8 capabilities, so it won't work on that version.
Edit: it seems like it also crashes on Android 7 :(
Appgyver is constantly working on their platform and bringing latest updates. hopefully soon this issue will be resolved as well.. try contacting their support

Getting Android app to run on more devices?

This is a beginner question, but what are the steps needed to get my app to run on more devices? I noticed that my new update (on beta) is running on fewer devices. Do I just need to update the targetminsdk version in build gradle or is there anything else I need to do? I think I should be aiming for minsdkversion 18?
My versions in gradle are here
compileSdkVersion 23
minSdkVersion 21
targetSdkVersion 22
Min sdk version : Is the earliest release of the Android SDK that your application can run on. So this is what you want to change if you want more devices supported for your app.
Target sdk version : The version your application was targeted to run on. Ideally this is because of some sort of optimal run conditions.
Android Developers forum says :
The dashboard for Platform Versions is updated regularly to show the distribution of active devices running each version of Android, based
on the number of devices that visit the Google Play Store. Generally,
it’s a good practice to support about 90% of the active devices, while
targeting your app to the latest version.
For more details, go through : Supporting Different Platform Versions
For API 18 : your app will run on approximately 76.9% of the devices that are active on Google Play Store.
For API 21 : your app will run on approximately 40.5% of the devices that are active on Google Play Store.
Now that is a huge difference, that you may not really want for your app. So you need to weigh your pros and cons of having Latest API support to getting more users. I would infact recommend you to go for API 18 instead of 21, unless you have some very important functionality that necessitates API 21 and above and can't be done without.

How to decide which version of Google Play services to use?

I am working on an Android application which supports Android version 14 and above. I have compiled my application against Android version 21.
I have used Google Play Services 7.0.0. The application works fine on Android 21. But when I run the application on Android version 19, it throws the following exception
Google Play services out of date. Requires 7095000 but found 6183036
So, I want to know what should be the version of Google Play that I should include in my application so that it works fine on Android 14 and above.
I think you are trying to find an answer to your question using a wrong approach.
The version of the Google Play Services that you want to include depends on the APIs your application implements. Picking a version based on the device you want to support will affect your application performance in a negative way.
Nearby Connections API, Places API are added in the Google Play services 7.0. If your application is using any of those or other APIs added in this version of Play Services then, these features may not work if you specify a lesser version in the Gradle files.
Similarly, Mobile Vision API, Nearby Messages were introduced in the Google Play Services version 7.8. There is no way you can implement them by including an earlier version of Play Services even if you want to support Android 2.3 devices.
Maps and Location Based Services services had been updated in many Play Services versions. Each update has added a small feature to it and improved overall battery efficiency, responsiveness. The version number you are using will affect the battery life ...
In every update to the Google Play Services existing versions, new APIs are released and old ones are improved. Consider the APIs your application is implementing then decide which version of the Play Services you want your users to update so that they can use your application smoothly.
Many Android users regularly update their Google Play Services. Even if the user has a KitKat device or Ice Cream Sandwich they could have updated their Google Play Services to the latest 7.8 version or to an intermediate version.
You can change the minimum sdk version in gradle(app) file to run your application in lower versions of android.

Categories

Resources