Verscheidene instellingen van de toepassingsdescriptor zijn belangrijk voor alle toepassingen voor mobiele apparaten.
Vereiste AIR-runtimeversie
Geef de versie op van de AIR-runtime die wordt vereist door uw toepassing en gebruik daarbij de naamruimte van het toepassingsdescriptorbestand.
De naamruimte, die wordt toegewezen in het
application
-element, bepaalt voor een groot deel welke functies uw toepassing kan gebruiken. Als de naamruimte AIR 2.7 bijvoorbeeld door uw toepassing wordt gebruikt en de gebruiker een toekomstige versie heeft geïnstalleerd, wordt door uw toepassing nog steeds de AIR 2.7-functionaliteit waargenomen (zelfs wanneer de functionaliteit in de toekomstige versie is gewijzigd). Uw toepassing heeft uitsluitend toegang tot de nieuwe functionaliteit en functies als u de naamruimte wijzigt en een update publiceert. Beveiligingsfixes zijn een belangrijke uitzondering op deze regel.
Op apparaten waar een runtime afzonderlijk van de toepassing wordt gebruikt, zoals Android op AIR 3.6 en eerder, wordt de gebruiker gevraagd om AIR te installeren of te upgraden als deze niet over de vereiste versie beschikt. Op apparaten waarbij de runtime is inbegrepen, zoals de iPhone, komt deze situatie niet voor (aangezien de vereiste versie bij de toepassing is verpakt).
Opmerking:
(AIR 3.7 en hoger) Standaard verpakt ADT de runtime in Android-toepassingen.
Geef de naamruimte op met behulp van het xmlns-attribuut van het hoofdelement van de
toepassing
. De volgende naamruimten moeten worden gebruikt voor mobiele toepassingen (afhankelijk vanaf welk mobiele platform u het doel instelt):
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">
Opmerking:
ondersteuning voor iOS 3-apparaten wordt geleverd door het verpakkingshulpprogramma voor iPhone-SDK, gebaseerd op de AIR 2.0-SDK. Zie
iPhone-toepassingen ontwikkelen
voor informatie over het ontwikkelen van AIR-toepassingen voor iOS 3. De AIR 2.6 SDK (en hoger) biedt ondersteuning voor iOS 4 en hoger op iPhone 3Gs-, iPhone 4- en iPad-apparaten.
Toepassingsidentiteit
Verschillende instellingen moeten uniek zijn voor elke toepassing die u publiceert. Dit zijn onder meer de id, de naam en de bestandsnaam.
Id's van Android-toepassingen
Bij Android wordt de id geconverteerd naar de Android-verpakkingsnaam met het voorvoegsel “air.” in de AIR-id. Dus: als uw AIR-id
com.example.MyApp
is, is de Android-verpakkingsnaam
air.com.example.MyApp
.
<id>com.example.MyApp</id>
<name>My Application</name>
<filename>MyApplication</filename>
Bovendien wordt de id, indien deze geen geldige naam voor het Android-besturingssysteem is, geconverteerd naar een geldige naam. Koppeltekens worden gewijzigd in onderstrepingstekens en cijfers voorin een id-component worden voorafgegaan door de hoofdletter “A”. Bijvoorbeeld: de id
3-goats.1-boat
wordt omgezet naar de pakketnaam:
air.A3_goats.A1_boat
.
Opmerking:
het voorvoegsel dat aan de toepassings-id wordt toegevoegd, kan worden gebruikt om AIR-toepassingen te identificeren in de Android Market. Als u niet wilt dat uw toepassing vanwege het voorvoegsel wordt geïdentificeerd als een AIR-toepassing, moet u het APK-bestand uitpakken, de toepassings-id wijzigen en deze opnieuw verpakken zoals wordt beschreven in
Afzien van analyse van AIR-toepassingen voor Android
.
Id's van iOS-toepassingen
Stel de id van de AIR-toepassing zodanig in dat deze overeenkomt met de toepassings-id die u hebt gemaakt in de Apple iOS Provisioning Portal.
Id's van iOS-toepassingen bestaan uit een bundlebron-id die wordt gevolgd door een bundle-id. De bundlebron-id is een tekenreeks, zoals 5RM86Z4DJM, die Apple aan de toepassings-id heeft toegewezen. De bundle-id bestaat uit een omgekeerde domein-stijlnaam die u hebt gekozen. Het laatste teken in de bundle-id kan een sterretje (*) zijn dat naar een jokerteken in de toepassings-id verwijst. Als het laatste teken in de bundle-id het jokerteken is, kunt u dit jokerteken wijzigen in een geldige tekenreeks.
Bijvoorbeeld:
-
als uw Apple-toepassings-id
5RM86Z4DJM.com.example.helloWorld
is, moet u
com.example.helloWorld
in de toepassingsdescriptor gebruiken
-
Als uw Apple-toepassings-id
96LPVWEASL.com.example.*
is (een toepassings-id met jokertekens), kunt u
com.example.helloWorld
gebruiken of
com.example.anotherApp
, of een andere id die begint met
com.example
.
-
Ten slotte, als uw Apple-toepassings-id alleen bestaat uit de bundlebron-id en een jokerteken, zoals
38JE93KJL.*
, kunt u elk gewenst toepassings-id in AIR gebruiken.
Wanneer u de toepassings-id opgeeft, moet u het gedeelte met de bundlebron-id van de toepassings-id niet opgeven.
Toepassingsversie
In AIR 2.5 en later geeft u de toepassingsversie op in het element
versionNumber
. Het element
version
mag niet langer worden gebruikt. Wanneer u een waarde opgeeft voor
versionNumber
, moet u een reeks opgeven van maximaal drie cijfers gescheiden door punten, zoals: “0.1.2”. Elk segment van het versienummer kan hoogstens drie cijfers hebben. (Met andere woorden: “999.999.999” is het hoogste versienummer dat is toegestaan.) U hoeft niet alle drie de segmenten in het cijfer op te nemen. “1” en “1.0” zijn ook geldige versienummers.
U kunt ook een label voor de versie opgeven met behulp van het element
versionLabel
. Wanneer u een versielabel toevoegt, wordt het in plaats van het versienummer weergegeven op plaatsen zoals het Android-toepassingsscherm. Er moet een versielabel worden opgegeven voor toepassingen die zijn gedistribueerd via de Android Market. Als u geen waarde voor
versionLabel
opgeeft in de AIR-toepassingsdescriptor, wordt de waarde voor
versionNumber
toegewezen aan het labelveld van de Android-versie.
<!-- AIR 2.5 and later -->
<versionNumber>1.23.7<versionNumber>
<versionLabel>1.23 Beta 7</versionLabel>
Op Android wordt het AIR-
versionNumber
omgezet in het gehele Android-getal
versionCode
aan de hand van de formule:
a*1000000 + b*1000 + c
, waarbij a, b en c de componenten van het AIR-versienummer zijn:
a.b.c
.
Hoofdtoepassings-SWF
Geef het hoofdtoepassings-SWF-bestand op in het onderliggende element
content
van het element
initialWindow
. Wanneer u in het mobiele profiel een doel instelt voor apparaten, moet u een SWF-bestand gebruiken (op HTML-gebaseerde toepassingen worden niet ondersteund).
<initialWindow>
<content>MyApplication.swf</content>
</initialWindow>
U moet het bestand in het AIR-pakket opnemen (met behulp van ADT of uw IDE). Door alleen te verwijzen naar de naam in de toepassingsdescriptor wordt het bestand niet automatisch in het pakket opgenomen.
Eigenschappen van het hoofdscherm
Verschillende onderliggende elementen van het element initialWindow bepalen de initiële weergave en de functionaliteit van het hoofdscherm van de toepassing.
-
aspectRatio
— Hiermee wordt aangegeven of de toepassing in eerste instantie
staand
(hoogte groter dan breedte) of
liggend
(hoogte kleiner dan breedte) weergegeven, of dat de indeling
elke
wordt toegepast (het werkgebied is automatisch georiënteerd op alle oriëntaties).
<aspectRatio>landscape</aspectRatio>
-
autoOrients
— Hiermee wordt aangegeven of de richting van het werkgebied automatisch moet worden gewijzigd als de gebruiker het apparaat draait of een andere beweging maakt die betrekking heeft op richting, zoals het openen of sluiten van een uitschuifbaar toetsenbord. Bij
false
, wat de standaardinstelling is, wordt de richting van het werkgebied niet gewijzigd als het apparaat wordt gedraaid.
<autoOrients>true</autoOrients>
-
depthAndStencil
— Of de diepte- of de stencilbuffer moet worden gebruikt. Deze buffers worden meestal gebruikt tijdens het werken met 3D-inhoud.
<depthAndStencil>true</depthAndStencil>
-
fullScreen
— Hiermee wordt aangegeven of het volledige scherm van het apparaat voor de toepassing moet wordt gebruikt of dat het scherm moet worden gedeeld met de normale interface van het besturingssysteem, zoals een systeemstatusbalk.
<fullScreen>true</fullScreen>
-
renderMode
— Hiermee wordt aangegeven of de runtime de toepassing moet renderen met de GPU of de CPU. Over het algemeen wordt door GPU-rendering de renderingsnelheid verhoogd, maar enkele functies, zoals bepaalde overvloeimodi en PixelBender-filters zijn niet beschikbaar in de GPU-modus. Daarnaast hebben verschillende apparaten en verschillende stuurprogramma's van apparaten verschillende GPU-capaciteit en beperkingen van de GPU. U moet uw toepassing altijd op zoveel mogelijk verschillende apparaten testen, vooral wanneer u de GPU-modus gebruikt.
U kunt de renderingsmodus instellen op
gpu
,
cpu
,
direct
of
auto
. De standaardwaarde is
auto
, die momenteel wordt teruggezet in de cpu-modus.
Opmerking:
voor een optimale GPU-versnelling van Flash-inhoud met AIR for Mobile-platforms raadt Adobe u aan om de instelling renderMode="direct" te gebruiken (dat wil zeggen: Stage3D) in plaats van renderMode="gpu". Adobe biedt officieel ondersteuning voor de volgende Stage3D-frameworks: Starling (2D) en Away3D (3D). Adobe raadt u daarom aan deze frameworks te gebruiken. Voor meer informatie over Stage3D en Starling/Away3D gaat u naar
http://gaming.adobe.com/getstarted/
.
<renderMode>direct</renderMode>
Opmerking:
u kunt renderMode="direct" niet gebruiken voor toepassingen die op de achtergrond worden uitgevoerd.
De beperkingen van de GPU-modus zijn:
-
Het Flex-framework biedt geen ondersteuning voor de GPU-renderingsmodus.
-
Filters worden niet ondersteund
-
PixelBender-overvloeiing en opvulling wordt niet ondersteund
-
De volgende overvloeimodi worden niet ondersteund: laag, alfa, wissen, bedekking, fel licht, lichter en donkerder
-
Het wordt niet aanbevolen een GPU-renderingsmodus te gebruiken in een toepassing die video afspeelt.
-
In de GPU-renderingmodus worden tekstvelden niet altijd naar een zichtbare locatie verplaatst wanneer het virtuele toetsenbord wordt geopend. Gebruik de eigenschap softKeyboardRect van het werkgebied en elektronische-toetsenbordgebeurtenissen om het tekstveld naar het zichtbare gebied te verplaatsen om ervoor te zorgen dat het zichtbaar is als gebruikers tekst invoeren.
-
Als een weergaveobject niet door de GPU kan worden gerenderd, wordt het helemaal niet weergegeven. Als een filter bijvoorbeeld op een weergaveobject wordt toegepast, wordt het object niet weergegeven.
Opmerking:
de GPU-implementatie voor iOS in AIR 2.6+ wijkt sterk af van de implementatie die wordt gebruikt in de vorige versie, AIR 2.0. Er zijn verschillende optimalisatieoverwegingen van toepassing.
Ondersteunde profielen
U kunt het element
supportedProfiles
toevoegen om op te geven welke apparaatprofielen door uw toepassing worden ondersteund. Gebruik het profiel mobileDevice voor mobiele apparaten. Wanneer u uw toepassing uitvoert met de Adobe Debug Launcher (ADL), gebruikt ADL het eerste profiel in de lijst als het actieve profiel. U kunt ook de markering
-profile
bij het uitvoeren van ADL gebruiken om een bepaald profiel in de ondersteunde lijst te selecteren. Als uw toepassing onder alle profielen wordt uitgevoerd, kunt u het element
supportedProfiles
helemaal weglaten. ADL gebruikt in dit geval het profiel desktop als het profiel dat standaard actief is.
Als u wilt opgeven dat uw toepassing zowel de profielen voor mobiele apparaten als desktop ondersteunt, en als u doorgaans de toepassing in het mobiele profiel wilt testen, moet u het volgende element toevoegen:
<supportedProfiles>mobileDevice desktop</supportedProfiles>
Vereiste native extensies
Toepassingen die het profiel
mobileDevice
ondersteunen, kunnen native extensies gebruiken.
Declareer alle native extensies die de AIR-toepassing gebruikt in het descriptorbestand van de toepassing. Het volgende voorbeeld illustreert de syntaxis voor het opgeven van twee vereiste native extensies:
<extensions>
<extensionID>com.example.extendedFeature</extensionID>
<extensionID>com.example.anotherFeature</extensionID>
</extensions>
Het
extensionID
-element heeft dezelfde waarde als het element
id
in het descriptorbestand van de extensie. Het descriptorbestand van de extensie is een XML-bestand met de naam "extension.xml". Het wordt verpakt in het ANE-bestand dat u ontvangt van de ontwikkelaar van de native extensie.
Functionaliteit van het virtuele toetsenbord
Stel het element
softKeyboardBehavior
in op
none
om de automatische functionaliteit voor pannen en vergroten/verkleinen uit te schakelen die door de runtime wordt gebruikt om te garanderen dat het relevante tekstinvoerveld zichtbaar is nadat het virtuele toetsenbord wordt weergegeven. Als u de automatische functionaliteit uitschakelt, moet door de toepassing worden gezorgd dat het tekstinvoergedeelte of overige relevante inhoud zichtbaar blijft als het toetsenbord wordt weergegeven. U kunt de eigenschap
softKeyboardRect
van het werkgebied in combinatie met de SoftKeyboardEvent gebruiken om te detecteren wanneer het toetsenbord wordt geopend en het gedeelte te bepalen dat door het toetsenbord wordt verborgen.
Voor het inschakelen van de automatische functionaliteit stelt u de waarde van het element in op
pan
:
<softKeyboardBehavior>pan</softKeyboardBehavior>
Omdat
pan
de standaardwaarde is, wordt door het weglaten van het element
softKeyboardBehavior
eveneens de automatische toetsenbordfunctionaliteit ingeschakeld.
Opmerking:
wanneer u ook GPU-rendering gebruikt, wordt de functionaliteit voor pannen niet ondersteund.
|
|
|