Target API level requirement from late 2018 - android

I don't know if this is a correct place where ask the following:
I have read on the google play developer console that :
In the second half of 2018, Play will require that new apps and app
updates target a recent Android API level. This will be required for
new apps in August 2018, and for updates to existing apps in November
2018. This is to ensure apps are built on the latest APIs optimized for security and performance
and
Google Play will require that new apps target at least Android 8.0
(API level 26) from August 1, 2018, and that app updates target
Android 8.0 from November 1, 2018.
What does this mean? Does this mean that I will not be able to develop applications compatible with versions smaller than 8.0?
If so, how can bug fixings / new features be introduced within existing apps with versions other than 8.0?
This would result in a "death" of all devices with version other than 8.0 ... Or is Google thinking about releasing android oreo for all devices on the market?
*************** EDIT ***************
The doubt arises from this message on my account of google developer console:
The translation is :
Starting from August 2018, the new apps must minimum target Android 8.0.
Starting in November 2018, app updates must target version 8.0
The minumum target is :
An integer designating the minimum API Level required for the
application to run.The Android system will prevent the user from installing the application if the system's API Level is lower than the value specified in this attribute.
Bad interpretation of the message ?

What does this mean?
What it means is, you should ensure you have set targetSdkVersion to 26 in your build.gradle and your application is compatible with Android O behavior changes.
Does this mean that I will not be able to develop application compatible with versions smaller than 8.0?
You can set minSdkVersion lower than 8.0.
This would result in a "death" of all devices with version other than
8.0 ... Or is Google thinking about releasing android oreo for all devices on the market?
The distribution rate for Android O is still around 6%, which means older versions still constitute around 94%. They cannot implement drastic changes for this reason. Older OS version will be still supported until the adaptation for Android O changes drastically. It could be challenging because it involves adaptation from huge number of manufacturers.
If you are uploading your app as your first release, then you must ensure you are compatible with Android O.
For updates to existing app, the deadline is November.
onsole, Android Studio, and Firebase. Start survey
Meet Google Play's target API level requirement
Bad interpretation of the message ?
Actual statement in English from site is:
Google Play will require that new apps target at least Android 8.0
(API level 26) from August 1, 2018, and that app updates target
Android 8.0 from November 1, 2018.

You should first understand the difference between TARGET API and MINIMUM
API Levels.
As a reminder, target API level is different from minimum API level. As the name implies, minimum API level is used to declare the lowest version of Android an app supports. The target API level is technically defined as the version of the operating system an app was tested to work with; but in more practical terms, it's used to define a set of behaviors an app expects from the operating system.
Please follow this link to view the complete source of this information:
https://www.androidpolice.com/2017/12/19/play-store-require-new-updated-apps-target-recent-api-levels-distribute-native-apps-64-bit-support/

