Google Play Services ne sera plus compatible avec Gingerbread

Google Play Services ne sera plus compatible avec Gingerbread

Google a annoncé que les futurs versions des Google Play Services et Firebase for Android ne seront plus compatibles avec Android Gingerbread. Des précisions sur les conséquences et comment gérer cela.

Google Play Services

La version courante des Google Play Services (10.0.0) est la dernière version qui sera compatible avec la version 2.3 d'Android ainsi que le client Firebase. La prochaine version 10.2.0 sera compatible à partir de l'API 14 au lieu de 9.

Les versions impactées

Les nouvelles versions qui ne seront plus compatibles sont Gingerbread et Honeycomb. L'objectif pour Google est de pouvoir utiliser plus de fonctionnalités de la plateforme Android qui ne sont pas possibles à rendre rétro-compatible et d'obtenir de meilleur performance.

Impact sur les applications

Il n'y a aucun impact pour les applications qui ont été développées pour utiliser l'API de niveau 14 ou plus. Une erreur interviendra si la version 10.2.0 des Google Play Services est utilisé dans une application utilisant un API de niveau inférieur à 14 :

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 14 declared in library [com.google.android.gms:play-services:10.2.0]
        Suggestion: use tools:overrideLibrary="com.google.android.gms:play_services" to force usage

 

Deux solutions sont possibles

  1. Modifier son application pour être compatible avec l'API 14 (ce qui touche 1,4% d'appareils Android)
  2. Construire de multiple APK, selon le niveau d'API

Il est possible de générer de multiple APK à l'aide de Gradle. Exemple de configuration dans le build.gradle :

productFlavors {
    legacy {
        minSdkVersion 9
        versionCode 901  // Min API level 9, v01
    }
    current {
        minSdkVersion 14
        versionCode 1401  // Min API level 14, v01
    }
}

dependencies {
    legacyCompile 'com.google.android.gms:play-services:10.0.0'
    currentCompile 'com.google.android.gms:play-services:10.2.0'
}

Dans ce cas deux versions seront générées, la version rétro-compatible avec la version 10.0.0 des Google Play Services et la version normal avec la dernière version des Google Play Services.

Il reste à publier les 2 APK sur le Play Store et la bonne version sera installée sur les différents appareils Android.