← Oversigt

Hvorfor ingen APM

Én udvidelse, én fil. Ingen afhængighedskæder.

INGEN APM NØDVENDIG. Download og nyd. Det bliver ikke enklere. Opdater blot Adobe AIR SDK. Har du brug for hjælp, er vi her.

Hvorfor vores native udvidelser til Adobe AIR leveres uden pakkehåndtering, uden kernebibliotek og uden hjælpe-ANE'er, og hvad det ændrede i vores egne apps.

45 → 13 ANEs−6.5 MB on Android−5.9 MB on iOSAbout 2× faster start

Problemet med afhængighedskæder

Mange AIR-udvidelser, der installeres med en pakkehåndtering (APM), kommer ikke alene. De trækker en kæde af hjælpe-ANE'er med sig: et delt kernebibliotek, Android-supportbiblioteker, Google Play-tjenester, Firebase samt netværks- og billedbiblioteker. Ofte er disse hjælpere kun med, fordi en anden udvidelse har brug for dem.

Hver eneste af disse ANE'er pakkes ind i din app og indlæses, når den starter, uanset om din app bruger funktionen eller ej. Appen bliver større, starter langsommere og laver mere arbejde i baggrunden.

Hvad vi målte i vores egne apps

Vores apps streamer live video og tovejsstemme, ofte fra ældre telefoner og tablets. I 2026 erstattede vi alle tredjepartsudvidelser i dem med vores egne selvstændige udvidelser og sammenlignede resultaterne på rigtige enheder:

Udvidelser i Android-appen45, heraf 35 fra tredjepart, de fleste hjælpe-ANE'er → 13, alle vores egne
ApplikationsbeskrivelseAndroid: 197 → 133 linjer (manifesttilføjelser 117 → 85), iOS: 161 → 126 linjer. Færre manifestposter at vedligeholde og færre ting, der kan gå i stykker
Appstørrelse−6,5 MB på Android (−10 %), −5,9 MB på iOS (−14 %)
Appens opstartomkring dobbelt så hurtig
Baggrundsarbejdeingen analyse- eller hjælpebiblioteker, der kører ved siden af streamen: mere CPU og båndbredde tilbage til video og stemme, hvilket betyder mest på ældre enheder

Konflikter og opdateringspres

Når flere udvidelser deler de samme hjælpe-ANE'er, skal deres versioner passe sammen. En ny version af én udvidelse kræver ofte nye versioner af de delte hjælpere og derefter af alle andre udvidelser, der bruger dem.

Resultatet: opdateringer, du ikke havde brug for, versionskonflikter ved build, og hver kombination skal testes igen på hver platform. Det er arbejde, der ikke gør din app det mindste bedre.

Vores tilgang: selvstændige udvidelser

At pakke platformens biblioteker ind i en tynd skal og hænge en række hjælpe-ANE'er på den er den hurtigere vej til mange udvidelser. At bygge hver udvidelse komplet og selvstændig kræver langt mere arbejde: hver enkelt skal have præcis det med, den har brug for, testes for sig på hver platform og stadig fungere ved siden af alle de andre. Vi valgte det arbejde, så du ikke skal bære konsekvenserne i din app.

  • Én fil pr. funktion. Hver udvidelse er én enkelt ANE. Intet kernebibliotek, ingen hjælpe-ANE'er, ingen pakkehåndtering.
  • Kun det, funktionen har brug for. Hvor et platformsbibliotek er nødvendigt, f.eks. Google Play Billing eller Firebase Cloud Messaging til push på Android, tilføjer buildet automatisk præcis det bibliotek. Intet andet.
  • Uafhængige opdateringer. Når du opdaterer én udvidelse, tvinges du aldrig til at opdatere en anden.
  • Gennemprøvet i produktion. Hver udvidelse kører i vores egne apps på iOS, Android og macOS og er testet på nuværende og ældre enheder.

Tilføj udvidelsens ID til din applikationsdescriptor, kopiér filen ind i dit projekt, færdig. Se alle udvidelser · Priser

Kontakt

Vil du væk fra afhængighedskæder?

Vi erstattede dem trin for trin i vores egne apps. Hvis du vil gøre det samme i din AIR-app, hører vi gerne fra dig.

[email protected]