Just update your compileSdkVersion and targetSdkVersion to 26 (or better to 28).
And read about minimum api version and target api version. It`s important to understand.
https://developer.android.com/guide/topics/manifest/uses-sdk-element

What does this mean?
its means that you need to set target sdk Android 8.0 (26 API)
Does this mean that I will not be able to develop applications compatible with versions smaller than 8.0?
No it means that the end November your app must compatible with Android O (26 API)
This would result in a "death" of all devices with version other than 8.0
NO
how can bug fixings / new features be introduced within existing apps with versions other than 8.0?
it will support all features introduced within existing apps with versions other than 8.0
is Google thinking about releasing android oreo for all devices on the market?
Nobody knows the future

Related

Google Play Target API level requirement

From Google Play guides I notice that from 2 November 2020, app updates must target Android 10 (API level 29) or higher.
When you upload an APK, it needs to meet Google Play’s target API level requirements. New apps must target Android 10 (API level 29) or higher and app updates must target Android 9 (API level 28) or higher.
Every new Android version introduces changes that bring significant security and performance improvements as well as enhance the user experience of Android overall. Some of these changes only apply to apps that explicitly declare support through their targetSdkVersion manifest attribute (also known as the target API level).
It means that my new application version (updated one) could still target Api Level 28 ? Is this allowed only until November 2, 2020 ?
Thanks.
Up to November 1, 2020, you can update your application APK targeting API level 28.
From November 2, 2020, APK updates must target API level 29 i.e. Android 10
Also:
Wear OS apps are not subject to the API level 29 requirement.
Once these requirements come into effect, the Play Console will
prevent you from submitting new APKs using older target API levels.
For more infos:https://support.google.com/googleplay/android-developer/answer/113469#targetsdk

Is it possible to publish apps to Google Play Store that target Android devices back to KitKat?

I am new to developing Android apps, just started learning. Deciding to go with a very simple app (game), to start with, for learning purposes, I did some research on the different versions of Android devices, and found as of May 2019, KitKat (Android 4.4 / API 23) still had about 6% of the total devices (which equated at that time to roughly 172.5 million devices). My thought was this would be a good cutoff/target to build this app.
However, I have since learned that (as of August 1, 2019 for new apps, and November 1, 2019 for updates), Google Play requires a minimum level of Pie (Android 9 / API 28) to be used.
Does this mean that I can not publish an App that supports older devices back to KitKat? Or am I not understanding something?
The targetSdkVersion is completely separate from the minSdkVersion you use as per the Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion blog post.
While Google Play requires that you target a recent version of Android, you can set your minSdkVersion to any value.

Why I can still publish app that has Api level lower than 26 if google will only accept apps with Api level 26 or newer?

Recently I read a book about android which says that Starting with august 2019, Google play will only accept apps built using Api 26 or newer. But recently we published android app that has minimum Api level 23 and it is successfully published. Can anyone tell whats the scenario, or the documentation in the book is wrong?
They are not talking about minSdk , they are talking about targetSdk or compileSdk.
Notice that I used "or" because your targetSdk can not be higher than your compileSdk.
When you increment targetSdk number, you have to comply with the new api and rules enforced however using an old compile/target sdk will let you use the features in the same way as they worked in earlier versions (which is one of the root causes of security vulnerablities). That is why they placed the restriction so every app is forced to use 'new way of doing things' rather than old.
For example, Before Android 5.0, permissions were granted when app was installed but then it was changed so now you have to ask permissions on runtime. If you target Sdk api lower than Android 5.0, you don't have to do anything and it will work on newer devices as well. However, if you target api higher than Android 5, you must ask for permissions on runtime or the newer sdk code throws an exception.
What this means is that your target API has to be their minimum (in this case 28), but you can still set your own minimum API to whatever you want to allow backwards compatibility.
When you upload an APK, it needs to meet Google Play’s target API level requirements. Starting August 1, 2019, Google Play requires that new apps target at least Android 9.0 (API level 28), and that app updates target Android 9.0 from November 1, 2019. Until these dates, new apps and app updates must target at least Android 8.0 (API level 26).
https://developer.android.com/distribute/best-practices/develop/target-sdk
I have an app that targets 28, but the min API level I want is 18. It still allows me to upload the app because it targets 28.
It means that you have to set in the build.gradle file
targetSdkVersion 28 //or later
Official doc:
When you upload an APK, it needs to meet Google Play’s target API level requirements. Starting August 1, 2019, Google Play requires that new apps target at least Android 9.0 (API level 28), and that app updates target Android 9.0 from November 1, 2019. Until these dates, new apps and app updates must target at least Android 8.0 (API level 26).
Keep in mind that:
minSdkVersion <= targetSdkVersion <= compileSdkVersion
If you want to have more details about minSdk, targetSdk and compileSdk I suggest you reading this blog.

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.

android:maxSDKVersion - couldn't upload apk to alpha

I've faced the problem uploading app to Play Store. The old "19" version was available for API versions 10 and above. New "20" version specified maxSDKVersion=22 (not higher Android 5.1).
An error message, when trying to upload "20", says:
"it is forbidden that a device upgrading from API levels in the range
10-22 to API levels in the range of 23+ should downgrade from version
20 to version 19, which could happen if...".
This situation clearly specified in documentation:
...future versions of Android (beyond Android 2.0.1) will no longer
check or enforce the maxSdkVersion attribute during installation or
re-validation. Google play will continue to use the attribute as a
filter, however, presenting users with applications available for
download.
Our application not working properly on Android 6, so we should somehow to prevent installs on those devices.
So, there is an answer from Google support:
...
The error message is stating that if a user updates the Android
version on their device, the configuration of your APKs would cause
them to become ineligible for the version they currently have.
To resolve this issue, always make sure the APK that supports the
higher API level always has a higher version code. For example, if an
APK with API levels 14 - 17 was version 3 then an APK with API level
18 would have to have version 4.
In other cases, you can simply remove the max SDK declaration from
your app’s manifest.
...
And there is no way to add maxSDKVersion limitation in existing app.

Categories

Resources