Verschiedene Einstellungen des Anwendungsdeskriptors sind für alle Anwendungen für mobile Geräte wichtig.
Erforderliche Version der AIR-Laufzeitumgebung
Geben Sie die für Ihre Anwendung erforderliche Version der AIR-Laufzeitumgebung an, indem Sie den Namespace der Anwendungsdeskriptordatei verwenden.
Der im
application
-Element zugewiesene Namespace bestimmt zu großen Teilen, welche Funktionen Ihre Anwendung nutzen kann. Wenn Ihre Anwendung beispielsweise den AIR 2.7-Namespace verwendet und der Benutzer eine höhere Version installiert hat, erkennt Ihre Anwendung immer noch das AIR 2.7-Verhalten (selbst wenn dieses Verhalten in der zukünftigen Version geändert wurde). Nur wenn Sie den Namespace ändern und ein Update veröffentlichen, hat Ihre Anwendung Zugriff auf die neuen Verhaltensweisen und Funktionen. Sicherheitsfixes sind eine wichtige Ausnahme dieser Regel.
Bei Geräten, die eine von der Anwendung getrennte Laufzeitumgebung verwenden, wie zum Beispiel Android auf AIR 3.6, wird der Benutzer aufgefordert, AIR zu installieren oder zu aktualisieren, wenn sie die erforderliche Version nicht installiert haben. Bei Geräten, die die Laufzeitumgebung integriert verwenden, zum Beispiel iPhone, ist dies nicht der Fall (da die erforderliche Version ja zusammen mit der App komprimiert wird).
Hinweis:
(AIR 3.7 und höher) Standardmäßig komprimiert ADT die Laufzeit mit Android-Anwendungen.
Geben Sie den Namespace mithilfe des xmlns-Attributs des
application
-Stammelements an. Für mobile Anwendungen sollten die folgenden Namespaces verwendet werden (abhängig von der mobilen Plattform, die Ihr Ziel ist):
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">
Hinweis:
Unterstützung für iOS 3-Geräte ist mit dem Packager for iPhone SDK, basierend auf dem AIR 2.0 SDK, möglich. Informationen zum Erstellen von AIR-Anwendungen für iOS 3 finden Sie unter
Erstellen von iPhone-Apps
. Das SDK von AIR 2.6 (und höher) unterstützt iOS 4 und höher auf iPhone 3Gs, iPhone 4 und iPad.
Anwendungsidentität
Verschiedene Einstellungen sollten für jede Anwendung, die Sie veröffentlichen, eindeutig sein. Dazu gehören die ID, der Name und der Dateiname.
Android-Anwendungs-IDs
Unter Android wird die ID in den Android-Paketnamen konvertiert, indem der AIR-ID „air“ vorangestellt wird. Lautet Ihre AIR-ID also zum Beispiel
com.example.MyApp
, dann ist der Android-Paketname
air.com.example.MyApp
.
<id>com.example.MyApp</id>
<name>My Application</name>
<filename>MyApplication</filename>
Wenn die ID im Android-Betriebssystem kein zulässiger Name ist, wird sie außerdem in einen zulässigen Namen konvertiert. Bindestriche werden zu Unterstrichen geändert, und wenn eine ID-Komponente mit einer Ziffer beginnt, wird ihr ein A vorangestellt. Die ID
3-goats.1-boat
wird zum Beispiel in den Paketnamen
air.A3_goats.A1_boat
umgewandelt.
Hinweis:
Das Präfix, das der Anwendungs-ID hinzugefügt wird, kann verwendet werden, um Ihre Anwendung im Android Market als AIR-Anwendung zu erkennen. Wenn Sie nicht möchten, dass Ihre Anwendung anhand des Präfix als AIR-Anwendung erkannt wird, müssen Sie die APK-Datei extrahieren, die Anwendungs-ID ändern und erneut ein Paket erstellen. Dieser Vorgang wird unter
Opt-out of AIR application analytics for Android
beschrieben.
iOS-Anwendungs-IDs
Legen Sie die AIR-Anwendungs-ID so fest, dass sie der App-ID entspricht, die Sie im Apple iOS Provisioning Portal erstellt haben.
iOS-App-IDs enthaltenen eine Bundle-Seed-ID gefolgt von einem Bundle-Bezeichner. Die Bundle-Seed-ID ist eine Zeichenfolge, zum Beispiel 5RM86Z4DJM, die Apple der App-ID zuweist. Der Bundle-Bezeichner enthält einen Namen in Form eines umgekehrten Domänennamens, den Sie auswählen. Der Bundle-Bezeichner kann mit einem Sternchen (*) enden, wodurch eine Platzhalter-App-ID angezeigt wird. Wenn der Bundle-Bezeichner mit einem Platzhalterzeichen endet, können Sie diesen Platzhalter durch einen beliebigen zulässigen String ersetzen.
Zum Beispiel:
-
Wenn Ihre Apple-App-ID
5RM86Z4DJM.com.example.helloWorld
lautet, müssen Sie im Anwendungsdeskriptor
com.example.helloWorld
verwenden.
-
Lautet Ihre Apple-App-ID
96LPVWEASL.com.example.*
(eine Platzhalter-App-ID), könnten Sie
com.example.helloWorld
,
com.example.anotherApp
oder eine beliebige andere ID, die mit
com.example
beginnt, verwenden.
-
Wenn Ihre Apple-App-ID nur aus der Bundle-Seed-ID und einem Platzhalter besteht, zum Beispiel
38JE93KJL.*
, können Sie jede beliebige Anwendungs-ID in AIR verwenden.
Wenn Sie die App-ID eingeben, schließen Sie den Teil mit der Bundle-Seed-ID der App-ID nicht mit ein.
Anwendungsversion
In AIR 2.5 und höher geben Sie die Anwendungsversion im
versionNumber
-Element an. Das
version
-Element kann nicht mehr verwendet werden. Wenn Sie einen Wert für
versionNumber
angeben, verwenden Sie einen Folge von bis zu drei Zahlen, die durch Punkte getrennt sind, zum Beispiel „0.1.2“. Jedes Segment der Versionsnummer kann aus bis zu drei Ziffern bestehen. (Die höchste zulässige Versionsnummer ist also „999.999.999“.) Sie brauchen aber nicht alle drei Segmente der Nummer zu verwenden; „1“ und „1.0“ sind ebenfalls gültige Versionsnummern.
Mit dem
versionLabel
-Element können Sie auch eine Bezeichnung der Version angeben. Wenn Sie eine Versionsbezeichnung hinzufügen, wird diese anstelle der Versionsnummer angezeigt, zum Beispiel im Android-Bildschirm mit Informationen zur App. Für Apps, die über den Android Market verteilt werden, muss eine Versionsbezeichnung angegeben werden. Wenn Sie im AIR-Anwendungsdeskriptor keinen Wert für
versionLabel
festlegen, wird der
versionNumber
-Wert dem Android-Feld für die Versionsbezeichnung zugewiesen.
<!-- AIR 2.5 and later -->
<versionNumber>1.23.7<versionNumber>
<versionLabel>1.23 Beta 7</versionLabel>
Unter Android wird die AIR-
versionNumber
in den ganzzahligen Android-
versionCode
übersetzt, indem die folgende Formel verwendet wird:
a*1000000 + b*1000 + c
, dabei sind a, b und c die Bestandteile der AIR-Versionsnummer:
a.b.c
.
SWF-Hauptdatei der Anwendung
Sie geben die SWF-Hauptdatei der Anwendung im untergeordneten
content
-Element des
initialWindow
-Elements an. Wenn Sie Geräte aus dem mobile-Profil als Ziel verwenden, müssen Sie eine SWF-Datei verwenden (HTML-basierte Anwendungen werden nicht unterstützt).
<initialWindow>
<content>MyApplication.swf</content>
</initialWindow>
Die Datei muss im AIR-Paket enthalten sein (verwenden Sie ADT oder Ihre IDE, um sie hinzuzufügen). Wenn Sie lediglich im Anwendungsdeskriptor auf den Namen der Datei verweisen, wird diese nicht automatisch in das Paket einbezogen.
Eigenschaften des Hauptbildschirms
Verschiedene untergeordnete Elemente des initialWindow-Elements steuern das anfängliche Erscheinungsbild und Verhalten des Hauptanwendungsbildschirms.
-
aspectRatio
– Gibt an, ob die Anwendung anfänglich im Hochformat
portrait
angezeigt wird (höher als breit), im Querformat
landscape
(breiter als hoch) oder in einem beliebigen Format (
any
, die Bühne richtet sich automatisch aus).
<aspectRatio>landscape</aspectRatio>
-
autoOrients
– Gibt an, ob die Bühnenausrichtung automatisch geändert werden soll, wenn der Benutzer das Gerät dreht oder eine andere ausrichtungsrelevante Aktion ausführt, zum Beispiel das Öffnen oder Schließen einer herausschiebbaren Tastatur. Bei der Standardeinstellung
false
ändert die Bühne die Ausrichtung nicht zusammen mit dem Gerät.
<autoOrients>true</autoOrients>
-
depthAndStencil
– Gibt an, dass der Tiefen- oder Schablonenpuffer verwendet werden soll. Diese Puffer werden normalerweise bei der Arbeit mit 3D-Inhalten verwendet.
<depthAndStencil>true</depthAndStencil>
-
fullScreen
– Gibt an, ob die Anwendung den gesamten Bildschirm des Geräts ausfüllen soll, oder ob das Display mit dem normalen Fensterdesign des Betriebssystems versehen sein soll, zum Beispiel mit einer Systemstatusleiste.
<fullScreen>true</fullScreen>
-
renderMode
– Gibt an, ob die Laufzeitumgebung die Anwendung mithilfe des Grafikprozessors (GPU) oder mit dem zentralen Prozessor (CPU) darstellen soll. Im Allgemeinen ist das Rendern mit GPU schneller, einige Funktionen, darunter bestimmte Mischmodi und PixelBender-Filter, sind im GPU-Modus nicht verfügbar. Außerdem haben verschiedene Geräte und verschiedene Gerätetreiber unterschiedliche GPU-Fähigkeiten und Einschränkungen. Sie sollten Ihre Anwendung immer mit der größtmöglichen Vielfalt von Geräten testen, ganz besonders, wenn Sie den GPU-Modus verwenden.
Sie können den Rendermodus auf
gpu
,
cpu
,
direct
oder
auto
einstellen. Der Standardwert ist
auto
, was zurzeit die Verwendung des CPU-Modus bedeutet.
Hinweis:
Um die GPU-Hardwarebeschleunigung von Flash-Inhalten mit AIR für mobile Plattformen zu nutzen, empfiehlt Adobe die Verwendung von renderMode="direct" (d. h. Stage3D) anstatt von renderMode="gpu". Adobe unterstützt und empfiehlt offiziell die folgenden Stage3D-basierten Frameworks: Starling (2D) und Away3D (3D). Weitere Informationen zu Stage3D und Starling/Away3D finden Sie unter
http://gaming.adobe.com/getstarted/
.
<renderMode>direct</renderMode>
Hinweis:
Für Anwendungen, die im Hintergrund ausgeführt werden, können Sie nicht renderMode=direct verwenden.
Für den GPU-Modus gelten die folgenden Einschränkungen:
-
Das Flex-Framework unterstützt den GPU-Rendermodus nicht.
-
Filter werden nicht unterstützt
-
PixelBender-Mischmodi und -Füllungen werden nicht unterstützt
-
Die folgenden Mischmodi werden nicht unterstützt: Ebene, Alpha, Löschen, Überlagern, Hartes Licht, Aufhellen und Abdunkeln
-
Für Apps, die Video abspielen, wird von der Verwendung des GPU-Rendermodus abgeraten.
-
Beim GPU-Rendering werden Textfelder nicht korrekt auf eine sichtbare Position verschoben, wenn die virtuelle Tastatur geöffnet wird. Um sicherzustellen, dass Ihr Textfeld zu sehen ist, wenn der Benutzer Texte eingibt, verwenden Sie die softKeyboardRect-Eigenschaft der Bühne sowie Tastaturereignisse, um das Textfeld in den sichtbaren Bereich zu verschieben.
-
Wenn ein Anzeigeobjekt von der GPU nicht gerendert werden kann, wird es überhaupt nicht angezeigt. Wird zum Beispiel ein Filter auf ein Anzeigeobjekt angewendet, wird das Objekt nicht angezeigt.
Hinweis:
Die GPU-Implementierung für iOS in AIR 2.6 und höher unterscheidet sich deutlich von der früheren, in AIR 2.0 verwendeten Implementierung. Deshalb sind bei der Optimierung unterschiedliche Überlegungen zu berücksichtigen.
Unterstützte Profile
Sie können das
supportedProfiles
-Element hinzufügen, um festzulegen, welche Geräteprofile von Ihrer Anwendung unterstützt werden. Verwenden Sie für mobile Geräte das mobileDevice-Profil. Wenn Sie Ihre Anwendung mit Adobe Debug Launcher (ADL) ausführen, verwendet ADL das erste Profil in der Liste als aktives Profil. Mit dem Flag
-profile
können Sie bei der Ausführung von ADL ein bestimmtes Profil aus der Liste der unterstützten Profile auswählen. Falls Ihre Anwendung unter allen Profilen ausgeführt werden kann, können Sie das
supportedProfiles
-Element ganz auslassen. In diesem Fall verwendet ADL das desktop-Profil als aktives Profil.
Wenn Ihre Anwendung sowohl das mobile- als auch das desktop-Profil unterstützt und Sie die App normalerweise im mobile-Profile testen möchten, fügen Sie das folgende Element hinzu:
<supportedProfiles>mobileDevice desktop</supportedProfiles>
Erforderliche native Erweiterungen
Anwendungen, die das
mobileDevice
-Profil unterstützen, können native Erweiterungen verwenden.
Deklarieren Sie alle nativen Erweiterungen, die die AIR-Anwendung verwendet, im Anwendungsdeskriptor. Das folgende Beispiel zeigt die Syntax für die Angabe von zwei erforderlichen nativen Erweiterungen:
<extensions>
<extensionID>com.example.extendedFeature</extensionID>
<extensionID>com.example.anotherFeature</extensionID>
</extensions>
Das
extensionID
-Element hat denselben Wert wie das
id
-Element in der Erweiterungsdeskriptordatei. Die Erweiterungsdeskriptordatei ist eine XML-Datei mit dem Namen „extension.xml“. Sie ist in der ANE-Datei verpackt, die Sie vom Entwickler der nativen Erweiterung bekommen.
Verhalten der virtuellen Tastatur
Stellen Sie das
softKeyboardBehavior
-Element auf
none
ein, um das automatische Schwenk- und Größenänderungsverhalten zu deaktivieren, mit dem die Laufzeitumgebung sicherstellt, dass das Texteingabefeld mit dem Fokus sichtbar ist, nachdem die virtuelle Tastatur eingeblendet wurde. Wenn Sie das automatische Verhalten deaktivieren, ist Ihre Anwendung dafür zuständig, sicherzustellen, dass der Texteingabebereich oder anderer relevanter Inhalt sichtbar ist, nachdem die Tastatur aufgerufen wurde. Sie können die
softKeyboardRect
-Eigenschaft der Bühne mit dem SoftKeyboardEvent verwenden, um zu erkennen, wann die Tastatur geöffnet wird und welchen Bereich sie verdeckt.
Um das automatische Verhalten zu aktivieren, legen Sie den Elementwert auf
pan
fest:
<softKeyboardBehavior>pan</softKeyboardBehavior>
Da
pan
der Standardwert ist, wird auch beim Auslassen des
softKeyboardBehavior
-Elements das automatische Tastaturverhalten aktiviert.
Hinweis:
Wenn Sie GPU-Rendering verwenden, wird das Schwenkverhalten („pan“) nicht unterstützt.
|
|
|