- Présentation
- Comment le faire ?
- Pour générer une application pour Android
- Copier l'application générée sur un périphérique Android
- Mise en place d'un écran de lancement (Splash Screen)
- Présentation
- Mise en place
- Fonctionnement
- Intégration automatique des classes Java
- Options de génération
- Configuration pour la génération Android
Génération d'une application pour Android
La génération d'une application WINDEV Mobile pour Android rassemble tous les éléments du projet (fenêtres, code, etc.) dans une archive afin de permettre le déploiement de l'application sur un périphérique Android (physique ou émulateur) et sa redistribution. Pour générer une application pour Android - Cliquez sur parmi les boutons d'accès rapide. L'assistant de génération de l'application Android s'ouvre.
- Sélectionnez le mode de génération voulu. Ce choix est important car, selon le mode choisi, le format de génération n'est pas le même.
- "Générer pour un déploiement libre (store privé, flotte d'entreprise, etc.)" : Ce mode de génération génère une application au format Android Package (APK).
Remarque : Si vous utilisez ce format pour déployer sur Google Play Store, un message d'avertissement sera affiché lors du déploiement indiquant qu'une optimisation de l'application peut être effectuée. - "Générer pour le Google Play Store" : Ce mode de génération génère une application au format Android App Bundle (AAB), optimisée pour le store.
- La création de l'exécutable Android nécessite le SDK Android et l'outil Gradle. Vous pouvez :
- Télécharger et installer automatiquement ces outils. Dans ce cas, WINDEV Mobile télécharge et installe tous les outils nécessaires avec les options voulues. Seule une connexion Internet est nécessaire.
Cette méthode est recommandée. Attention : Le premier téléchargement peut être relativement long. - Utiliser les outils installés automatiquement. Cette option est disponible uniquement si vous avez téléchargé et installé les outils lors d'une précédente génération.
- Utiliser les outils déjà installés sur votre poste. Dans ce cas, il suffit de préciser les chemins d'installation de Gradle et du SDK Android. Pour plus de détails, consultez Installation du SDK Android.
Si vous utilisez un proxy pour la connexion Internet, cliquez sur le bouton "Proxy" pour paramétrer ou vérifier la gestion du Proxy. Pour plus de détails, consultez Options générales de WINDEV, WEBDEV, WINDEV Mobile. - Passez à l'étape suivante.
- Indiquez le nom de l'application et le package.
- Le nom de l'application sera le nom qui sera affiché sous l'icône de l'application.
Pour les applications multilingues, il est possible de saisir ce nom dans plusieurs langues. A l'installation, le nom de l'application sera choisi en fonction des paramètres de langue spécifiés pour l'appareil. Si le nom de l'application n'est pas disponible dans la langue de l'appareil, le nom utilisé sera le nom défini pour la langue par défaut du projet. - Le package permet d'identifier l'application. Par convention, il est composé du nom de la société (ou de son nom de domaine Internet construit à l'envers) suivi du nom de l'application. Le nom de l'application utilisé correspond au nom dans la langue par défaut du projet.
- Choisissez si nécessaire une icône pour l'application (image au format PNG). Cette icône permet de rendre l'application plus visible dans le menu des applications. Si vous ne sélectionnez pas d'icône, l'application aura l'icône par défaut.
Un aperçu de l'icône est affiché. Le bouton fléché permet de sélectionner des icônes différentes selon la densité de l'écran (Ecran à faible densité, moyenne densité, haute densité et très haute densité). Remarque : Il est également possible d'utiliser la gestion automatique des DPI. Pour plus de détails, consultez Android/iOS : Fournir une image par DPI. - Indiquez l'adresse email à utiliser par défaut pour envoyer le rapport d'erreur lors d'une erreur fatale.
Lorsque l'application rencontre une erreur fatale, une fenêtre spécifique est affichée : L'utilisateur peut : - Cliquer sur le lien "Rapport d'erreur" pour voir l'erreur affichée.
- Cocher la case "Envoyer le rapport d'erreur par mail". Dans ce cas :
- si l'adresse email a été spécifiée, la case à cocher sera cochée par défaut, et l'utilisateur aura dans sa messagerie le rapport d'erreur avec les paramètres "Expéditeur" et "Destinataire" renseignés.
- si l'adresse email n'a pas été spécifiée, l'utilisateur aura dans sa messagerie le rapport d'erreur et il devra renseigner l'adresse du destinataire.
Remarque : Pour connaître les problèmes rencontrés par l'utilisateur final, il est également possible d'utiliser les log ADB. Pour plus de détails, consultez Gestion des logs ADB.
- Passez à l'étape suivante.
- Indiquez si l'application doit afficher ou non un écran de lancement (également appelé "splash screen") au démarrage. L'écran de lancement permet de faire patienter l'utilisateur pendant l'exécution de l'événement "Initialisation" associé au projet. Pour plus de détails, consultez Caractéristiques du de l'écran de lancement (splash screen).
- Saisissez les informations générales sur l'application : le nom de la société, le copyright et la description de l'application.
- Indiquez si l'application doit être lancée automatiquement au démarrage du système du périphérique.
Remarque : La fonction ExeInfo permet de connaître le mode de lancement de l'application Android. Attention : A partir de Android 10, le comportement des applications est modifié. Pour plus de détails, consultez Android 10 : Comportement des applications en arrière-plan. - Indiquez si le redimensionnement des fenêtres maximisées de l'application est autorisé (multi-Window). Cette option est prise en compte uniquement à partir de Android 7. Si cette option est activée, les fenêtres pourront être affichées en mode 1/3, 1/2 ou 2/3.
- Passez à l'étape suivante.
- Indiquez le numéro de version de l'application générée. Deux formats de numéro de version sont disponibles :
- Format standard. Ce format est le format standard géré par Windows. Ce format correspond à un ensemble de 4 nombres séparés par des points.
- Le premier groupe de 4 chiffres correspond au nombre de changements majeurs effectués dans l'application.
- Le second groupe de 4 chiffres correspond au nombre de changements mineurs effectués dans l'application.
- Le troisième groupe de 4 chiffres correspond au numéro de génération.
Il est conseillé d'incrémenter automatiquement ce numéro à chaque génération. Cette incrémentation est réalisée automatiquement si l'option "Incrémentation automatique de la version à chaque génération" est cochée. - Le dernier groupe de 4 chiffres correspond au nombre de révisions (branches dans le GDS par exemple).
- Format pour compatibilité. Ce format était utilisé jusqu'à la version 12 par défaut pour les applications WINDEV.
Remarque : Tous les caractères (chiffre et lettre) sont autorisés. Par exemple : "1.01A". Il est recommandé de :- utiliser un numéro de version différent à chaque création du programme exécutable. En effet, lors de l'installation d'une mise à jour, ce numéro de version permet de vérifier si la mise à jour est obligatoire ou non.
- incrémenter automatiquement le ou les derniers caractères (chiffre ou lettre) du numéro de version à chaque création du programme exécutable (cochez l'option "Incrémentation automatique de la version à chaque génération").
Par exemple : - le numéro de version "1.01A" deviendra "1.01B". - le numéro de version "A15Z" deviendra "A16A".
- Passez à l'étape suivante.
- La signature de l'application est obligatoire pour une installation sur un périphérique Android. Elle peut se faire de trois manières différentes :
- Utilisation d'un couple de clés publique/privée acheté à une autorité de confiance : cette solution est à privilégier si l'application doit être distribuée sous forme commerciale. Elle garantit que l'auteur de l'application peut être identifié.
- Utilisation d'un couple de clés publique/privée auto signé : cette solution peut être utilisée si l'application est distribuée en interne dans une société par exemple. Elle évite de passer par l'autorité de confiance (dont les services sont généralement payants).
- Utilisation d'une signature générique : cette solution peut être utilisée lors de la mise au point de l'application. Une application signée avec une clé générique ne peut pas être publiée. Son utilisation doit se limiter aux tests en mode "Go" sur un même poste de développement.
Un des effets de l'utilisation d'une clé générique lors du déploiement : si vous changez de poste de développement, cette clé générique ne sera plus reconnue par Google Play Store lors du déploiement d'une mise à jour de l'application.
- Passez à l'étape suivante.
- Si vous avez choisi de générer l'application pour une flotte d'appareils, l'assistant propose de choisir le type d'appareils concernés. Il est possible de limiter la taille de l'application en sélectionnant un architecture processeur spécifique.
Note : Si vous possédez un appareil branché au PC, utilisez le bouton "Détecter le matériel automatiquement". Ainsi, lors des prochaines générations, votre type d'appareil sera automatiquement sélectionné. - Indiquez si des fichiers doivent être intégrés à l'application Android. Les fichiers sélectionnés sont surlignés en bleu. Il est possible d'intégrer :
- des ressources spécifiques : images, ...
- des fichiers de données HFSQL utilisés par l'application, ...
Par défaut, les fichiers intégrés dans l'archive sont en lecture (option "Lecture" cochée). Ils pourront : - être utilisés directement dans l'application en lecture.
Par exemple, si une image est intégrée à l'application Android en lecture, elle pourra être affectée directement à un champ en indiquant uniquement son nom. Par exemple :
- être extraits de l'archive par programmation (fonction fExtraitRessource). Dans ce cas, le fichier pourra ensuite être modifié.
Il est possible de spécifier le répertoire de destination dans l'APK (c'est-à -dire le répertoire de destination dans l'archive). Par défaut, l'option "Automatique" est sélectionnée : le fichier est automatiquement placé dans le bon répertoire selon son type. Il est possible de choisir un répertoire spécifique. Remarque : Le répertoire "Asset" est également proposé. Si l'option "Ecriture" est cochée : - l'extraction du fichier est réalisée automatiquement au lancement de l'application (avant l'exécution du code d'initialisation du projet).
- il est possible d'indiquer un répertoire d'extraction. Par défaut, les fichiers de données sont extraits dans le répertoire de la base de données (<Répertoire BDD>)
Attention : si les fichiers en "Ecriture" existent déjà sur le mobile lors de l'installation, ils ne seront pas ré-extraits de l'archive.
- Passez à l'étape suivante.
- Indiquez si des librairies doivent être intégrés à l'application Android. Il est possible d'intégrer :
- des librairies Java spécifiques (fichiers *.jar ou *.aar).
- des librairies natives (fichiers *.so).
- la librairie HFSQL.
Cette librairie est nécessaire si votre application utilise des fichiers de données HFSQL. Remarque : les fichiers ".java" présents dans le dossier "Autres" du volet "Explorateur de projet" sont automatiquement ajoutés. Pour plus de détails, consultez Intégration automatique des classes Java. - Passez à l'étape suivante.
- L'assistant propose d'intégrer les dépendances distantes (JCenter par exemple) dans l'application Android.
Il est également possible d'indiquer des repositories additionnels (autres que JCenter et Google). Passez à l'étape suivante. - Sélectionnez les permissions dont l'application a besoin pour fonctionner. Chaque application doit indiquer au système d'exploitation Android quels sont les services auxquels elle a besoin d'accéder pour fonctionner (accès à Internet, accès à l'appareil photo, etc.). WINDEV Mobile ajoute automatiquement les permissions nécessaires en fonction des instructions utilisées dans l'application.
Remarques : - Si vous avez utilisé des procédures écrites en Java natif, il est nécessaire d'indiquer les permissions correspondantes.
- A partir de la version 6 d'Android, la demande d'autorisation est effectuée à la première utilisation de la fonctionnalité (auparavant, toutes les demandes étaient regroupées lors de l'installation).
- Passez à l'étape suivante.
- Si votre application est disponible sur Google Play, il est possible de proposer votre application uniquement pour les appareils gérant les fonctionnalités utilisées par votre application. Par exemple, si votre application utilise le scroll inertiel, elle pourra être proposée uniquement pour les matériels gérant cette fonctionnalité.
Vous pouvez au choix ajouter ou retirer des fonctionnalités spécifiques. - Passez à l'étape suivante.
- Indiquez les paramètres de configuration.
- Si votre application utilise un champ Calendrier, un onglet avec balayage ou une fenêtre interne avec balayage, il est nécessaire d'installer l'extension "Android Support Library V4". Si cette extension n'est pas installée dans le SDK Android, l'application Android ne peut pas être générée. La procédure d'installation de cette extension est disponible à l'adresse suivante :
http://developer.android.com/tools/extras/support-library.html#Downloading - Si votre application utilise un champ Carte, renseignez les paramètres spécifiques à ce type de champ. Pour plus de détails, consultez Conditions d'utilisation du champ Carte.
- Si votre application utilise un champ Publicité, renseignez les paramètres spécifiques à ce type de champ. Pour plus de détails, consultez Conditions d'utilisation du champ Publicité.
- Si votre application utilise les notifications Push, vous pouvez :
- utiliser la plateforme Google Firebase (conseillé) : vous devez indiquer le fichier de configuration téléchargé depuis le site de configuration Firebase. Pour plus de détails, consultez Notifications Push : Configuration Android (Firebase).
- utiliser la plateforme Google Cloud Messaging : vous devez indiquer le numéro de projet Google API. Pour plus de détails, consultez Notification Push : Configuration Android (Google Cloud Messaging).
Attention : la plateforme GCM est conservée par compatibilité avec les projets existants. Cette plateforme n'est plus supportée par Google pour les nouveaux projets.
- Si votre application utilise les achats In-App, indiquez la clé de l'application. Pour plus de détails, consultez Configuration Android nécessaire pour les achats In-App.
- Si votre application utilise l'identification Facebook :
- Indiquez l'App ID fourni lors de la déclaration de l'application dans Facebook ("Identifiant de l'application").
- L'assistant de génération de l'application fournit les identifiants nécessaires à l'enregistrement de l'application Android sur Facebook. Pour plus de détails, consultez Utiliser l'identification Facebook.
- Si votre application utilise le mode kiosque complet (mode "Device Owner"), l'assistant de génération de l'application propose deux options :
- Déploiement (obligatoire pour le Google Play Store) : Après le déploiement de l'application, une ligne de commande adb doit être exécutée sur le périphérique mobile. Cette opération est irréversible.
- Uniquement pour test (autorise la désinstallation par ligne de commande) : Cet option permet de déployer l'application en mode "Device Owner" pour test. Il sera possible d'activer et de désactiver le mode "Device owner" grâce à une ligne de commande adb. Pour pouvoir utiliser cette option, l'application doit utiliser une signature générique.
Pour plus de détails sur le mode kiosque, consultez Application en mode kiosque.
- L'application est compilée et générée en tâche de fond. Vous pouvez utiliser l'éditeur pendant la génération de l'application.
- A la fin de la génération, l'application peut être automatiquement copiée et lancée sur le périphérique Android si celui-ci est connecté au poste de développement ou sur l'émulateur. Pour plus de détails :
Copier l'application générée sur un périphérique Android La copie de l'application générée sur un périphérique Android peut être réalisée : - directement à la suite de la génération de l'application Android.
- en déroulant l'icône de génération Android () parmi les boutons d'accès rapide et en sélectionnant l'option "Déployer la dernière application générée sur l'appareil mobile".
Dans la fenêtre de copie sur un périphérique : 1. Sélectionnez le périphérique sur lequel l'application doit être copiée. - S'il s'agit d'un émulateur et que celui-ci n'est pas lancé, WINDEV Mobile démarrera automatiquement l'émulateur à la validation de la fenêtre.
- S'il s'agit d'un périphérique physique, celui-ci doit être connecté par le port USB et l'option "Débogage USB" doit être activée sur le périphérique. Il est également possible d'utiliser un chromebook : le chromebook via adb à condition que le chomebook soit passé en mode développeur.
Pour plus de détails, consultez Préparation du téléphone Android.
Remarques : - Le lancement d'un émulateur peut prendre plusieurs minutes. Il est conseillé de garder l'émulateur lancé.
- Cette fenêtre permet également de créer si nécessaire un nouvel émulateur ou d'en supprimer un.
- Il est possible de spécifier les paramètres de la ligne de commande pour le lancement de l'émulateur.
2. A la fin de la copie, l'application sera lancée automatiquement. Il sera ainsi possible de la tester. Mise en place d'un écran de lancement (Splash Screen) Présentation Lorsqu'une application Android se lance, le code d'initialisation du projet est exécuté avant l'ouverture de la première fenêtre. Le temps d'exécution de ce code peut être relativement long et peut donner l'impression à l'utilisateur que l'application est lente ou qu'elle rencontre un problème. Pour contourner ce problème, il est conseillé d'utiliser un écran de lancement (splash screen), affiché durant l'exécution du code d'initialisation du projet. Mise en place Pour utiliser un écran de lancement, sélectionnez l'option "Ecran de lancement" dans l'assistant et cliquez sur le bouton "Options" pour paramétrer les informations affichées : - Nom de l'application : Par défaut, #APPNAME# est utilisé et correspond au nom de l'application spécifié au début de l'assistant de génération. Ce nom peut être modifié.
- Version : Correspond à la version de l'application. Par défaut, #VERSION# permet d'utiliser le numéro de version spécifié dans l'assistant de génération. Ce numéro peut être modifié.
- Message de chargement : Ce message sera affiché sur le splash screen. La fonction TitreSuivant utilisée dans le code d'initialisation du projet permet de modifier dynamiquement ce message.
- Logo de l'application : Ce logo sera affiché sous le nom de l'application.
- Une animation peut être affichée pendant le chargement de l'application.
- Image de fond : L'image de fond peut être utilisée en mode portrait et en mode paysage. Si cette image n'est pas spécifiée, une image par défaut est utilisée. Si une image de lancement est spécifiée, il est possible d'indiquer une image spécifique suivant la résolution de l'appareil utilisé.
Remarque : Il est également possible d'utiliser la gestion automatique des DPI. Pour plus de détails, consultez Android/iOS : Fournir une image par DPI.
Il est également possible d'indiquer la couleur à utiliser pour les différents libellés ainsi que la couleur de fond de l'écran de lancement. Fonctionnement Le code de l'événement "Initialisation" associé au projet s'exécute dans un thread pendant l'affichage de l'écran de lancement. Il est conseillé d'effectuer les traitements longs dans cet événement (par exemple : test de connexion, connexion, extraction de ressources, ...). Intégration automatique des classes Java Lors de la génération de l'application Android, les fichiers sources Java (fichiers ".java") présents dans le dossier "Autres" du volet "Explorateur de projet" sont automatiquement pris en compte. Les conditions suivantes doivent être respectées : - Les fichiers Java doivent être encodés en UTF-8.
- Si la classe Java correspondante appartient à un package, la déclaration de ce package doit être la première ligne du fichier. Si le package n'est pas spécifié, le fichier sera mis dans <Package_NomAppli>.wdgen avec les autres fichiers ".java" générés.
Configuration pour la génération Android Les paramètres de configuration sont les suivants : SDK Android : La génération utilise le SDK Android. Il peut être nécessaire d'indiquer la version minimale nécessaire pour exécuter l'application. WINDEV Mobile SaaS peut générer des applications compatibles avec les versions 6.0 et supérieures d'Android.Remarque : Si votre application utilise des fonctionnalités non gérées par la version minimale sélectionnée, une icône spécifique apparaît à droite de la version minimale. Un message d'information permet de voir le détail des fonctionnalités qui ne seront pas gérées si cette version minimale est conservée. Emplacement de l'installation : Les options possibles sont les suivantes : - Mémoire interne : L'application sera installée dans la mémoire interne de l'appareil et ne pourra pas être installée dans la mémoire externe (SD card par exemple). Si la mémoire interne de l'appareil est pleine, l'application ne sera pas installée.
- Mémoire interne / déplaçable vers la SD card : L'application sera installée dans la mémoire interne de l'appareil mais pourra être déplacée par l'utilisateur dans la mémoire externe depuis l'application de gestion des applications (accessible depuis le menu des paramètres de l'appareil). Si la mémoire interne de l'appareil est pleine au moment de l'installation, l'application sera installée dans la mémoire externe.
- SD Card / déplaçable vers la mémoire interne : L'application sera installée dans la mémoire externe de l'appareil et pourra être déplacée par l'utilisateur dans la mémoire interne depuis l'application de gestion des applications (accessible depuis le menu des paramètres de l'appareil). Si la mémoire externe de l'appareil est pleine ou inaccessible au moment de l'installation, l'application sera installée dans la mémoire interne.
Conséquences de l'installation d'une application dans la mémoire externe : - Seul le fichier APK de l'application est installé dans la mémoire externe. Les données de l'application (bases de données, fichiers externes, etc.) continuent à être stockées dans la mémoire interne, au même emplacement que si l'application avait été installée dans la mémoire interne (/data/data/<nom du package>/<nom de l'application>).
- Le fichier APK installé sur la mémoire externe est crypté avec une clé qui lui permet de fonctionner uniquement avec l'appareil qui l'a installé. Ainsi, une application installée sur la SD Card ne fonctionne que pour un seul appareil.
- L'installation d'une application sur la mémoire externe n'a pas d'impact sur les performances de l'application.
- Si l'utilisateur connecte son appareil au PC en mode "stockage de masse" (ou "lecteur de disque"), la SD Card est automatiquement démontée de l'appareil et n'est plus accessible depuis celui-ci. Toutes les applications installées sur la SD Card et en cours de fonctionnement sont alors tuées. Tant que la SD Card sera démontée, il ne sera pas possible de lancer les applications installées sur la SD Card.
Configuration avancéeLes options de la configuration avancée sont les suivantes : - La personnalisation des commandes
- Commande du compilateur Java
- Commande de signature
Pour plus de détails sur la personnalisation des commandes de compilation, reportez-vous à la documentation du SDK Android.
- SDK Android : Version utilisée pour compiler l'application. Par défaut, la version la plus récente installée sur le poste est utilisée.
- Empreinte SHA1 du certificat utilisé pour signer l'application : Pour modifier cette empreinte, il suffit de modifier le certificat utilisé.
- La personnalisation du manifeste.
Le manifeste généré pour l'application Android peut être édité. Il est possible d'ajouter, de modifier, de supprimer des noeuds ou des attributs. Attention : La modification du manifeste peut provoquer des erreurs de compilation ou des dysfonctionnements à l'exécution sur le périphérique. - Options de génération :
- Ne pas intégrer la librairie Android Support : Cette option est une option avancée, réservée à des cas très particuliers.
- Activer la génération multidex : Cette option permet de compiler des gros projets atteignant la limite des 65000 méthodes.
- Ignorer les erreurs HTTPS : Cette option est cochée par défaut et elle est disponible uniquement pour les applications créées avec une version inférieure à WINDEV Mobile 21 et utilisant les fonctions HTTP ou des Webservices. Attention : Si vous décochez cette option, elle ne sera plus réaffichée. Pour conserver le fonctionnement de l'application, il sera alors nécessaire d'utiliser l'instruction "HTTTP.IgnoreErreur = 0" dans le code. afin d'ignorer les erreurs.
- Options de déploiement :
- Obfusquer et réduire la taille du code généré : Cette option permet :
- d'optimiser la taille du code généré pour les applications Android (utilisable à partir d'un SDK Android 4.0). Il est nécessaire d'installer une version du sdk-tool en version 21 ou supérieure.
- de rendre illisible le code généré pour les applications Android afin de les protéger des opérations de décompilation et de rétro-ingénierie.
- Crypter les chaînes : Cette option permet de crypter toutes les chaînes de caractères lisibles dans le code (utile par exemple si des informations de type identifiant ou mot de passe sont présentes dans le code).
Liste des exemples associés :
|
Android (WINDEV Mobile) : Android Synthèse Vocale
[ + ] Cet exemple didactique montre comment gérer la reconnaissance et la synthèse vocale sous Android. La synthèse vocale se fait en utilisant soit les fonctions WLangage, soit un fichier JAR externe intégré dans le projet WINDEV Mobile.
|
|
|
|