Création d'une app Android

De RAD Studio
Aller à : navigation, rechercher

Remonter à Développement d'applications mobiles Android


Remarque : Cette page décrit comment développer des applications multi-périphériques qui ciblent la plate-forme Android. Voir Développement d'applications mobiles Android pour les rubriques qui ne sont pas spécifiques à la phase de développement, telles que la configuration de votre PC et des périphériques Android pour travailler avec RAD Studio.

Pour créer une app multi-périphérique qui supporte Android :

Fichier > Nouveau > Application multi-périphérique - Delphi
Fichier > Nouveau > Application multi-périphérique - C++Builder

Puis sélectionnez un type d'application multi-périphérique dans l'expert Application multi-périphérique.

Restrictions relatives aux composants pour les apps FireMonkey Android

Lors de la conception de votre app Android dans RAD Studio, vous pouvez seulement utiliser les composants qui sont pris en charge sur les périphériques Android. Lorsque Android est la plate-forme cible active de votre projet, les composants non pris en charge sont grisés sur la palette d'outils.

Sélecteur de style

Dans la partie supérieure du Concepteur de fiches multi-périphériques réside le sélecteur de style : StylesFormDes.png

Le menu déroulant du sélecteur de style liste tous les styles que vous pouvez appliquer à la vue maître.

Sélectionnez le style Android à partir du sélecteur de style pour voir toutes les propriétés des composants en fonction de la plate-forme cible.

Sélecteur de vue

Dans la partie supérieure du Concepteur de fiches multi-périphérique réside le sélecteur de vue : ViewsFormDes.png

Le menu déroulant du sélecteur de vue affiche toutes les vues disponibles, qui montrent différentes plates-formes telles que iOS, Android, Windows et OS X.

Utilisez la fiche maître pour la conception générale de votre application. Vous pouvez ensuite ajouter de nouvelles vues à votre projet afin de personnaliser votre application pour un type de périphérique spécifique. Vous pouvez même créer de nouvelles vues personnalisées ; voir Ajout d'une vue personnalisée au sélecteur de vue. Voici les vues prédéfinies du périphérique Android :

  • Téléphone Android 3.5 pouces
  • Téléphone Android 4 pouces
  • Téléphone Android 5 pouces
  • Tablette Android 7 pouces
  • Tablette Android 10 pouces
  • Google Glass
Remarque : Pour de plus amples informations sur la résolution des vues prédéfinies, voir Spécifications d'affichage.
Remarque : Sélectionnez la plate-forme cible Android pour voir tous les composants disponibles pour Android, sinon ils apparaissent grisés.

Ajoutez de nouvelles vues à votre projet afin de personnaliser votre application pour un type de périphérique Android spécifique. Toutes les vues héritent des composants et des propriétés de la fiche maître. Pour plus d'informations, voir Concepteur de fiches.

Remarque : Si vous souhaitez personnaliser certains aspects de votre application pour tous les périphériques Android, vous pouvez le faire en utilisant la fiche maître, à condition de ne pas vouloir les propager au reste des plates-formes. Sinon, utilisez l'éditeur de code, par exemple :
// You will see the changes applied at run-time.
{$IFDEF ANDROID}
    SpeedButton1.StyleLookup := priortoolbutton;
{$ENDIF}

Pour de plus amples informations :

Utilisation des frameworks dans les applications Android

FireMonkey

Le framework FireMonkey convient tout particulièrement à la plate-forme cible Android, et il supporte également d'autres plates-formes cible.

VCL (indisponible pour Android)

La VCL (Visual Component Library) est seulement disponible sur Windows (32 bits et 64 bits).

RTL

Certaines unités de la bibliothèque runtime (RTL) qui fournissent des fonctionnalités de base sont communes à chaque plate-forme cible prise en charge (notamment Android), telles que System.pas ou System.SysUtils.pas.

Un certain nombre d'unités RTL sont spécifiques à Android (voir Android API et bibliothèques Java). Ces unités sont préfixées avec la portée d'unité Androidapi.

Voir aussi RTL C pour Android.

API Android et bibliothèques Java

