Impostazioni comuni

Varie impostazioni del descrittore dell'applicazione sono importanti per tutte le applicazioni per dispositivi mobili.

Versione del runtime AIR necessaria

Specificate la versione del runtime AIR necessaria per l'applicazione utilizzando lo spazio dei nomi del file descrittore dell'applicazione.

Lo spazio dei nomi, assegnato nell'elemento application , determina in larga parte quali funzioni può utilizzare la vostra applicazione. Ad esempio, se l'applicazione usa lo spazio dei nomi AIR 2.7 e l'utente ha installato una versione successiva, l'applicazione vede comunque il comportamento AIR 2.7 (anche se è cambiato nella versione successiva). Solo quando cambiate lo spazio dei nomi e pubblicate un aggiornamento l'applicazione avrà accesso al nuovo comportamento e alle nuove funzioni. Gli aggiornamenti correttivi relativi alla sicurezza rappresentano un'importante eccezione a questa regola.

Nei dispositivi che utilizzano un runtime separato dall'applicazione, come Android in AIR 3.6 e versioni precedenti, all'utente viene richiesto di installare o aggiornare AIR se non dispone della versione richiesta. Nei dispositivi che incorporano il runtime, come iPhone, questa situazione non si verifica (poiché la versione richiesta è già inclusa nel pacchetto dell'applicazione).

Nota: (AIR 3.7 e versioni successive) Per impostazione predefinita, ADT include il runtime con le applicazioni Android.

Specificate lo spazio dei nomi utilizzando l'attributo xmlns dell'elemento root application . I seguenti spazi dei nomi devono essere utilizzati per le applicazioni per dispositivi mobili (a seconda della piattaforma mobile di destinazione):

iOS 4+ and iPhone 3Gs+ or Android: 
                            <application xmlns="http://ns.adobe.com/air/application/2.7"> 
                            iOS only: 
                            <application xmlns="http://ns.adobe.com/air/application/2.0">
Nota: il supporto per i dispositivi iOS 3 è fornito dal kit SDK Packager for iPhone, basato sul kit SDK AIR 2.0. Per informazioni sullo sviluppo di applicazioni AIR for iOS 3, vedete Creazione di applicazioni iPhone . AIR 2.6 SDK (e versioni successive) supporta iOS 4 e versioni successive su dispositivi iPhone 3Gs, iPhone 4 e iPad.

Identità dell'applicazione

Diverse impostazioni devono essere univoche per ciascuna applicazione che pubblicate. Tali impostazioni includono l'ID, il nome e il nome del file.

ID applicazione Android

In Android, l'ID viene convertito nel nome del pacchetto Android anteponendo il prefisso "air.". all'ID AIR. Quindi, se ad esempio l'ID AIR è com.example.MyApp , il nome del pacchetto Android è air.com.example.MyApp .

<id>com.example.MyApp</id> 
                                <name>My Application</name> 
                                <filename>MyApplication</filename>

Inoltre, se l'ID non è un nome di pacchetto valido per il sistema operativo Android, viene convertito in un nome valido. I trattini vengono convertiti in trattini di sottolineatura e le cifre iniziali di qualsiasi componente dell'ID vengono precedute da una "A" maiuscola. Ad esempio, l'ID 3-goats.1-boat viene trasformato nel nome di pacchetto air.A3_goats.A1_boat .

Nota: il prefisso aggiunto all'ID applicazione può essere utilizzato per identificare le applicazioni AIR in Android Market. Se non volete che l'applicazione possa essere identificata come applicazione AIR in virtù del prefisso, dovete "spacchettare" il file APK, cambiare l'ID applicazione e re-impacchettarlo come descritto in Opt-out of AIR application analytics for Android .

ID applicazione iOS

Impostate l'lD applicazione AIR in modo che corrisponda all'ID applicazione creato nel sito Apple iOS Provisioning Portal.

Gli ID applicazione iOS contengono un identificatore chiamato "bundle seed ID" (ID inizializzazione pacchetto) seguito da un altro identificatore denominato "bundle ID" (identificatore pacchetto). L'ID inizializzazione pacchetto è una stringa di caratteri, ad esempio 5RM86Z4DJM, assegnata da Apple all'ID applicazione. L'identificatore pacchetto contiene un nome in stile nome di dominio inverso a vostra scelta. L'identificatore pacchetto può terminare con un carattere asterisco (*), che indica un ID applicazione jolly. Se l'ID pacchetto termina con il carattere jolly, potete sostituire tale carattere con qualsiasi stringa valida.

Ad esempio:

  • Se l'ID applicazione Apple è 5RM86Z4DJM.com.example.helloWorld , dovete usare com.example.helloWorld nel descrittore dell'applicazione.

  • Se l'ID applicazione Apple è 96LPVWEASL.com.example.* (notate il carattere jolly alla fine), potreste usare com.example.helloWorld o com.example.anotherApp , oppure qualsiasi altro ID che inizi con com.example .

  • Infine, se l'ID applicazione Apple è composto semplicemente dal bundle seed ID e da un carattere jolly, come in 38JE93KJL.* , potete usare qualsiasi ID applicazione in AIR.

Quando specificate l'ID applicazione, non includete la parte corrispondente all'ID inizializzazione pacchetto (bundle seed ID).

Versione dell'applicazione

In AIR 2.5 e versioni successive, specificate la versione dell'applicazione nell'elemento versionNumber . L'uso dell'elemento version non è più valido. Quando specificate un valore per versionNumber , dovete usare una sequenza composta da un massimo di tre numeri separati da punti, come in "0.1.2". Ogni segmento del numero di versione può contenere fino a tre cifre. (In altre parole, “999.999.999” è il numero di versione più alto possibile.) Non dovete includere necessariamente tutti e tre i segmenti nel numero: "1" e "1.0" sono numeri di versione perfettamente validi.

Potete anche specificare un'etichetta per la versione utilizzando l'elemento versionLabel . Quando aggiungete un'etichetta di versione, questa viene visualizzata al posto del numero di versione, ad esempio nelle finestre di installazione dell'applicazione Android. È necessario specificare un'etichetta di versione per le applicazioni che vengono distribuite tramite Android Market. Se non specificate il valore versionLabel nel descrittore dell'applicazione AIR, al campo dell'etichetta di versione Android viene assegnato il valore versionNumber .

<!-- AIR 2.5 and later --> 
                            <versionNumber>1.23.7<versionNumber> 
                            <versionLabel>1.23 Beta 7</versionLabel>

In Android, il dato AIR versionNumber viene convertito nel numero intero Android versionCode utilizzando la formula a*1000000 + b*1000 + c , dove a, b e c sono i componenti del numero di versione AIR: a.b.c .

SWF principale dell'applicazione

Specificate il file SWF principale dell'applicazione nell'elemento secondario content dell'elemento initalWindow . Quando un'applicazione ha come target dispositivi nel profilo mobile, dovete utilizzare un file SWF (le applicazioni basate su HTML non sono supportate).

<initialWindow> 
                            <content>MyApplication.swf</content> 
                            </initialWindow>

Dovete includere il file nel pacchetto AIR (usando ADT o il vostro ambiente IDE). Un semplice riferimento al nome nel descrittore dell'applicazione non determina l'inclusione automatica del file nel pacchetto.

Proprietà della schermata principale

Vari elementi secondari dell'elemento initialWindow controllano l'aspetto iniziale e il comportamento della finestra principale dell'applicazione.

  • aspectRatio - Specifica se l'applicazione deve essere inizialmente visualizzata in formato verticale ( portrait , altezza superiore alla larghezza) o orizzontale ( landscape , altezza inferiore alla larghezza) oppure in un formato qualsiasi ( any , stage orientato automaticamente in tutte le direzioni).

    <aspectRatio>landscape</aspectRatio>
  • autoOrients - Specifica se lo stage deve cambiare orientamento automaticamente quando l'utente ruota il dispositivo o esegue un altro gesto relativo all'orientamento, come l'apertura o la chiusura di una tastiera scorrevole. Se il valore è false (impostazione predefinita), lo stage non cambia orientamento con il dispositivo.

    <autoOrients>true</autoOrients>
  • depthAndStencil - Specifica di utilizzare il buffer di profondità o di stencil. Solitamente questi buffer vengono utilizzati quando si lavora con contenuti 3D.

    <depthAndStencil>true</depthAndStencil>
  • fullScreen - Specifica se l'applicazione deve occupare interamente il display del dispositivo oppure condividere il display con il chrome standard del sistema operativo, ad esempio una barra di stato.

    <fullScreen>true</fullScreen>
  • renderMode - Specifica se il runtime deve eseguire il rendering dell'applicazione con la GPU (unità di elaborazione grafica) o con la CPU (unità di elaborazione centrale) principale. In generale, il rendering tramite GPU viene eseguito a una velocità superiore, ma alcune funzionalità, quali i metodi di fusione e i filtri PixelBender, non sono disponibili in modalità GPU. Inoltre, le funzionalità e i limiti della GPU variano da un dispositivo o driver di dispositivo all'altro. Dovete sempre provare l'applicazione con la gamma di dispositivi più ampia possibile, specialmente quando scegliete la modalità GPU.

    Potete impostare la modalità di rendering su gpu , cpu , direct o auto . Il valore predefinito è auto , che attualmente corrisponde per impostazione predefinita alla modalità CPU.

    Nota: per poter sfruttare l'accelerazione GPU dei contenuti Flash con AIR per le piattaforme mobili, Adobe consiglia di utilizzare renderMode="direct" (ovvero, Stage3D) anziché renderMode="gpu". Adobe supporta e consiglia ufficialmente i seguenti framework basati su Stage3D: Starling (2D) e Away3D (3D). Per maggiori dettagli su Stage3D e Starling/Away3D, visitate http://gaming.adobe.com/getstarted/ .
    <renderMode>direct</renderMode>
    Nota: Non è possibile utilizzare renderMode="direct" per le applicazioni eseguite in background.

    I limiti della modalità GPU sono i seguenti:

    • Il framework Flex non supporta tale modalità.

    • I filtri non sono supportati.

    • Le fusioni PixelBender e i riempimenti non sono supportati.

    • I seguenti metodi di fusione non sono supportati: Livello, Alfa, Cancella, Sovrapponi, Luce intensa, Schiarisci e Scurisci.

    • L'uso della modalità di rendering GPU in un'applicazione che riproduce video è sconsigliato.

    • Nella modalità di rendering tramite GPU, i campi di testo non vengono spostati correttamente in un'area visibile quando si apre la tastiera virtuale. Per assicurare che il campo di testo sia visibile quando l'utente immette il testo, usate la proprietà softKeyboardRect degli eventi dello stage e della tastiera virtuale per spostare il campo di testo nell'area visibile.

    • Un oggetto di visualizzazione del quale non può essere eseguito il rendering tramite GPU non viene visualizzato del tutto. Ad esempio, se viene applicato un filtro a un oggetto di visualizzazione, l'oggetto non risulta visibile.

    Nota: l'implementazione GPU per iOS in AIR 2.6+ è molto diversa da quelle adottate nella versione precedente, AIR 2.0, relativamente alle tecniche di ottimizzazione.

Profili supportati

Potete aggiungere l'elemento supportedProfiles per specificare quali profili di dispositivo sono supportati dall'applicazione. Utilizzate il profilo mobileDevice per i dispositivi mobili. Quando eseguite l'applicazione con ADL (Adobe Debug Launcher), questo tool usa il primo profilo nell'elenco come profilo attivo. Potete anche usare il flag -profile quando eseguite ADL per selezionare un profilo particolare nell'elenco di quelli supportati. Se l'applicazione può essere eseguita in tutti i profili, potete omettere del tutto l'elemento supportedProfiles . In questo caso, ADL usa il profilo desktop come profilo attivo predefinito.

Per specificare che l'applicazione supporta sia il profilo per dispositivi mobili che il profilo desktop, e che in genere desiderate testarla nel profilo mobile, aggiungete il seguente elemento:

<supportedProfiles>mobileDevice desktop</supportedProfiles>

Estensioni native obbligatorie

Le applicazioni che supportano il profilo mobileDevice possono utilizzare le estensioni native.

Dichiarate tutte le estensioni native utilizzate dall'applicazione AIR nel descrittore dell'applicazione. L'esempio seguente illustra la sintassi da adottare per specificare due estensioni native richieste:

<extensions> 
                            <extensionID>com.example.extendedFeature</extensionID> 
                            <extensionID>com.example.anotherFeature</extensionID> 
                            </extensions>

L'elemento extensionID ha lo stesso valore dell'elemento id nel file descrittore dell'estensione. Quest'ultimo è un file XML denominato extension.xml, impacchettato nel file ANE fornito dallo sviluppatore dell'estensione nativa.

Comportamento della tastiera virtuale

Impostate l'elemento softKeyboardBehavior su none per disattivare il comportamento automatico di scorrimento e ridimensionamento utilizzato dal runtime per fare in modo che il campo di immissione testo attivo sia visibile dopo che è stata aperta la tastiera virtuale. Se disattivate il comportamento automatico, spetta all'applicazione il compito di fare in modo che l'area di immissione del testo, o qualsiasi contenuto rilevante, sia visibile dopo l'attivazione della tastiera. Potete usare la proprietà softKeyboardRect dello stage in combinazione con SoftKeyboardEvent per rilevare il momento in cui la tastiera si apre e determinare l'area che va a coprire.

Per abilitare il comportamento automatico, impostate il valore dell'elemento su pan :

<softKeyboardBehavior>pan</softKeyboardBehavior>
Poiché pan è il valore predefinito, anche l'omissione dell'elemento softKeyboardBehavior ha l'effetto di abilitare il comportamento automatico della tastiera.
Nota: quando si usa il rendering tramite GPU, il comportamento di scorrimento ("pan") non è supportato.