Profils de périphérique

Adobe AIR 2 et ultérieur

Les profils sont un mécanisme de définition des classes des périphériques informatiques sur lesquels s’exécute l’application. Un profil définit un ensemble d’API et de fonctionnalités généralement pris en charge par une classe déterminée de périphérique. Les profils disponibles sont les suivants :

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

  • tv

  • extendedTV

Vous pouvez définir les profils associés à l’application dans le fichier descripteur de l’application. Seuls les utilisateurs qui disposent d’un ordinateur ou d’un périphérique stipulé dans les profils inclus peuvent installer l’application. Si vous n’incluez, par exemple, que le profil desktop dans le fichier descripteur de l’application, les utilisateurs peuvent installer et exécuter l’application sur un ordinateur de bureau uniquement.

Si vous incluez un profil que l’application ne prend pas totalement en charge, l’expérience de l’utilisateur dans les environnements de ce type risque de ne pas être satisfaisante. Si vous ne spécifiez pas de profil dans le fichier descripteur de l’application, AIR ne restreint pas cette dernière. Vous pouvez mettre en package l’application dans tous les formats pris en charge et celle-ci peut être installée par les utilisateurs qui disposent d’un périphérique stipulé dans n’importe quel profil. Elle risque toutefois de ne pas fonctionner correctement à l’exécution.

Dans la mesure du possible, les restrictions associées aux profils sont imposées lorsque vous mettez en package l’application. Si, par exemple, vous incluez le profil extendedDesktop uniquement, il est impossible de mettre en package l’application en tant que fichier AIR, mais uniquement en tant que programme d’installation natif. De même, si vous n’incluez pas le profil mobileDevice, il est impossible de mettre en package l’application en tant que fichier APK Android.

Un périphérique informatique peut prendre en charge plusieurs profils. Sur un ordinateur de bureau, AIR prend, par exemple, en charge les applications associées aux profils desktop et extendedDesktop. Une application associée au profil extendedDesktop peut toutefois communiquer avec les processus natifs et vous devez IMPERATIVEMENT la mettre en package en tant que programme d’installation natif (exe, dmg, deb ou rpm). En revanche, une application associée au profil desktop ne peut pas communiquer avec un processus natif. Vous pouvez la mettre en package en tant que fichier AIR ou programme d’installation natif.

L’inclusion d’une fonctionnalité dans un profil indique qu’elle est généralement prise en charge par la classe de périphérique correspondante. Ce qui ne signifie pas que chaque périphérique associé à un profil prend en charge chaque fonctionnalité. La plupart des téléphones portables, mais non leur totalité, contiennent par exemple un accéléromètre. Les classes et fonctionnalité qui ne sont pas universellement prises en charge gèrent généralement une propriété booléenne que vous pouvez vérifier avant d’utiliser la fonctionnalité. Dans le cas d’un accéléromètre, par exemple, vous pouvez tester la propriété statique Accelerometer.isSupported pour déterminer si le périphérique actif en est équipé.

Vous pouvez assigner les profils suivants à l’application AIR à l’aide de l’élément supportedProfiles du fichier descripteur de l’application :

Bureau
Le profil de bureau définit un ensemble de fonctionnalités réservé aux applications AIR installées en tant que fichiers AIR sur un ordinateur de bureau. Ces applications sont installées et s’exécutent sur les plates-formes de bureau prises en charge (Mac OS, Windows et Linux). Les applications AIR développées dans les versions d’AIR antérieures à la version 2 peuvent être considérées comme faisant partie du profil de bureau. Certaines API ne sont pas prises en charge dans ce profil. Ainsi, les applications de bureau ne peuvent pas communiquer avec les processus natifs.

