Algemene instellingen

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.