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.
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 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.
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
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.