APK vs App Bundle: Varför ändrar Google Android-appformat?

0
147
quietbits/Shutterstock.com

Android-appar har historiskt distribuerats som APK-filer (Android-paket). En APK innehåller en sammanställd version av en app, tillsammans med kritiska mediaressurser som ikoner och ljud. De innehåller också en manifestfil, som ger appinformation till Android-systemet och en uppsättning certifikat och signeringsnycklar som verifierar utgivarens identitet.

I maj 2018 lanserade Google en ny appförpackning format för att åtgärda några av bristerna med APK-filer. Android App Bundles (AAB) har samma roll som APK-filer men med betydande skillnader i implementering.

Vid Google I/O 2021 meddelade Google att AAB kommer att bli standardformatet för Android-appen. Från slutet av augusti kommer Play Store att kräva att nya apppublikationer skickas in som AAB. Slutanvändare som bara använder Play Store behöver inte göra någonting. För utvecklare är berättelsen lite mer komplicerad.

App Bundle Benefits

AAB introducerades ursprungligen som ett sätt att lösa några av de vanliga förpackningsutmaningarna i Android-ekosystemet. Android körs på tusentals enheter som täcker ett stort antal skärmstorlekar, prestanda baslinjer och CPU-arkitekturer. APK-formatet kan inte anpassas till denna mångfald eftersom varje paket innehåller alla appens resurser.

Om du installerar en app på din telefon behöver du inte verkligen för att ladda ner högupplösta tablettvarianter av grafiken. Men med APK kommer du normalt att få alla variationer, vilket orsakar större nedladdningar och ökad lagringsanvändning. Om en utvecklare vill erbjuda mer strömlinjeformade byggnader måste de kompilera och signera flera olika APK-filer manuellt.

Annonsering

App-paket har en annan inställning. Enligt design buntar de & # 8220; flera olika versioner av en app i ett logiskt paket. Play Store skickar sedan endast relevanta bitar till varje enhet som begär en installation. Det kommer att producera rätt paket på begäran för varje användare, så en amerikansk användare med en 10-tums Intel-enhet får en annan nedladdning till en tysk person med en 5-tums ARM-telefon. Avgörande är att enheter fortfarande får APK-filer & # 8211; användare kommer aldrig någonsin att interagera direkt med ett App-paket. Skillnaden är att APK skapas dynamiskt i molnet.

Apppaket drar också nytta av enklare laddning av tilläggsmoduler och förbättrat stöd för stora tillgångar som spelinnehåll. Enligt Google resulterar allt detta vanligtvis i 15% minskning av nedladdningsstorleken jämfört med samma app som distribueras som en APK.

Vad & # 8217; s Ändra för APK-filer?

Google kommer gradvis att avveckla stöd för APK-filer från augusti 2021. Nya appar som skickas till Play Store måste utfärdas som ett apppaket. Befintliga APK-baserade appar stöds fortfarande och utvecklare kommer att kunna fortsätta att ge ut uppdateringar. Dessa appar beskrivs som & # 8220; för närvarande undantagna, & # 8221; föreslår uppdateringar kan behöva släppas som AAB i framtiden.

Enligt Google görs ändringen så att fler användare kommer att dra nytta av App Bundle-fördelarna. Ur ett typiskt slutanvändares perspektiv är det svårt att argumentera med löftet från App-paket: mindre nedladdningar och minskat lagringsutrymme kommer att välkomnas av många, särskilt de som är på avancerade enheter och långsam internetanslutning. >

Användare på äldre Android-versioner ser inte fördelarna eftersom deras enhet inte kan montera & # 8220; split & # 8221; buntar i en fungerande app. Föråldrade OS-versioner kommer fortfarande att kunna installera App Bundle-appar från Play Store men & # 8211; buntningssystemet kommer att inse att det hanterar en äldre enhet och serverar en vanlig allt-i-ett-APK istället.

Vad sägs om nackdelarna?

Även om rubrikfördelarna är otvivelaktiga har App Bundles en betydande nackdel för både utvecklare och kraftanvändare. Eftersom App Bundle-systemet är inriktat på dynamisk generering i molnet av signerade APK-filer måste utvecklare lämna sina appsigneringsnycklar till Google. I stället för att utvecklare signerar appuppdateringar i sin egen bygginfrastruktur, tar Google ett App-paket och konverterar det till signerade APK-filer själv.

