Android Oreo has been out out for a while, and the question that arises among the owners of Android products and in the Android developers community is: “should I update my application?” The answer is not straightforward, as there are both good reasons to do it, and good reasons to wait. In this article, I will help you make the right decision on when and how to update your application to deal with a new version of Android.
The Reasons to Update Your App for Oreo
There are two main reasons to update your application:
to use the new features introduced in the new version or
to introduce fixes in order to make your app run correctly on Oreo.
Android users tend to care whether applications use the newer features of the OS. New features are perceived as an attempt to innovate and improve the app. It shows that you care about the user experience. As an example from personal experience, I remember when Android Nougat came out, and I was fascinated with those apps that had already included the App shortcuts. My interpretation of that was that the apps’ creators were really trying to give me the best experience possible.
The other important factor is that we don’t want to lose the market share by making the app work well only on older versions of Android. We don’t want to let users experience inferior quality (e.g. the app slowing down) because of the changes introduced in Oreo. For example, Android Nougat introduced background execution limitations, which can cause our application to crash while running some services or background tasks. It’s very likely that similar issues will arise because of Oreo.
So Should You Do It? And When?
A lot depends on the nature of your application. For some applications, it would not be necessary to update anything, simply because they would not benefit from using the new features in any way. But it’s still important to test your app on the new Android version to make sure it works as it should.
The truth is that it can take a while for Oreo to become available on devices other than Google’s phones (Pixel or Nexus). In other words, you don’t need to panic or hurry, but it might be a good idea to get ready.
Don’t just jump into it, though. Plan out what new features you can add to your app. Be flexible enough with your development schedule to include them. Try to think (even overthink) how you can make them fit in your application to show to the users that you really care about shipping the best app possible.
The migration of your app to Android 8.0 should happen in two phases:
ensure the compatibility with the new version;
update your target version and use Android 8.0 features.
Ensuring the Compatibility with the New Version
The objective is to make sure that the app works as it should on the new Android Oreo. You don’t need to use the new API or change the targetSdkVersion (which informs the system that your app is working well against it), but there are still several steps you need to take:
First, you need a device or an emulator running the new Android 8.0.
Review the system behaviour changes to detect where your app may be affected and install the app in your emulator or device to run tests.
Focus on system behaviour changes. Check the changelog and make sure that the changes in the system are not affecting your app’s performance or functioning.
Make changes in the code to support the behaviour changes or resolve issues.
Finally, publish the new APK and enjoy the first half of a job well done!
Updating Your Target Version and Using Android 8.0 Features
This is the exciting part: enable full support for the new version by updating the targetSdkVersion to 26 and adding new features introduced in Android Oreo. To do this, you need to:
Install Android Studio 3+ (if you haven’t yet) and update the targetSdkVersion and other build configs.
Get a device or emulator running the new Android 8.0.
Review the system behaviour changes to detect where you can use the new features.
Make code or architectural changes (as needed) to support the new features and capabilities.
Test on devices or emulators with the new Android version, and older android versions as well. You want your app to work well for as many users as possible.
Publish the new APK.
Enjoy the full experience of a job well done!
You can find some extra information on how to deal with this process here.
Once you’ve applied the changes, test your future release on older versions of Android to make double sure that it runs correctly. You should make sure your code handles deprecated API methods. I recommend you check the changelog to be sure that your application is not using any deprecated methods. You can also check with lint, a tool for static analysis (it will scan the code, looking for existing or potential problems), to be sure that the new version is fully supported.
As a rule of thumb, always start testing and working on the updates with the Beta versions of the new Android releases, some months before the effective release. It’s important to check changelogs to search for potential new features or improvements for the application, but if it’s already too late, use the four or six months since the version is released until it is adopted.
Don’t be afraid of updating your application to a new SDK. In general, nothing should change dramatically, and old versions are still supported. But take the time to check exactly what changes you should make and to test the app’s new version on the latest Android. Don’t rush, you have time until the market starts using Oreo – or the next Android versions to come.