Bureau étendu
Le profil de bureau étendu définit un ensemble de fonctionnalités réservé aux applications AIR qui sont mises en package avec un programme d’installation natif et installées par le biais de celui-ci. Ces programmes d’installation natifs sont des fichiers EXE sous Windows, DMG sous Mac OS et BIN, DEB ou RPM sous Linux. Les applications du profil de bureau étendu sont dotées de fonctionnalités que ne possèdent pas les applications du profil de bureau. Pour plus d’informations, voir Mise en package d’un programme d’installation natif de bureau.

Périphérique mobile
Le profil de périphérique mobile définit un ensemble de fonctionnalités réservé aux applications installées sur des périphériques mobiles. Vous pouvez créer des applications destinées à Android, l’iPhone, l’iPod Touch et l’iPad à l’aide d’ActionScript 3.0 et des API d’AIR. Ce sont actuellement les seuls périphériques qui prennent en charge les applications du profil de périphérique mobile.

Périphérique mobile étendu
Le profil de périphérique mobile étendu définit un ensemble de fonctionnalités réservé aux applications installées sur un sous-ensemble de périphériques mobiles. Outre les fonctionnalités du profil de périphérique mobile, ce sous-ensemble peut utiliser la classe HTMLLoader. Aucun périphérique ne prend actuellement en charge ce profil.

TV
Le profil de télévision définit un ensemble de fonctionnalités réservées aux télévisions. Il comprend également les périphériques dont la télévision constitue le principal écran, tels que les lecteurs de disque Blu-ray, les enregistreurs vidéo numériques et les décodeurs. Les applications associées à ce profil ne peuvent pas utiliser les extensions ActionScript.

TV étendu
Le profil de télévision étendu gère les mêmes types de périphériques que le profil de télévision, mais comprend également d’autres fonctionnalités, telles que les extensions ActionScript.

Limitation des profils cible dans le fichier descripteur de l’application

Depuis AIR 2, le fichier descripteur de l’application contient l’élément supportedProfiles, qui permet de limiter les profils cible. Le paramètre suivant, par exemple, stipule que l’application est uniquement disponible dans le profil de bureau :
<supportedProfiles>desktop</supportedProfiles>

Lorsque cet élément est défini, l’application peut uniquement être mise en package dans les profils que vous indiquez. Les valeurs disponibles sont les suivantes :

  • desktop : profil de bureau

  • extendedDesktop : profil de bureau étendu

  • mobileDevice : profil de périphérique mobile

  • tv : profil de télévision

  • extendedTV : profil de télévision étendu

L’élément supportedProfiles est facultatif. Lorsque vous l’omettez du fichier descripteur d’application, il est possible de mettre en package et de déployer l’application pour tout profil.

Pour spécifier plusieurs profils dans l’élément supportedProfiles, séparez-les par un espace, comme suit :

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

Fonctionnalités des différents profils

Le tableau ci-dessous indique les classes et fonctionnalités qui ne sont pas prises en charge par tous les profils.

Classe ou fonctionnalité

desktop

extendedDesktop

mobileDevice

tv

extendedTV

Accéléromètre (Accelerometer.isSupported)

Non

Non

Vérifier

Non

Non

Accessibilité (Capabilities.hasAccessibility)

Oui

Oui

Non

Non

Non

ActionScript 2

Oui

Oui

Non

Oui

Oui

Matrice CacheAsBitmap

Non

Non

Oui

Oui

Oui

Caméra (Camera.isSupported)

Oui

Oui

Oui

Non

Non

CameraRoll

Non

Non

Oui

Non

Non

CameraUI (CameraUI.isSupported)

Non

Non

Oui

Non

Non

ContextMenu (ContextMenu.isSupported)

Oui

Oui

Non

Non

Non

DatagramSocket (DatagramSocket.isSupported)

Oui

Oui

Non

Non

Non

DockIcon (NativeApplication.supportsDockIcon)

Vérifier

Vérifier

Non

Non

Non

Glisser-déposer (NativeDragManager.isSupported)

Oui

Oui

Vérifier

Non

Non

EncyptedLocalStore (EncyptedLocalStore.isSupported)

Oui

Oui

Non

Non

Non

ExtensionContext

Non

