Profili di dispositivo

Adobe AIR 2 e versioni successive

I profili sono un meccanismo per definire le classi dei dispositivi informatici sui quali viene eseguita l'applicazione. Un profilo definisce una serie di API e di funzionalità tipicamente supportate in una particolare classe di dispositivo. I profili disponibili sono:

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

  • tv

  • extendedTV

Potete definire i profili per l'applicazione specificandoli nel descrittore dell'applicazione. Gli utenti di computer e dispositivi corrispondenti ai profili specificati possono installare l'applicazione, gli utenti di altri computer e dispositivi no. Ad esempio, se includete solo il profilo desktop nel descrittore dell'applicazione, gli utenti possono installare ed eseguire l'applicazione solo sui computer desktop.

Se includete un profilo che l'applicazione non supporta veramente, l'esperienza dell'utente in tali ambiente potrebbe risentirne. Se non specificate nessun profilo nel descrittore dell'applicazione, AIR non pone alcun limite all'applicazione. Potete creare il pacchetto dell'applicazione in uno qualsiasi dei formati supporti e gli utenti potranno installarla sui dispositivi di qualunque profilo, tuttavia potrebbe non funzionare in fase runtime.

Quando è possibile, le restrizioni relative ai profili vengono applicate al momento della creazione del pacchetto dell'applicazione. Ad esempio, se includete solo il profilo extendedDesktop, non potete creare il pacchetto dell'applicazione in formato AIR, bensì solo come programma di installazione nativo. Analogamente, se non includete il profilo mobileDevice, non potete impacchettare l'applicazione nel formato APK di Android.

Un singolo dispositivo informatico può supportare più di un profilo. Ad esempio, AIR su computer desktop supporta le applicazioni scritte per i profili desktop e extendedDesktop. Tuttavia, un'applicazione associata al profilo extendedDesktop può comunicare con processi nativi e DEVE essere impacchettata come programma di installazione nativo (exe, dmg, deb o rpm). Un'applicazione del profilo desktop, al contrario, non ha la possibilità di comunicare con un processo nativo e può essere impacchettata sia come file AIR che come programma di installazione nativo.

L'inclusione di una determinata funzione in un profilo indica che il supporto di tale funzione è comune nella classe di dispositivi per la quale tale profilo è definito. Tuttavia, non significa che ogni dispositivo del profilo supporta ogni funzione. Ad esempio, alcuni telefoni cellulari, ma non tutti, contengono un accelerometro. Le classi e le funzioni che non dispongono di supporto universale solitamente hanno una proprietà booleana che può essere verificata prima di utilizzare la funzione. Nel caso dell'accelerometro, ad esempio, è possibile testare la proprietà statica Accelerometer.isSupported per determinare se il dispositivo corrente è dotato di un accelerometro supportato.

I profili seguenti possono essere assegnati all'applicazione AIR utilizzando l'elemento supportedProfiles nel descrittore dell'applicazione:

Desktop
Il profilo desktop definisce un set di funzionalità per le applicazioni AIR che vengono installate come file AIR su un computer desktop. Queste applicazioni vengono installate ed eseguite sulle piattaforme desktop supportate (Mac OS, Windows e Linux). Le applicazioni AIR sviluppate nelle versioni di AIR precedenti ad AIR 2 possono essere considerate applicazioni con profilo desktop. Alcune API non funzionano in questo profilo. Ad esempio, le applicazioni desktop non possono comunicare con i processi nativi.

Desktop esteso
Il profilo desktop esteso definisce un set di funzionalità per le applicazioni AIR che vengono impacchettate e installate sotto forma di programma di installazione nativo. I programmi di installazione nativi sono file EXE in Windows, DMG in Mac OS e BIN, DEB o RPM in Linux. Le applicazioni con profilo desktop esteso sono dotate di funzionalità aggiuntive non disponibili per le applicazioni con profilo desktop. Per ulteriori informazioni, vedete Creazione del pacchetto di un file di installazione nativo desktop.

Dispositivo mobile
Il profilo dispositivo mobile definisce un set di funzionalità per le applicazioni che vengono installate sui dispositivi mobili. Potete utilizzare ActionScript 3.0 e le API di AIR per creare applicazioni per Android, iPhone, iPod touch e iPad. Attualmente, questi sono gli unici dispositivi che supportano le applicazioni con profilo dispositivo mobile.

Dispositivo mobile esteso
Il profilo dispositivo mobile esteso definisce un set di funzionalità per le applicazioni che vengono installate su un sottoinsieme di dispositivi mobili. I dispositivi mobili che fanno parte di questo sottoinsieme possono utilizzare la classe HTMLLoader oltre alle funzionalità definite per il profilo dispositivo mobile. Attualmente, nessun dispositivo supporta questo profilo.

TV
Il profilo TV definisce un set di funzionalità per apparecchi televisivi. Il profilo include anche dispositivi che utilizzano un televisore come dispositivo di visualizzazione principale, quali i lettori Blu-ray, i videoregistratori digitali e i set-top box. Le applicazioni di questo profilo non possono usare le estensioni ActionScript.

