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-appen | 45, heraf 35 fra tredjepart, de fleste hjælpe-ANE'er → 13, alle vores egne |
| Applikationsbeskrivelse | Android: 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 opstart | omkring dobbelt så hurtig |
| Baggrundsarbejde | ingen 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