La RTL contient un certain nombre d'unités qui fournissent des interfaces Delphi et C++ à l'API native d'Android. Ces unités sont préfixées avec la portée Androidapi et sont typiquement situées dans le répertoire source\rtl\android\ de l'installation de RAD Studio. Le framework FireMonkey s'appuie sur certaines de ces unités. Vous pouvez également les utiliser directement si vous le souhaitez.

Vous pouvez également utiliser les parties de l'API Android qui ne sont pas mappées par la RTL, ou utiliser vos propres bibliothèques Java dans votre projet :

Les noms de la bibliothèque Android Core ne peuvent pas être utilisés en tant que noms d'app

Vous ne pouvez pas assigner un nom à votre projet si le nom entre en conflit avec le nom d'un fichier objet partagé de la bibliothèque core, comme <libNAME>.so.

Par exemple, vous ne pouvez pas utiliser les noms suivants comme noms de projet :

  • c (conflit avec libc.so)
  • m (conflit avec libm.so)
  • z (conflit avec libz.so)
  • ssl (conflit avec libssl.so)
  • ui (conflit avec libui.so)
  • gui (conflit avec libgui.so)
  • camera_client (conflit avec camera_client.so)

Et ainsi de suite.

Recommandations d'alignement pour les barres d'outils mobiles et les autres composants FireMonkey

Pour garantir un comportement et une apparence identiques à la barre d'outils de votre app sur les plates-formes iOS et Android, vous devez définir des propriétés d'alignement spécifiques dans l'inspecteur d'objets, comme suit :

  • Définissez la propriété Align pour tous les contrôles qui sont des enfants d'un TToolbar. Par exemple, les valeurs suivantes sont les valeurs de la propriété Align :
    (Left, Right, Center, Contents)
  • Pour maintenir un espace entre les contrôles, ou un espace entre les bordures gauche et droite des barres d'outils, définissez les propriétés suivantes :
    Par exemple, supposons que vous avez une barre d'outils avec un TLabel enfant comme titre, et deux turboboutons alignés à gauche avec un espace entre chaque bouton :
    1. Sur le TToolbar, définissez :
      • Align = Top
    2. Sur le TLabel enfant, définissez :
      • Align = Contents
    3. Placez le TLabel en arrière-plan en utilisant le menu contextuel.
    4. Sur les deux TSpeedButtons enfant, définissez :
      • Align = Left, Right, Center, Contents, VertCenter
        Pour les descriptions de ces propriétés, voir FMX.Types.TAlignLayout.
      • Margins Left = 5
  • Pour formater un contrôle segmenté (TSpeedButtons stylisés avec un nom de groupe partagé) afin qu'il soit centré sur la barre d'outils :
    1. Ajoutez un contrôle TLayout au TToolBar.
    2. Définissez TLayout.Align sur Center.
    3. Ajoutez des boutons au TLayout et définissez les propriétés d'alignement et les marges pour chaque bouton (c'est-à-dire, Align = Left, Margins = Left, Margins = Right, etc.).
  • Pour utiliser TLabel, vous devez définir TLabel.AutoSize = False, ainsi que la propriété Align.
    • Pour centrer le libellé sur une barre d'outils ayant déjà des boutons, vous devez définir TLabel.Align = Contents et sélectionner Mettre en arrière-plan sur le menu contextuel.

Des règles d'alignement similaires se rapportent à d'autres contrôles. Par exemple, supposons que vous avez ajouté un TSwitch à un élément ListBox. Pour que le composant TSwitch soit aligné à droite et centré verticalement, définissez les propriétés suivantes pour TSwitch :

  • Align= Right
  • Margins Right = 5

Utilisation de fontes personnalisées dans les applications Android

Vous pouvez utiliser des fontes personnalisées dans vos apps Android. Vous pouvez par exemple les utiliser comme icônes dans vos applications mobiles. Par rapport aux fichiers d'images raster, les fontes True Type présentent l'avantage d'être légères et basées sur des vecteurs. Elles peuvent donc être facilement mises à l'échelle pour des résolutions élevées. Vous pouvez installer vos propres fontes personnalisées dans votre bibliothèque de fontes sur votre système de développement. Ces fontes personnalisées seront ensuite disponibles dans l'EDI afin de pouvoir être sélectionnées à la conception.

