[JAVA] [For Android app developers] I checked Important reminder about Android targetSdkVersion requirement

Email sent from Google

I made some Android apps around 2011-2013, and left the January 2015 update at the end. The other day (August 2, 2018), I received an email like this from the Google Play Team.

Hello Google Play Developer,

This is a reminderthatstartingNovember1,2018,updatestoappsandgamesonGooglePlaywillberequiredtotargetAndroidOreo(APIlevel26) or higher. After this date, the Play Console will prevent you from submitting new APKs with a targetSdkVersion less than 26.

Configuring your app to target a recent API level ensures that users benefit from significant security and performance improvements, while still allowing your app to run on older Android versions (down to the minSdkVersion).

Action required

Please ensure that your apps are configured to target at least Android 8.0 (API level 26) by November 1, 2018. For technical advice on how to change your app's target API level to meet these requirements, refer to the migration guide.

Affected apps

The apps included below have one or more APKs—in production or testing tracks—that aren't currently targeting API level 26 or higher. Apps are listed with the maximum version code and corresponding targetSdkVersion. If you have more than 20 apps that could be affected in your account, please check the Play Console for a full list.

foo.bals2  6  4 foo.bar  19  4 foo.bar.atm2  5  9 foo.bar.soudan  7  9

I didn't read it properly because it was in English, but since the package name is also written as ** Affected apps ** by name, I thought that it might affect the apps being released, so I investigated it. It was.

What do the numbers mean?

foo.bar.atm2  5  9

From the left, ** "Package name" **, ** "versionCode value" **, ** "targetSdkVersion value" **. The versionCode is incremented by an integer with each update of the app, and it is different for each app, so it is not so relevant. This email says that the handling of ** "targetSdkVersion" will change from November 1, 2018 **.

What is targetSdkVersion?

I tried to see what happened to the code of my app.

AndroidManifest.xml


    <uses-sdk
        android:minSdkVersion="9"/>

build.gradle


    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 9
    }

I omitted it in AndroidManifest.xml, but it seems that it is complemented by build.gradle without permission (?). According to Official document, if omitted, it will be adjusted to minSdkVersion.

android:targetSdkVersion An integer that specifies the target API level for your app. If not set, the default value is the value specified by minSdkVersion.

** minSdkVersion ** is a parameter that specifies ** "Cannot be installed on Android devices with lower versions!" **. "9" means "Android 2.3". Well, few people are using Android 2.3 or lower these days, so it seems that it can be used on most models.

** targetSdkVersion ** is a bit confusing, but it is a parameter that specifies ** "Keep compatibility even if you are using an Android device with a higher version!" **. Since it is "API level 9" here, I want you to maintain compatibility with "Android 2.3". Recently, I think that many people are using Android 7 (API level 24) and Android 8 (API level 26), but it still says ** "Make it compatible with Android 2.3!" **. ..

Changes from November 1, 2018

** The rule is "You have to set targetSdkVersion to 26 or higher (Android 8 or higher)!" **. Apps that don't follow this will likely be hit on Google Play when trying to publish an update.

The next time you update your app, you will have to change the targetSdkVersion from 9 (Android 2.3) to 26 or higher (Android 8 or higher). ** It seems that various code modifications are necessary because the appearance and usable functions will change **.

Does it affect apps that are already open?

This is what I wanted to know the most. Take a look at Google's official blog in Japanese.

November 2018: Target API level 26 or higher is required for updates to existing apps. ** This change does not affect existing apps that have not been updated. ** Also, developers can still use any minSdkVersion, so they can build apps for older versions of Android.

** I'm not saying "Apps that aren't updated will be unpublished!" **, so if you leave them unupdated, they will continue to be published. This made me feel a little relieved.

at the end

For developers who have neglected to update, this announcement was disappointing. It seems that the Android application development environment has changed drastically from a few years ago, so I would like to consider resuming development in order to catch up with the technology.

Reference URL

-Organize new rules for targetSdkVersion on Google Play -Relationship between Android version and API level -[Android app] When I set the target API level to 26, a FileUriExposedException occurred and crashed -Future improvements in app security and performance on Google Play -Keep the basics! About the version specified in the Android application (compileSdk, buildToolsVersion, ....)

Recommended Posts

[For Android app developers] I checked Important reminder about Android targetSdkVersion requirement
I made an Android app for MiRm service
About Android App Components
10 Things I Hate About Android
I made a matching app (Android app)
[Android] I made a pedometer app.