Setting Android SDK versions

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

Minimum SDK

To ensure your app can be installed on all Clover devices, set the minimum SDK (minSdkVersion) to 17. However, if you want your app to be available on a select set of Clover devices, set the minSdkVersion of your app according to the following table.

Clover device

Minimum SDK version

Station, Mobile, Mini (1st gen), Flex, Station 2018, Mini (2nd gen), Flex (2nd gen), Station Pro

17

Mobile, Mini (1st gen), Flex, Station 2018, Mini (2nd gen), Flex (2nd gen), Station Pro

19

Flex, Station 2018, Mini (2nd gen), Flex (2nd gen), Station Pro

21

Station 2018, Mini (2nd gen), Flex (2nd gen), Station Pro

25

Mini (2nd gen), Flex (2nd gen), Station Pro

26

Compile SDK

Use the lowest compile SDK version (compileSdkVersion) that provides the functionality you need, use the Android support libraries, and pay attention to the warnings in your IDE.

There is the version of the SDK you compile against, and the version of SDK implemented by the Android runtime. The runtime is provided by the Clover device (or emulator) and is fixed.

Clover device

Android runtime version

Station

17

Mobile/Mini (1st gen)

19

Flex

21

Station 2018

25

Mini (2nd gen)

27

Flex (2nd gen)

27

Station Pro

27

Target SDK

Set your target SDK (targetSdkVersion) to the highest SDK level on which you have tested your app.

🚧

IMPORTANT

Clover supports apps with target SDK level 25 or lower. With SDK level 26, Android introduced the account access and discoverability policy, which explicitly requests access to Clover merchant accounts and disrupts the expected merchant flow.

To have your apps functioning correctly and be approved for publication on the Clover App Market, set the targetSdkVersion value to 25 or lower.

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

Clover device

Target SDK version

Station

17

Mobile/Mini (1st gen)

19

Flex

21

Station 2018

25

Mini (2nd gen)

25

Flex (2nd gen)

25

Station Pro

25

If you develop on an emulator, set the target SDK version to the highest API level virtual machine on which you have tested. For a more detailed description of target SDKs, refer to the Android Developer documentation.

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.

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>

Did this page help you?