Toutefois, quand vous déployez l'app sur un périphérique cible à ce stade, les fontes de l'app sont rendues en utilisant seulement les fontes disponibles sur le périphérique. Vous devez ajouter la fonte à votre projet en utilisant le Gestionnaire de déploiement pour que les fontes que vous voyez dans l'EDI lors de la conception soient copiées sur le périphérique.

Voici les étapes de base pour incorporer une fonte personnalisée dans votre app Android :

  1. Installez la fonte personnalisée sur votre système Windows.
    • Pour des instructions, voir Aide et support Windows sur votre système.
    • Par exemple, cliquez avec le bouton droit sur le fichier de fontes, puis cliquez sur Installer.
  2. Ajoutez le fichier de fontes au répertoire racine de votre projet.
  3. Dans l'inspecteur d'objets, assignez la fonte à la propriété Text Settings/Font pour les contrôles qui utilisent la fonte.
  4. Ajoutez le fichier de fontes à votre projet dans le Gestionnaire de déploiement.

Vous trouverez des instructions complètes et des fichiers à télécharger pour créer un projet mobile utilisant une fonte installée personnalisée (Font Awesome) à cet emplacement :

Pour savoir si une fonte sera disponible à l'exécution sur un périphérique mobile spécifique, vous devez vérifier si la fonte utilisée à la conception est prise en charge sur vos périphériques cible :

Définition des permissions d'utilisation requises pour vos applications Android

Certaines permissions Android de base sont prédéfinies pour toutes les apps FireMonkey Android. Vous devez vérifier que des permissions d'accès spécifiques sont activées pour votre périphérique Android sur la page Permissions d'utilisation dans Projet > Options.

Par exemple :

  • Pour utiliser la caméra du périphérique Android, assurez-vous que les permissions suivantes sont activées :
    • Appareil photo
    • Lire/écrire le stockage externe
  • Pour utiliser la localisation GPS sur un périphérique Android, assurez-vous qu'une ou plusieurs permissions d'accès aux emplacements sont activées :
    • Accéder à un emplacement approximatif
    • Accéder à un emplacement précis
    • Accéder à des commandes supplémentaires d'emplacement
  • Pour enregistrer du son sur un périphérique Android, assurez-vous que la permission suivante est activée :
    • Enregistrer du son

Utilisation du bouton Précédent du périphérique Android

Pour que votre application gère l'appui sur la touche Précédent par les utilisateurs sur leur périphérique Android, ajoutez un gestionnaire d'événement à votre fiche pour OnKeyUp, et utilisez le code suivant dans votre gestionnaire d'événement :

Delphi :

if Key = vkHardwareBack then
begin
  // Do whatever you want to do here
  Key := 0; // Set Key = 0 if you want to prevent the default action
end;

C++ :

if (Key == vkHardwareBack) {
    // Do whatever you want here
    Key = 0; // Set Key = 0 if you want to prevent the default action
}
Conseil : Le template mobile Onglets avec navigation implémente ce gestionnaire d'événement.

Exécution de votre application en mode plein écran

Par défaut, les applications Android affichent la barre d'état/de titre Android.

Si vous voulez que votre application s'exécute en mode plein écran et masque la barre d'état/de titre Android, sélectionnez Projet > Options > Informations de version et remplacez la valeur de la clé theme par No TitleBar.

Pour plus d'informations, voir Informations de version.

Paramètres relatifs au clavier virtuel dans les contrôles TEdit et TMemo

Sur les plates-formes mobiles qui prennent en charge les claviers virtuels, le clavier virtuel s'affiche automatiquement dès qu'un contrôle TEdit ou TMemo apparaît.

Pour permettre à l'utilisateur de masquer le clavier virtuel en cliquant sur la touche Entrée, définissez KillFocusByReturn = True.