Annons

Signeringsprocessen låter Android-enheter verifiera att uppdateringar kommer från samma utgivare som den för närvarande installerade appen. Det är en kritisk del av ekosystemet som hindrar dåliga aktörer från att producera skadliga appar som tyst skriver över äkta nedladdningar. Google lovar att utvecklare kommer att kunna leverera sina egna nycklar men de måste fortfarande förvaras i Play Store.

Att lita på Google för att lagra signeringsnycklar ger företaget ännu mer kontroll över Android-appdistribution. Alla som lyckats äventyra Play Store kan börja publicera appuppdateringar till utvecklarkonton, eftersom alla signeringsnycklar kommer att centraliseras inom Googles infrastruktur.

Dessutom kan Google nu publicera appuppdateringar, kanske om en regering tvingade det till. Det har redan möjligheten att tyst installera appar på Android-enheter. Nu har den nycklarna till utvecklarriket, den kan uppfylla förfrågningar om att hemligt installera icke godkända uppdateringar av befintliga appar.

Kan en statlig myndighet få Google att installera en modifierad krypterad meddelandeapp på en målanvändares enhet? En sådan begäran kan låta byrån fånga meddelanden utan att målet är något klokare. Appbuntar och signerad värd gör scenariot teoretiskt möjligt.

Risken mildras förmodligen av en & # 8220; kodgenomskinlighet & # 8221; systemet. Detta är tänkt att ge utvecklare och slutanvändare ett sätt att verifiera att nedladdade APK-filer matchar paketet som skickades till Play Store, vilket eliminerar risken för intrång.

Android kontrollerar faktiskt inte kodens transparens signaturer, så det är upp till samhället att bygga ut verktyg kring det. Dessutom är kodgenomskinlighet helt valfri och endast aktiverad när APK innehåller en transparensfil. Eftersom Google redan har de nycklar som behövs för att generera nya APK-filer kan det ta bort koden genomskinlig fil närhelst den vill.

App Bundles och App-butiker från tredje part

App-paket är också ett hot mot Android-ekosystemets öppna natur. Under de senaste åren har Google hävdat en starkare förvaltarroll. App-paket är ytterligare ett slag mot tredjeparts-appbutiker som erbjuder direkta APK-nedladdningar.

Annons

Eftersom utvecklare nu kommer att behöva kompilera App-paket, läggs APK-byggnader bort. Det kan bara ta en tidsfråga innan Google inaktiverar direkt APK-installation helt eller tar bort APK-byggfunktioner från officiella Android Studio-utgåvor.

För tillfället kan utvecklare ladda ner signerade fristående APK-filer från Play Store, efter att de har skickat in App-paket. Dessa APK-filer kommer att kunna laddas upp till appbutiker från tredje part, så det finns ingen omedelbar risk för denna distributionsmodell. Det är fortfarande ett besvär för utvecklaren dock & # 8211; du måste antingen ladda ner dina signerade APK-filer manuellt eller bygga dem separat på din lokala dator.

Google meddelade den obligatoriska övergången till App Bundles bara några dagar efter att Microsoft presenterade Windows 11 med stöd för Android-appar från Amazon App Store. Även om övergången till App Bundles har varit ett par år framåt, kan Googles beslut att göra övergången nu vara avsett att begränsa effekterna av Microsoft/Amazon-partnerskapet, som bara stöder vanliga APK-filer.

Slutsats

Android App Bundles är ett nytt app-kompileringsformat med mycket större effektivitet än en vanlig APK. Även om enheter fortfarande till slut kommer att få en APK, kommer alla att skräddarsys specifikt för OS-versionen, enhetsformfaktorn och den aktiva platsen.

Även om App-paket bör välkomnas av de flesta Android-användare är de inte perfekt lösning för utvecklare och det bredare Android-ekosystemet. App-paketmodellen ger Google mer kontroll över appdistribution, vilket kräver att signeringsnycklar avslöjas som kan göra tvingade appuppdateringar till verklighet samtidigt som de hotar butiksfönster från tredje part.