TV esteso
Il profilo TV esteso è indirizzato agli stessi tipi di dispositivi del profilo TV, ma include funzioni aggiuntive, quali le estensioni ActionScript.

Restrizione dei profili target nel file descrittore dell'applicazione

A partire da AIR 2, il file descrittore dell'applicazione comprende un elemento supportedProfiles che consente di assegnare una restrizione ai profili target. L'impostazione seguente, ad esempio, specifica che l'applicazione è disponibile solo nel profilo desktop:
<supportedProfiles>desktop</supportedProfiles>

Se questo elemento è impostato, l'applicazione può essere associata solo ai profili elencati. Utilizzate i seguenti valori:

  • desktop - Profilo desktop

  • extendedDesktop - Profilo desktop esteso

  • mobileDevice - Profilo dispositivo mobile

  • tv - Profilo TV

  • extendedTV - Profilo TV esteso

L'elemento supportedProfiles è opzionale. Se non includete questo elemento nel file descrittore dell'applicazione, quest'ultima può essere compilata e distribuita con tutti i profili.

Per specificare più profili nell'elemento supportedProfiles, separateli con uno spazio come nell'esempio seguente:

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

Funzionalità supportate dai profili

La tabella seguente elenca le classi e le funzioni che non sono supportate in tutti i profili.

Classe o funzione

desktop

extendedDesktop

mobileDevice

tv

extendedTV

Accelerometer (Accelerometer.isSupported)

No

No

Controllare

No

No

Accessibility (Capabilities.hasAccessibility)

No

No

No

ActionScript 2

No

Matrice CacheAsBitmap

No

No

Camera (Camera.isSupported)

No

No

CameraRoll

No

No

No

No

CameraUI (CameraUI.isSupported)

No

No

No

No

ContextMenu (ContextMenu.isSupported)

No

No

No

DatagramSocket (DatagramSocket.isSupported)

No

No

No

DockIcon (NativeApplication.supportsDockIcon)

Controllare

Controllare

No

No

No

Drag-and-drop (NativeDragManager.isSupported)

Controllare

No

No

EncyptedLocalStore (EncyptedLocalStore.isSupported)

No

No

No

ExtensionContext

No

No

No

No

Flash Access (DRMManager.isSupported)

No

Geolocation (Geolocation.isSupported)

No

No

Controllare

No

No

HTMLLoader (HTMLLoader.isSupported)

No

No

No

IME (IME.isSupported)

Controllare

No

No

LocalConnection (LocalConnection.isSupported)

No

Microphone (Microphone.isSupported)

Controllare

No

No

NativeMenu (NativeMenu.isSupported)

No

No

No

NativeProcess (NativeProcess.isSupported)

No

No

No

No

NativeWindow (NativeWindow.isSupported)

No

No

No

NetworkInfo (NetworkInfo.isSupported)

Controllare

Apertura di file con l'applicazione predefinita

Limitato

No

No

No

PrintJob (PrintJob.isSupported

No

No

No

SecureSocket (SecureSocket.isSupported)

No

Controllare

Controllare

ServerSocket (ServerSocket.isSupported)

No

No

No

Shader

Limitato

No

No

Orientamento dello (Stage.supportsOrientationChange)

No

No

No

No

StageVideo

No

No

No

StageWebView (StageWebView.isSupported)

No

No

Avvio dell'applicazione dopo il login (NativeApplication.supportsStartAtLogin)

No

No

No

StorageVolumeInfo (StorageVolumeInfo.isSupported)

No

Controllare

Controllare

Modalità idle del sistema

No

No

No

No

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Controllare

Controllare

No

No

No

Input TLF (Text Layout Framework)

No

No

No

Updater (Updater.isSupported)

No

No

No

No

XMLSignatureValidator (XMLSignatureValidator.isSupported)

No

Le voci della tabella hanno il seguente significato:

  • Controllare - La funzione è supportata su alcuni dispositivi del profilo, ma non su tutti. Occorre controllare in fase runtime se la funzione è supportata, prima di utilizzarla.

  • Limitato - La funzione è supportata, ma con dei limiti importanti. Per ulteriori informazioni, consultate la relativa documentazione.

  • No - La funzione non è supportata nel profilo.

  • - La funzione supportata nel profilo. Tenete presente che singoli dispositivi informatici potrebbero non essere dotati di tutto l'hardware necessario per l'uso di una determinata funzione. Ad esempio, non tutti i telefoni hanno una fotocamera.

Indicazione dei profili per il debug con ADL

ADL verifica se avete specificato profili supportati nell'elemento supportedProfiles del file descrittore dell'applicazione. In caso affermativo, ADL utilizza il primo profilo supportato presente nell'elenco in fase di debug.

Potete specificare un profilo per la sessione di debug di ADL utilizzando l'argomento della riga di comando -profile (Vedete ADL (AIR Debug Launcher).) Questo argomento può essere utilizzato indipendentemente dal fatto che abbiate specificato un profilo nell'elemento supportedProfiles del file descrittore dell'applicazione. Se specificate un elemento supportedProfiles, tuttavia, tale elemento deve includere il profilo che specificate nella riga di comando. In caso contrario, ADL genera un errore.