Non

Non

Non

Oui

Accès à Flash (DRMManager.isSupported)

Oui

Oui

Non

Oui

Oui

Géolocalisation (Geolocation.isSupported)

Non

Non

Vérifier

Non

Non

HTMLLoader (HTMLLoader.isSupported)

Oui

Oui

Non

Non

Non

Editeur IME (IME.isSupported)

Oui

Oui

Vérifier

Non

Non

LocalConnection (LocalConnection.isSupported)

Oui

Oui

Non

Oui

Oui

Microphone (Microphone.isSupported)

Oui

Oui

Vérifier

Non

Non

NativeMenu (NativeMenu.isSupported)

Oui

Oui

Non

Non

Non

NativeProcess (NativeProcess.isSupported)

Non

Oui

Non

Non

Non

NativeWindow (NativeWindow.isSupported)

Oui

Oui

Non

Non

Non

NetworkInfo (NetworkInfo.isSupported)

Oui

Oui

Vérifier

Oui

Oui

Ouverture de fichiers dans l’application par défaut

Prise en charge restreinte

Oui

Non

Non

Non

PrintJob (PrintJob.isSupported)

Oui

Oui

Non

Non

Non

SecureSocket (SecureSocket.isSupported)

Oui

Oui

Non

Vérifier

Vérifier

ServerSocket (ServerSocket.isSupported)

Oui

Oui

Non

Non

Non

Shader

Oui

Oui

Prise en charge restreinte

Non

Non

Orientation de la scène (Stage.supportsOrientationChange)

Non

Non

Oui

Non

Non

StageVideo

Non

Non

Non

Oui

Oui

StageWebView (StageWebView.isSupported)

Oui

Oui

Oui

Non

Non

Lancement de l’application lors de l’établissement de la connexion (NativeApplication.supportsStartAtLogin)

Oui

Oui

Non

Non

Non

StorageVolumeInfo (StorageVolumeInfo.isSupported)

Oui

Oui

Non

Vérifier

Vérifier

Mode inactif du système

Non

Non

Oui

Non

Non

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Vérifier

Vérifier

Non

Non

Non

Entrée Text Layout Framework

Oui

Oui

Non

Non

Non

Updater (Updater.isSupported)

Oui

Non

Non

Non

Non

XMLSignatureValidator (XMLSignatureValidator.isSupported)

Oui

Oui

Non

Oui

Oui

La signification des entrées du tableau est la suivante :

  • Vérifier : la fonctionnalité est prise en charge sur certains périphériques du profil, mais pas tous. Vérifiez à l’exécution si elle est prise en charge avant de l’utiliser.

  • Prise en charge restreinte : la fonctionnalité est prise en charge, mais est sujette à d’importantes restrictions. Pour plus d’informations, voir la documentation appropriée.

  • Non : la fonctionnalité n’est pas prise en charge par le profil.

  • Oui : la fonctionnalité est prise en charge par le profil. Notez que certains périphériques ne sont pas équipés du matériel requis par une fonctionnalité. Tous les téléphones ne disposent par exemple pas d’une caméra.

Spécification de profils lors du débogage à l’aide de l’application de débogage du lanceur AIR (ADL)

L’application de débogage du lanceur AIR (ADL) vérifie si vous avez spécifié les profils pris en charge dans l’élément supportedProfiles du fichier descripteur d’application. Si tel est le cas, l’application ADL utilise par défaut le premier profil pris en charge de la liste lors du débogage.

Vous pouvez spécifier le profil que doit utiliser l’outil ADL à l’aide de l’argument de ligne de commande -profile (Voir Application de débogage du lanceur AIR (ADL).) Vous pouvez utiliser cet argument même si vous ne spécifiez pas de profil dans l’élément supportedProfiles du fichier descripteur d’application. Toutefois, si vous définissez l’élément supportedProfiles, il doit inclure le profil indiqué dans la ligne de commande, sans quoi l’outil ADL génère une erreur.