Vad är filformatet APK?
En fil med filändelsen .apk innehåller ett komprimerat arkiv med en applikation, ett spel eller firmware för Android-systemet. APK-paket är byggda på containerformatet ZIP/JAR, vilket innebär att vilket standardverktyg för arkiv som helst kan öppna och inspektera deras innehåll. Google Play tillämpade ursprungligen en gräns på 100 MB för .apk-nedladdningar, med upp till två expansionsfiler på upp till 2 GB vardera för ytterligare resurser; sedan augusti 2021 kräver Google Play att nya appar publiceras som .AAB (Android App Bundles), vilka genererar enhetsoptimerade split-APK:er vid installationstillfället snarare än att leverera ett enda monolitiskt paket.
Struktur för APK-fil
Strukturen för APK-filer är baserad på JAR-arkiv - de kan innehålla följande undermappar och filer:
res- med en beskrivning av resurserna i okompilerad form,lib- innehåller kompilerade källor och applikationsbibliotek, uppdelade efter olika beräkningsplattformar (t.ex.arm64-v8a,x86_64),META-INF- med filer som innehåller information om paketet, till exempel filenMANIFEST.MFeller certifikat,assets- som innehåller olika resurser som används av appen,classes.dex- kompilerad Dalvik/ART-bytecode som körs av Android-runtimemiljön,AndroidManifest.xml- binärkodat manifest som deklarerar appens behörigheter, komponenter och SDK-krav,resources.arsc- förkompilerad resurstabell som mappar ID:n till strängar, layouter och «drawables».
Android Package-filer används för att skapa och distribuera program för mobila plattformar som körs på Android-systemet. Innehållet i .apk-filer kan packas upp med de flesta dekomprimeringsprogram som stöder ZIP-komprimering, eller inspekteras genom att helt enkelt byta namn på filen till .zip. För att bibehålla integriteten skyddas paket av APK Signature Scheme v2/v3 (och v4 för inkrementella uppdateringar), och installationen nekas om signaturen inte stämmer överens. Att installera .apk-paket från källor utanför Play Store är som standard inte tillåtet - användare måste aktivera behörigheten Installera okända appar i Android-inställningarna, eller skicka paketet via adb install app.apk. Appar som är för stora för en enskild .apk kan distribueras som .XAPK, vilket buntar en bas-APK med en eller flera split-APK:er i ett enda arkiv.
Säkerhet & trygghet
RISK: HIGHAPK är den främsta vektorn för skadlig kod på Android: «sideloading» kringgår skanning från Google Play Protect. Checklista för användare: installera endast från betrodda källor (Google Play, F-Droid, APKMirror - som verifierar signaturer mot utvecklarens), kontrollera att begärda behörigheter matchar appens syfte, installera aldrig en APK som kommit oväntat via chatt/SMS («smishing»-kampanjer), och jämför appens signatur vid uppdatering. Tricket att byta namn till .zip låter dig inspektera innehållet före installation.
Formatdetaljer
i ett nötskalProgram som öppnar APK-filer
Tekniska detaljer
djup specifikation| Kodning | Binär |
| Byteordning | Little-endian |
| Container | ZIP-arkiv (även giltig som JAR) |
| Komprimering | DEFLATE per post; justeringskänsliga poster lagras okomprimerade (STORED-metoden) och är «zipaligned» |
| Signering / integritet | APK Signature Scheme v2/v3 (block infogat före ZIP central directory); v4 för inkrementella uppdateringar på enheten; installation nekas vid signaturfel |
| Magic bytes | 50 4B 03 04 - standard ZIP «PK» lokal filheader vid offset 0; skiljer sig från vanlig ZIP genom närvaron av AndroidManifest.xml och classes.dex |
| Interna filer | AndroidManifest.xml, classes.dex (+ classes2.dex …), resources.arsc, res/, lib/, assets/, META-INF/ |
| Bytecode | Dalvik Executable (DEX) i classes.dex - kompilerad från Java/Kotlin-källkod, körs av ART (Android Runtime) |
| Justering | zipalign tvingar fram 4-byte-gränser för okomprimerade poster; Android 15+ siktar på 16 KB sidjustering |
| Manifestformat | Binärkodad XML (AXML) som deklarerar paketnamn, behörigheter, Activity/Service/Provider-komponenter, minSdkVersion, targetSdkVersion |
| Layout för inbyggda bibliotek | lib/<ABI>/ undermapp per arkitektur: arm64-v8a, armeabi-v7a, x86, x86_64 |
| Resurstabell | resources.arsc - platt binärfil som mappar heltals-ID:n för resurser till strängar, layouter, drawables och konfigurationsvarianter |
| Typisk storlek | 2 MB - 1,5 GB; bas-APK:er för appar är vanligtvis 5-100 MB; spel med buntade resurser når det övre intervallet |
| MIME-typ | application/vnd.android.package-archive |
| Plattform | Android (infödd); körbar på Windows, Linux, macOS via emulatorer (BlueStacks, Android Studio AVD, Waydroid) |
| Släppt | 2008 (Android 1.0) |
| Senaste version | APK Signature Scheme v3 (Android 9, 2018); v4 incremental (Android 11, 2020) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | source.android.com |