Setting Android SDK versions

In the Clover device ecosystem, your Android app’s SDK version definition needs to be evaluated and tested to ensure device compatibility.

Minimum SDK

The minimum SDK (minSdkVersion) must be set to 17 to ensure your app can be installed on all Clover devices.

Compile SDK

Use the lowest compilation SDK (compileSdkVersion) that provides the functionality you need for your app and rely on Android support libraries to address any outstanding API issues. When you compile, this ensures compatibility with the fixed runtime SDK for a given Clover device.

Clover device Android runtime version
Station 17
Mobile/Mini (1st gen) 19
Flex 21
Station 2018 25
Mini (2nd gen) 27

Target SDK

The target SDK (targetSdkVersion) value should be set to the highest SDK level on which you have tested your app.

IMPORTANT

Clover only supports apps targeted to API level 25 and below. Any app targeting level 26 or greater will not be approved for publication on the Clover App Market.

The following table lists the SDK version to test against for the different Clover devices.

DevKit model Target SDK version
Station 17
Mobile/Mini (1st gen) 19
Flex 21
Station 2018 25
Mini (2nd gen) 25

If you develop on an emulator, set the target SDK to the highest API level virtual machine on which you have tested. For a more detailed description of target SDK, refer to the [Android Developer documentation](https://developer.android.com/guide/topics/manifest/uses-sdk-element#target).

Target SDK informs Android which compatibility layers it must enable to ensure your app runs correctly. If you set your target SDK to a value greater than what you’ve tested, Android may disable a compatibility layer on which your app depends.

For each SDK level you want to support, review the Android behavior changes, code with the changes in mind, and test your app against them.

Example build files

Suppose you are developing an app for Station 2018. That device’s runtime is 25, so you must test your code against that version and then also compile your application against it.

If you are using Gradle, your app’s build.gradle file would need to include the following:

android {
  compileSdkVersion 25 //runtime of Station 2018
  ...
  defaultConfig {
    minSdkVersion 17 //required minimum SDK for Clover apps
    targetSdkVersion 25 //API level used for testing
    ...
  }
  ...
}

The resulting manifest file includes the following representation of this data:

<manifest>
  <uses-sdk android:minSdkVersion="17"
            android:targetSdkVersion="25" />
</manifest>