Lors de la compilation d'une application pour Android, l'APK généré inclus un niveau d'API cible "TargetSdkVersion" du SDK Android. Avec ce niveau d'API cible le système Android détermine les fonctionnalités dont peut disposer l'application, et les règles de sécurité qui doivent lui être appliquées.
Dans le cas d'une application générée par WINDEV Mobile, le niveau d'API cible est déterminé en fonction des spécifications de Google en vigueur, lors de la sortie de la version de WINDEV Mobile utilisée :
- WINDEV Mobile 21 indiquait en son temps un "TargetSdkVersion" 14 (Android 4),
- ensuite WINDEV Mobile 22 ou 23 jusqu'à la version "Update 2" indiquaient un "TargetSdkVersion" 24 (Android 7),
- à partir de la version "Update 3" de WINDEV Mobile 23, le "TargetSdkVersion" passera à 26 (Android 8).
En effet Google impose ce niveau d'API cible pour le déploiement d'applications dans Google Play Store à partir de août 2018. Cela rappelle l'importance de toujours garder un environnement de développement à jour pour le développement mobile !
Pour répondre à cette demande de Google, il faudra donc uniquement recompiler l'application avec la version "Update 3" de WINDEV Mobile 23.
Il faut souligner que chaque évolution du SDK Android apporte son lot d'évolutions et de changements. Notamment en matière de sécurité, il est fréquent d'une API ou qu'un champ natif devienne obsolète et nécessite une réécriture complète. Dans le cas de ce changement précis, il y aura par exemple une baisse de fréquence des notifications reçues par les applications en arrière-plan pour la géolocalisation, au profit de la batterie.
Grâce au Framework Android de WINDEV Mobile, ces changements sont automatiquement pris en compte, du moment qu'ils sont documentés ou prévisibles. Cela permet de ne pas avoir à modifier le source ou l'IHM des applications WINDEV Mobile, pour profiter d'un "TargetSdkVersion" supérieure. La recompilation de l'APK avec un framework WINDEV Mobile à jour suffit !
Le niveau d'API cible "TargetSdkVersion" attribué à une application est visible dans l'assistant de génération de l'APK :
- à l'étape "Configuration" de l'assistant de génération, utiliser "Configuration avancée",
- dans la fenêtre "Configuration avancée", utiliser "Editer le manifeste",
- dérouler le nœud "uses-sdk",
- l'entrée "android:targetSdkVersion" montre le niveau d'API cible. Il est d'ailleurs modifiable. Il est donc possible dans une application WINDEV Mobile générée par une version antérieure à la 23 "Update 3", d'indiquer le niveau d'API cible en 26. Mais dans ce cas l'application n'aura pas un framework adapté aux spécificités de ce niveau d'API. Il s'agit donc d'une solution fortement déconseillée.
Ce niveau d'API cible ne doit pas être confondu avec la version minimale de Android autorisée pour exécuter l'application. Cette version minimale est également fixée dans l'assistant de génération des APK Android. Google demande à ce que les applications aient le niveau d'API cible à 26 de Android 8, obligatoire pour améliorer la sécurité globale. Mais les applications générées avec le niveau d'API à 26 pourront toujours si besoin avoir Android 4 comme version minimale pour l'exécution.
Mise à jour 16/7/2019
Août 2019, le niveau d'API cible doit être relévé de 26 à 28 (Android 9).
Disponible à partir de la version 75N# de WINDEV Mobile, mise à jour complémentaire à la version "Update 3" (240075N) :
https://blogs.pcsoft.fr/fr/mise-jour-windev-webdev-windev-mobile-disponible/281474976710824/read.awp
Mise à jour 20/8/2020
Août 2020, le niveau d'API cible doit être relévé à 29.
Mise à jour 15/4/2022
A partir de la version 27 l'édition du manifeste se fait par l'assistant et par l'édition d'un fichier de paramètre "build.gradle". Le principe est détaillé dans le billet suivant :
Génération d'une application Android, comment fournir des paramètres spécifiques qui ne sont pas proposés dans l'édition du "manifeste" par l'assistant de génération de l'APK/AAB ?
|