Använda ANE-tillägg för Adobe AIR

ANE-tillägg (AIR Native Extensions) för Adobe AIR ger dig ActionScript-API:er med tillgång till enhetsspecifik funktionalitet programmerade i systemspecifik kod. ANE-utvecklare arbetar ibland med enhetstillverkare och tredjepartsleverantörer.

Om du är en ANE-utvecklare ska du besöka Developing Native Extensions for Adobe AIR .

Ett ANE-tillägg består av en kombination av:

  • ActionScript-klasser.

  • Systemspecifik kod.

Om du utvecklar AIR-program och använder ANE-tillägg, kommer du endast att arbeta med ActionScript-klasserna.

ANE-tillägg är användbart i följande situationer.

  • Den systemspecifika kodimplementationen erbjuder åtkomst till plattformsspecifika funktioner. Dessa plattformsspecifika funktioner är inte tillgängliga i de interna ActionScript-klasserna och de kan inte implementeras i programspecifika ActionScript-klasser. Den systemspecifika kodimplementationen kan erbjuda sådan funktionalitet eftersom den har åtkomst till enhetsspecifik maskin- och programvara.

  • En systemspecifik implementation kan i vissa tillfällen vara snabbare än implementeringar där enbart ActionScript används.

  • Den systemspecifika kodimplementationen kan ge dig ActionScript-åtkomst till äldre systemspecifik kod.

Några exempel på ANE-tillägg hittar du i Adobe Developer Center. Ett ANE-tillägg kan till exempel ge AIR-programåtkomst till vibratorfunktionen för Android. Se ANE-tillägg för Adobe AIR .

ANE-filer (AIR Native Extension)

ANE-utvecklare paketerar ANE-tilläggen i en ANE-fil. En ANE-fil är en arkivfil som innehåller de nödvändiga biblioteken och resurserna för ANE-tillägget.

Tänk på att för vissa enheter innehåller ANE-filen det systemspecifika kodbiblioteket som används i ANE-tilläggen. För andra enheter installeras emellertid det systemspecifika kodbiblioteket på enheten. I vissa fall saknar ANE-tillägget systemspecifik kod för en speciell enhet, eftersom den endast implementeras med ActionScript.

Om du är AIR-utvecklare använder du ANE-filer på följande sätt:

  • Lägg till ANE-filen i programmets bibliotekssökväg på samma sätt som du inkluderar en SWC-fil i bibliotekssökvägen. Detta gör att programmet kan referera till tilläggets ActionScript-klasser.

    Obs! När du kompilerar programmen ska du se till att använda dynamiska länkar för ANE-filen. Om du använder Flash Builder ska du ange External på egenskapspanelen i ActionScript Builder Path; om du använder kommandoraden anger du -external-library-path.
  • Paketera ANE-filen med AIR-programmet.

ANE-tillägg och ActionScript-klassen NativeProcess

I ActionScript 3.0 finns en NativeProcess-klass. Klassen gör att ett AIR-program kan köra systemspecifika processer i värdoperativsystemet. Detta påminner om ANE-tillägg som ger åtkomst till plattformsspecifika funktioner och bibliotek. När du väljer mellan att använda klassen NativeProcess eller ett ANE-tillägg ska du tänka på följande:

  • Endast AIR-profilen extendedDesktop har stöd för klassen NativeProcess. ANE-tillägg är därför det enda alternativet för program med AIR-profilerna , mobileDevice och extendedMobileDevice .

  • ANE-utvecklare skapar ofta systemspecifika implementationer för olika plattformar, men det ActionScript-API som används är vanligtvis detsamma för alla plattformar. När klassen NativeProcess används, kan den ActionScript-kod som ska inleda den systemspecifika processen variera mellan olika plattformar.

  • Klassen NativeProcess startar en separat process, medan ett ANE-tillägg körs i samma process som AIR-programmet. Detta innebär, om du är orolig för att koden ska krascha, att du ska använda klassen NativeProcess eftersom den är säkrare. Olika processer innebär emellertid att du troligtvis måste implementera kommunikationshantering mellan processerna.

ANE-tillägg och ActionScript-klassbibliotek (SWC-filer)

En SWC-fil är ett ActionScript-klassbibliotek i ett arkivformat. SWC-filen innehåller en SWF-fil och ytterligare resursfiler. SWC-filer är ett bekvämt sätt att dela ActionScript-klasser i stället för att dela enskild ActionScript-kod och resursfiler.

Ett systemspecifikt tilläggspaket är en ANE-fil. Precis som en SWC-fil, är en ANE-fil även ett ActionScript-klassbibliotek med en SWF-fil och andra resursfiler i ett arkivformat. Den viktigaste skillnaden mellan en ANE-fil och en SWC-fil är att en ANE-fil kan innehålla ett systemspecifikt kodbibliotek.