Utilisation des icônes et des images avec des résolutions multiples

  • Sur Android, les résolutions suivantes sont prises en charge :
    1x, 1.5x, 2x, 3x (Petit, Normal, Large, Extra large)
  • Sur iOS, les résolutions suivantes sont prises en charge :
    1x et 2x (non Retina et Retina)

Les résolutions multiples peuvent être prises en charge en créant un MultiResBitmap à l'aide de l'éditeur MultiResBitmap. Pour de plus amples informations, voir Utilisation de bitmaps multi-résolution.

  • MultiResBitmap supporte les résolutions suivantes sur Android : 1x, 1.5x, 2.5x
    (iOS supporte 1x et 2x)

Chargement et déploiement des fichiers

Lorsque vous déployez votre application pour la plate-forme cible Android, si vous envisagez de fournir des fichiers en même temps que votre application pour les charger à l'exécution, vous devez d'abord décider s'ils seront sur la mémoire interne du périphérique ou sur une mémoire externe (comme une carte SD). Une fois votre décision prise, utilisez le Gestionnaire de déploiement pour placer ces fichiers dans le dossier assets\internal (interne) ou assets (externe) lors du déploiement.

AddDBforAndroidAssets.png

Utilisez le code suivant pour localiser ces fichiers à l'exécution :

Delphi :

TPath.Combine(TPath.GetDocumentsPath, 'filename')  { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename')  { External }

C++ :

System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"filename") // Internal
System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDocumentsPath(), L"filename") // External

Dans cet exemple filename est le nom de votre fichier, comme 'dbdemos.gdb' dans l'écran ci-dessus. L'enregistrement TPath est déclaré dans l'unité System.IOUtils, vous devez donc ajouter System.IOUtils dans la clause uses.

Création d'applications pour Google Glass

Le Concepteur de fiches fournit une vue Google Glass, ce qui vous permet de créer des apps pour Google Glass :

GoogleGlassDesignTimeDevice.png

Si vous créez une app pour Google Glass, utilisez le style Google Glass personnalisé fourni par RAD Studio :

C:\Utilisateurs\Public\Documents\Embarcadero\Studio\20.0\Styles\Android\GoogleGlass.fsf

Le style Google Glass est optimisé pour l'interface utilisateur et la résolution de Google Glass.

Pour les étapes suivantes de l'utilisation du style Google Glass dans vos apps FireMonkey, voir Ajout d'un style personnalisé à votre application mobile.

Pour obtenir des informations générales à propos du développement d'applications pour Google Glass avec RAD Studio, voir Premières étapes avec Google Glass.

Création d'applications pour les montres intelligentes Android

Le Concepteur de fiches fournit deux vuesdifférentes pour les montres intelligentes Android : la Sony SmartWatch 3 et la Motorola Moto 360. Les deux vues couvrent les formes typiques des montres intelligentes Android. Par conséquent, vous pouvez définir la conception la plus adaptée selon la montre intelligente sur laquelle l'application s'exécute. Vous pouvez également créer vos propres vues personnalisées pour d'autres périphériques, y compris des montres intelligentes Android additionnelles.

SmartWatchesDesignTimeDevice.png

La fenêtre Aperçu multi-périphérique fournit une vue à la conception de l'aspect de votre application sur quatre différentes montres intelligentes Android outre une gamme large d'autres périphériques.

SmartWatchesMultiDevicePreview.png

Si vous créez une app pour une montre intelligente Android, RAD Studio fournit le style Android Wear, qui est optimisé pour l'interface utilisateur et différentes résolutions des montres intelligentes Android.

Le style Android Wear est disponible dans C:\Utilisateurs\Public\Documents\Embarcadero\Studio\20.0\Styles\Android\Androidwear.fsf.

Pour des informations générales sur le développement des applications pour les montres intelligentes Android en utilisant RAD Studio, voir Creating an Android Smart Watch App with RAD Studio (EN).

Implémentation de fonctionnalités propres à Android

Les rubriques suivantes décrivent comment implémenter des fonctionnalités propres à Android dans vos applications :

Des informations supplémentaires sur d'autres fonctionnalités agnostiques à la plate-forme sont disponibles dans le Guide d'applications FireMonkey.

Voir aussi

Exemples