Android SDK Versions Tutorial With Kotlin
New SDK versions released with each new version of Android provide great new features. In this tutorial we will learn how to utilize them in our apps. By Kevin D Moore.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
Android SDK Versions Tutorial With Kotlin
20 mins
- Getting Started
- Emulating Different SDK Versions
- Creating a Virtual Device
- Downloading a System Image
- Running the Sample App
- SDK Versions and API Levels
- Backward Compatibility
- Android Support Libraries
- AndroidX Support Libraries
- Using an Android Support Library
- Update Build File
- Updating for Backward Compatibility
- Updating Fragment Classes
- Updating Styles
- Using the CardView Support Library
- Did You Say Material Design?
- Where to Go From Here?
written by Eunice Obugyei and Eric Crawford, who updated it to Kotlin.
Ever since the first release of Android, the range of supported devices has grown to represent a wide array of phones, smart watches, cars, Android Internet of Things and more. Everything necessary to start developing Android apps for those devices falls under one specification called the Android SDK (software development kit). New SDK versions are released with each new version of Android, and that is the focus of this tutorial.
These new SDK versions take advantage of the increased processing power available on the latest devices to provide great new features. Awesome, right? The flip side, of course, is that Android developers face the challenge of making sure an app will work on a range of devices running different versions of the Android SDK.
There are some best practice guidelines and tools to help get the work done without compromising your UX or deadlines.
In this Android SDK Versions tutorial, you’ll learn about:
- Android SDK versions and API Levels
- Android Support Libraries and their importance
- How to use the Android Support Library to make an app backward-compatible
- How to use the CardView Support Library
To put theory into practice, you’ll play with a simple app called Continents. Continents gives short descriptions for all of the continents in the world.
Getting Started
Click on the Download Materials button at the top or bottom of this tutorial to get your hands on the starter project for this tutorial and extract the downloaded .zip file to get the project.
Select Open an existing Android Studio project from the Quick Start menu to open the starter project:
If you are on a windows machine you can also select File ▸ Open. Navigate to and select the starter project folder.
Emulating Different SDK Versions
We want to try running the sample app on different Android versions. But it’s unlikely anyone has an Android device for every single API Level of the SDK. So first, let’s learn how to set up emulators with different SDK versions.
To set up an emulator, locate the AVD (Android Virtual Device) Manager on the Android Studio Toolbar.
Creating a Virtual Device
If the Toolbar is not showing, select View ▸ Toolbar to show it. You can also select select Tools ▸ Android ▸ AVD Manager to open the AVD Manager.
Click the Create a virtual device button. That will open the Select Hardware section of the Virtual Device Configuration window.
Select a device of your choice and click Next. That opens the System Image section, which currently shows recommended system images.
The x86 Images tab will list all the x86 emulator images. The Other Images tab will show both ARM and x86 emulator images.
Downloading a System Image
To download a system image that you do not already have installed, click the Download link by the release name.
Notice that the Android platform currently has twenty five major versions of the SDK. Starting with Android 1.5, major versions of the SDK have been developed under a confectionery-themed code name. Google has managed to choose these code names in an alphabetical order. They haven’t run out of names of sweets yet. :]
Each version (minor or major) of the Android SDK has an integer value that uniquely identifies it. This unique identifier is referred to as the API Level. The higher the API Level, the later the version. For developers, API Level is important because it is what determines the range of devices an app can run on.
Look at an example, the Android 9.0 release. You can see that:
- It is the most recent version of the Android SDK
- Its version number is 9.0
- Its code name is Pie
- It has an API Level of 28
For this tutorial, you will need at least two emulators, one with API Level 16 and another one with API Level 28.
Going back to the System Image screen in Android Studio, click the Download button for each of the SDK versions you will need for this tutorial that you have not already downloaded (Level 16 and Level 28). Then select the system image for Level 28 and click Next.
On the next screen, click Finish.
Repeat the same steps to set up an emulator with API level 16.
Running the Sample App
Try running the sample app on the emulator running API Level 28:
It all looks great, right? But if you were to try and run the app on a device with API Level lower than 28 it wouldn’t run. This is because the app only runs on devices that run Android API Level 28 and upwards, which isn’t great for older devices. Later, you’ll learn how to extend the app’s support from Android API Level 28 to as low as Android API Level 16.
SDK Versions and API Levels
As mentioned earlier, the API Level is a unique integer that identifies a specific version of the Android SDK. Take a look at how to specify API Levels in Android Studio to compile and release an app.
Open build.gradle for the app module:
Here, you can see three important attributes:
- minSdkVersion is the minimum API Level with which the app is compatible. The Android system will prevent a user from installing the app if the system’s API Level is lower than the value specified in this attribute. Android requires the minSdkVersion attribute to always be set.
- targetSdkVersion is the API Level that the app targets. This attribute informs the system that you have tested against the target version. The targetSdkVersion defaults to the minSdkVersion if not specified.
- compileSdkVersion specifies the API Level to compile the app against.
These attributes can be adjusted in the app modules build.gradle file.