Obs! När du kompilerar programmen ska du se till att använda dynamiska länkar för ANE-filen. Om du använder Flash Builder ska du ange External på egenskapspanelen i ActionScript Builder Path; om du använder kommandoraden anger du -external-library-path.

Enheter som stöds

Från och med AIR 3 kan du använda ANE-tillägg i program för följande enheter:

  • Android-enheter, från och med Android 2.2

  • iOS-enheter, från och med iOS 4.0

  • iOS-simulator, från och med AIR 3.3

  • Blackberry Playbook

  • Windows-datorer med stöd för AIR 3.0

  • Mac OS X-datorer med stöd för AIR 3.0

Det går ofta att använda samma ANE-tillägg för flera plattformar. Tilläggets ANE-fil innehåller ActionScript och systemspecifika bibliotek för varje plattform som stöds. Vanligtvis används samma publika gränssnitt för ActionScript-bibliotek på alla plattformar. De systemspecifika biblioteken är annorlunda.

Ibland har ANE-tillägg stöd för en standardplattform. Implementationen av standardplattformen innehåller endast ActionScript-kod, ingen systemspecifik kod. Om du paketerar ett program för en plattform som tillägget inte direkt har stöd för, kommer programmet att använda standardimplementationen när det körs. Tänk dig till exempel ett tillägg med en funktion som endast gäller för mobila enheter. Tillägget kan även tillhandahålla en standardimplementation som ett datorprogram kan använda för att simulera funktionen.

Enhetsprofiler som stöds

Följande AIR-profiler har stöd för ANE-tillägg:

  • extendedDesktop , från och med AIR 3.0

  • mobileDevice , från och med AIR 3.0

  • extendedMobileDevice , från och med AIR 3.0

Uppgiftslista för att använda ANE-tillägg

Gör följande för att använda ANE-tillägg i dina program:

  1. Deklarera tillägget i programbeskrivningsfilen.

  2. Inkludera ANE-filen i programmets bibliotekssökväg.

  3. Paketera programmet.

Deklarera tillägg i programbeskrivningsfiler

Alla AIR-program har en programbeskrivningsfil. När ett program använder ANE-tillägg, kommer programbeskrivningsfilen att inkludera ett <extensions> -element. Till exempel:

<extensions> 
    <extensionID>com.example.Extension1</extensionID> 
    <extensionID>com.example.Extension2</extensionID> 
</extensions>

Elementet extensionID har samma värde som elementet id i tilläggsbeskrivningsfilen. Tilläggsbeskrivningsfilen är en XML-fil med namnet extension.xml. Den paketeras i en ANE-fil. Du kan använda ett arkivextraheringsverktyg för att läsa extension.xml-filen.

Inkludera ANE-filen i programmets bibliotekssökväg

Inkludera ANE-filen i bibliotekssökvägen när du kompilerar ett program som använder ett ANE-tillägg.

Använda ANE-filen med Flash Builder

Om ditt program använder ett ANE-tillägg inkluderar du ANE-filen för tillägget i bibliotekssökvägen. Sedan kan du använda Flash Builder för att kompilera ActionScript-koden.

Utför följande steg med hjälp av Flash Builder 4.5.1:

  1. Ändra filnamnstillägget på ANE-filen från .ane till .swc. Detta steg är nödvändigt för att Flash Builder ska kunna hitta filen.

  2. Välj Project > Properties i Flash Builder-projektet.

  3. Välj Flex Build Path i dialogrutan Properties.

  4. Välj Add SWC... på fliken Library Path.

  5. Bläddra till SWC-filen och klicka på Öppna.

  6. Klicka på OK i dialogrutan Add SWC....

    ANE-filen visas nu på fliken Library Path i dialogrutan Properties.

  7. Utöka posten för SWC-filen. Dubbelklicka på Link Type för att öppna dialogrutan Library Path Item Options.

  8. Ändra länktypen till extern i dialogrutan Alternativ för objekt i bibliotekssökväg.

Nu kan du kompilera programmet med till exempel Project > Build Project.

Använda ANE-filen med Flash Professional

