|
Delphi XE5 Android - John COLIBRI. |
- résumé : Delphi XE5 permet le développement d'applications pour Android. Le code généré peut fonctionner sur les mobiles Android, ainsi que sur l'émulateur Windows. Architecture de développement et de l'exécution,
exemple simple, nouveautés.
- mots clé : Android, Arm v7 NEON, pré requis, déploiement
- logiciel utilisé : Windows XP personnel, Delphi XE5
- matériel utilisé : Pentium 2.800 Mhz, 512 Meg de mémoire, 250 Giga disque dur
- champ d'application : Delphi XE5 sur Windows
- niveau : développeur Delphi
- plan :
1 - Lancement Delphi Xe5 Delphi XE5 a été lancé le 12 Septembre 2013, et offre essentiellement le développement d'applications pour les téléphones est tablettes Android
2 - Delphi et Android 2.1 - Architecture L'organisation générale est la suivante: où
- une nouvelle version du compilateur Delphi, DccAArm.exe permet de générer du code ARM pour l'émulateur android et pour les mobiles
- l'installateur Delphi a ajouté les librairies nécessaires au développement Android:
- le SDK Android (Software Development Kit) comprenant surtout
- ADB.EXE (Android Debug Bridge), utilisé pour déployer et communiquer avec le matériel ou le simulateur
- AVD.EXE (Android Virtual Device: l'émulateur Android)
- le NDK Android (Native Development Kit) qui est utilisé pour gérer
le mobile par le code Delphi ARM. JNI (Java Native Interface) permet à des applications Java de communiquer avec des applications ARM et réciproquement.
Le programme Delphi compilé est envoyé
- soit vers l'émulateur Android du PC
- soit vers un mobile Android, via un cable USB
Sur Android, le fonctionnement est le suivant: et:
- l'Operating System est Linux
- les applications accessible sont encapsulées dans un fichier .APK, qui sont lancées et ensuite interprétés par la machine virtuelle Java appelée DALVIK
- les applications générées par Delphi
- sont encapsulées dans un .APK
- comportent une fenêtre de lancement (appelée "Activity" dans le monde Android) minimale
- cette fenêtre donne la main au code ARM constitué
- des librairies en code natif ARM (FireMonkey et toutes les autres librairies nécessaires, comme Indy, la gestion des bases de données etc)
- notre code applicatif en code ARM
Notez que dans le monde Android, il n'y a pas la même technique de .DLL qu'en Windows, et donc chaque application contient, par exemple, la librairie FireMonkey.
2.2 - Pré Requis Côté PC
- Windows 32. Nous avons utilisé notre XP de base, mais naturellement les versions Vista, Windows 7 et Windows 8 sont utilisables
- Delphi fonctionne aussi sur les machines virtuelles (Mac en particulier),
mais l'émulateur Android du PC virtuel n'est pas officiellement supporté
Côté Android - un mobile muni d'un GPU (accélérateur graphique)
- version ArmV7 exigée, avec NEON (NEON: des instructions ARM additionnelles)
- operating System ANDROID
- GingerBread: Android 2.3.3+ (MR1 ou plus récent), soit API 10 (fin 2010)
- Ice Cream Sandwich: Android 4.0.3+ (MR1 ou plus récent), soit API 15
- Jelly Bean: Android 4.1+ (MR1, MR2 ou plus récent), soit les API 16, 17 et 18
Ces contraintes correspondent à plus de 95 % des mobiles Android
2.3 - Installation
Côté Window et Delphi, l'installateur télécharge et installe - Delphi, naturellement
- les outils Android nécessaires (le SDK, le NDK). Dans notre cas, ils ont été placés dans
C:\Documents and Settings\All Users\Documents\RAD Studio\12.0\PlatformSDKs Si ces outils sont déjà présents sur le PC, nous pouvons les utiliser sans télécharger une autre version, mais il faudra configurer "Tools | Options |
Environment Options | SDK Manager" Côté du mobile - il faut que le mobile puisse communiquer avec le PC. De nombreux utilisateurs Android ont déjà fait le nécessaire. Si ce n'est pas le cas, il faut
- installer sur le PC le pilote USB correspondant au(x) mobile(s) Android à utiliser
- mettre le mobile en mode "USB Debug" ("Settings" etc)
- et bien sûr, relier le mobile et le PC avec un cable USB
2.4 - Une première application Android Voici les étapes pour afficher "Hello Android"
Puis | lancez Delphi Xe5 |
| sélectionnez "File | New | FireMonkey Mobile Application Delphi" |
| un wizard présente plusieurs présentations : |
| sélectionnez "Blank Application" | |
le designer pour les mobiles est affiché, ici avec un dessin d'un iPhone 5 |
| sélectionnez la résolution correspondant à votre mobile dans combo-box en haut à droite du designer Nous avons sélectionné "Samsung Galaxy S4" correspondant à notre téléphone Samsung | | le designer est ajusté |
| posez un tButton et dans OnClick, affichez un message
Procedure TForm2.Button1Click(Sender: TObject);
Begin ShowMessage('hello Android'); End; |
| | sélectionnez la cible de déploiement dans le Project Manager en haut à gauche: cliquez le noeud "Project2 | Target Platform" |
| les cibles potentielles sont affichées: |
| cliquez le noeud "Android | Target" Parmi les cibles possibles:
- "Galaxy Nexus" qui correspond au téléphone Samsung que nous avons connecté au cable USB
- rsxe5_android qui est la cible du modèle simulé par Delphi par défaut
- les divers cibles que nous avions créées pour l'émulateur ("del_gal_nx4" etc)
| | cliquez l'icône du téléphone physique, "Galaxy Nexus" |
| compilez par Shift Ctrl F9 (la flèche verte) | |
Delphi compile, lie (link), déploie l'application sur le téléphone et lance l'exécution dans la foulée. L'écran du téléphone affiche directement une fenêtre avec Button1, le clic sur le bouton affiche le message dans un dialogue
Voici un capture de l'écran d'accueil de mon Samsung: Parmi les applications, "Project2" (2/3 sud est) apparaît avec l'icône Firemonkey par défaut
Voici l'application qui apparaît après le déploiement et exécution par Delphi (ou le lancement depuis l'acran des applications):
et le résultat du clic |
Pour utiliser l'émulateur | nous sélectionnons l'un des téléphones présenté dans "target", par exemple "del_gal_nex4_gpu" et compilons à nouveau |
| si l'émulateur n'avait pas été lancé auparavant, Delphi nous demande s'il doit le lancer, en le lance. Le lancement de l'émulateur prend BEAUCOUP de
temps la première fois (de l'ordre de la minute), et l'exécution d'une action sur l'émulateur sera très lente (un clic, un affichage etc) Quoi qu'il en soit, voici notre émulateur affiché sur toute la hauteur de notre fenêtre Xp:
et voici l'image de notre application après avoir cliqué le bouton: |
2.5 - Nouvelles fonctionnalités pour Android - "Tools | Options | Environment Options | Form Designer | Design Manager" permet de spécifier la cible par défaut:
- "Tools | Options | Environment Options | Sdk Manager" permet de désigner les
chemins des outils Android (si vous n'utilisez pas les outils téléchargés par Delphi)
- chaque projet Android doit inclure les permissions concernant les traitements possibles. Par exemple une application a le droit d'envoyer un message SMS ou d'utiliser le téléphone. Delphi permet par défaut des
traitements standards, mais nous pouvons en ajouter d'autres par "Project | Options | Uses Permissions":
- "Project | Options | Application" permet de définir les icônes, ou l'orientation
- pour les bases de données locales
- utilisation de SqLite et Interbase (IbTogo avec cryptage et IbLite)
- connexion par dbExpress, Firedac, et Ibx (pour Interbase seulement)
- connexions à des serveurs DataSnap distants (Tcp/Ip, Http, Https)
- connexions aux serveurs Cloud Azure et Amazon
- le code Pascal utilise la gestion mémoire ARC (Automatic Reference Counting)
- les contrôles visuels sont
- les contrôles FireMonkey usuels (boutons, listes etc)
- quelques contrôles Java (calendrier, listes)
3 - Autres Nouveautés Delphi XE5 - intégration de Firedac (la version Embarcadero de Any Dac)
- une nouvelle librairie pour les clients service web REST
- quelques refactorisation des classes Firemonkey
- améliorations de IDE Insight
- pour les développeurs Mac
- support depuis l'IDE de MacInCloud (au lieu d'utiliser un Mac physique). MacInCloud est payant
- style iOs7
4 - Commentaires
Comme d'habitude:
- nous vous remercions de nous signaler toute erreur, inexactitude ou
problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections
qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion
d'article, ou mentions d'autres sources sur le même sujet seront de même
les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre
e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en
cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site,
ajoutez un lien dans vos listes de liens ou citez-nous dans vos
blogs ou réponses sur les messageries. C'est très simple: plus nous aurons
de visiteurs et de références Google, plus nous écrirons d'articles.
5 - Quelques Liens
Parmi les liens:
Et quelques articles de notre facture:
- Première Application Delphi Xe3
FireDAC Embarcadéro offre depuis le 28 Février FireDAC, un ensemble de
composants générique d'accès aux données (Multi-Device Data Access
Library). Présentation de l'installation, première application utilisant
tAdConnection et tAdQuery
- Webminar Mobile Studio iOs Preview
: résumé de la présentation - perspectives marketing des mobiles,
démonstration de contrôles natifs, téléchargement et exécution sur Mac et le
simulateur, bases de données (SqLite, Interbase, DataSnap), lecteur de flux
RSS utilisant Indy et Rest pour DelphiFeeds
- Roadmap Mobile Studio Delphi Xe3
: la feuille de route Mobile Studio a été publiée : compilateur ARM natif
pour iOs et Android - calendrier prévisionnel (21 Sept 2012)
- Delphi Xe4 iOs : le lancement de Delphi Xe4, la
version de Delphi permettant le développement d'applications pour iOs
(iPhone, iPad) depuis l'IDE Delphi : les compilateurs, le matériel
nécessaire, les nouveautés du langage (ARC, Strings), les nouveaux
composants FireMonkey, l'IDE, les bases de données. Liens vers les démos et
les tutoriels. Android à l'horizon
- Les versions Delphi principales nouveautés et
identificateurs des versions Delphi
- FireMonkey :
- les animations FireMonkey : choix de la
propriété à animer, vitesse, type d'interpolation entre les valeurs début
et fin, répétition - Animation 3D. Que choisir: Vcl ou FireMonkey ?
- Explorateur de Style FireMonkey :
création d'objets tFmxObjects à partir de leur nom de classe, création
de leur style défaut, affichage de la hiérarchie de style dans un
tTreeView, présentation de chaque élément de style dans un Inspecteur
d'Object qui peut être utilisé pour modifier les valeurs des propriétés.
- Inspecteur d'Objet simple avec
FireMonkey : création d'un Inspecteur d'Objet simple, présentant
les composants présents sur la Forme et affichant les noms et valeurs de
ses propriété, avec modifications possibles des propriétés à l'exécution.
Utilisation de la RTTI, version pré et post Delphi 2010
- Architecture FireMonkey : la
hiérarchie tComponent <- tFmxObject <- Fmx.tControl <-
tStyledControl. Diagramme de Classe UML avec les principaux composants
et explication de l'emplacements des fonctionalités de base (le Canvas,
la Souris, le Clavier).
- nos formations incluent aussi la présentation FireMonkey
6 - L'auteur
John COLIBRI est passionné par le développement
Delphi et les applications de Bases de Données. Il a écrit de nombreux livres
et articles, et partage son temps entre le développement de projets
(nouveaux projets, maintenance, audit, migration BDE, migration Xe_n,
refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de
formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur
site client.
|
|