Om ditt program använder ett ANE-tillägg inkluderar du ANE-filen för tillägget i bibliotekssökvägen. Sedan kan du använda Flash Professional CS5.5 för att kompilera ActionScript-koden. Gör så här:

  1. Ändra filnamnstillägget på ANE-filen från .ane till .swc. Detta steg är nödvändigt för att Flash Professional ska kunna hitta filen.

  2. Välj Arkiv > ActionScript-inställningar för FLA-filen.

  3. Välj fliken Bibliotekssökväg i dialogrutan Avancerade inställningar för ActionScript 3.0.

  4. Klicka på knappen Bläddra efter SWC-fil.

  5. Bläddra till SWC-filen och klicka på Öppna.

    SWC-filen visas nu på fliken Bibliotekssökväg i dialogrutan Avancerade inställningar för ActionScript 3.0.

  6. Markera SWC-filen och klicka på knappen Ange länkningsalternativ för ett bibliotek.

  7. Ändra länktypen till extern i dialogrutan Alternativ för objekt i bibliotekssökväg.

Paketera ett program som använder ANE-tillägg

Använd ADT för att paketera ett program som använder ANE-tillägg. Du kan inte paketera programmet med Flash Professional CS5.5 eller Flash Builder 4.5.1.

Mer information om ADT finns på AIR Developer Tool (ADT) .

Exempelvis skapar följande ADT-kommandon en DMG-fil (en systemspecifik installationsfil för Mac OS X) för ett program som använder ANE-tillägg:

adt -package 
    -storetype pkcs12 
    -keystore myCert.pfx 
    -target native 
    myApp.dmg 
    application.xml 
    index.html resources 
    -extdir extensionsDir
Följande kommando skapar ett APK-paket för en Android-enhet:
adt -package 
    -target apk 
    -storetype pkcs12 -keystore ../codesign.p12 
    myApp.apk 
    myApp-app.xml 
    myApp.swf icons 
    -extdir extensionsDir

Följande kommando skapar ett iOS-paket för ett iPhone-program:

adt -package 
    -target ipa-ad-hoc 
    -storetype pkcs12 -keystore ../AppleDistribution.p12 
    -provisioning-profile AppleDistribution.mobileprofile 
    myApp.ipa 
    myApp-app.xml 
    myApp.swf icons Default.png 
    -extdir extensionsDir

Tänk på följande:

  • Använd en systemspecifik typ av installationspaket.

  • Ange tilläggskatalogen.

  • Kontrollera att ANE-filen har stöd för programmets målenhet.

Använd en systemspecifik typ av installationspaket

Programpaketet måste vara ett systemspecifikt installationsprogram. Du kan inte skapa ett AIR-paket för flera plattformar (ett .air-paket) för ett program där ANE-tillägg används, eftersom ANE-tillägg vanligtvis innehåller systemspecifik kod. Det är emellertid vanligt att samma ActionScript-API:er i ett ANE-tillägg kan användas för flera plattformar. I dessa fall kan du använda samma ANE-fil i olika systemspecifika installationspaket.

I följande tabell sammanställs de värden som kan användas för alternativet -target i ADT-kommandot:

Programmets målplattform

-target

Mac OS X- eller Windows-datorer

-target native

-target bundle

Android

-target apk

eller andra mål för Android-paket.

iOS

-target ipa-ad-hoc

eller andra mål för iOS-paket

iOS-simulator

-target ipa-test-interpreter-simulator

-target ipa-debug-interpreter-simulator

Ange tilläggskatalogen

Använd ADT-alternativet -extdir för att ange vilken katalog som innehåller ANE-filerna.

Mer information om detta alternativ finns i Alternativ för filer och sökvägar .

Kontrollera att ANE-filen har stöd för programmets målenhet

När du ska tillhandahålla en ANE-fil får du av ANE-utvecklaren reda på vilka plattformar som tillägget har stöd för. Du kan även använda ett arkivextraheringsverktyg för att kontrollera innehållet i en ANE-fil. De extraherade filerna innehåller en katalog för varje plattform som stöds.

Att veta vilka plattformar som tillägget har stöd för är viktigt att känna till vid paketeringen av programmet där ANE-filen används. Tänk på följande regler:

  • För att skapa ett Android-programpaket måste ANE-filen innehålla Android-ARM -plattformen. Alternativt måste ANE-filen innehålla standardplattformen samt minst ytterligare en plattform.

  • För att skapa ett iOS-programpaket måste ANE-filen innehålla iPhone-ARM -plattformen. Alternativt måste ANE-filen innehålla standardplattformen samt minst ytterligare en plattform.

  • För att skapa ett programpaket för iOS-simulatorn måste ANE-filen innehålla iPhone-x86 -plattformen.

  • För att skapa ett Mac OS X-programpaket måste ANE-filen innehålla MacOS-x86 -plattformen. Alternativt måste ANE-filen innehålla standardplattformen samt minst ytterligare en plattform.

  • För att skapa ett Windows-programpaket måste ANE-filen innehålla Windows-x86 -plattformen. Alternativt måste ANE-filen innehålla standardplattformen samt minst ytterligare en plattform.