close

Android-applicatiepakket

Ga naar navigatie Ga naar zoeken
APK
APK-formaat icoon (2014-2019).png
Verlenging ..apk, .xapk, .apks, .apkm
MIME -type application/vnd.android.package-archive
Ontwikkelaar Google
Formaattype Verpakte toepassing:
bevat Android : Mobiele apps
Windows 11 : Desktop-apps voor WSA
Uitgebreid van KAN

Android Package (APK) [1]  is een Android-toepassingsbestandsindeling die wordt gebruikt door het Android-besturingssysteem en vele andere op Android gebaseerde besturingssystemen voor het distribueren en installeren van mobiele apps , mobiele games en middleware .

APK-bestanden kunnen worden gegenereerd en ondertekend vanuit de Android App Bundle [2] .masyn

Overzicht

Een APK is vergelijkbaar met andere applicatiepakketten zoals APPX op Microsoft Windows of Deb op op Debian gebaseerde besturingssystemen. Om een ​​APK-bestand te maken, wordt eerst een Android-programma gecompileerd met behulp van tools zoals Android Studio [3] of Visual Studio, en vervolgens worden alle onderdelen ervan in een enkel containerbestand verpakt. Een APK bevat alle gekoppelde code (zoals .dex-bestanden ), evenals bronnen, activa, certificaten en een manifestbestand. Zoals het geval is met veel bestandsindelingen, kunnen APK-bestanden elke gewenste naam hebben, maar de bestandsextensie [4] [5] [6] kan nodig zijn om het bestand als een Android-applicatie te herkennen .

Bij de meeste Android-beveiligingsimplementaties kunnen gebruikers alleen APK-bestanden handmatig installeren nadat ze de instelling "Onbekende bronnen" hebben ingeschakeld, waardoor installatie vanaf andere bronnen dan vertrouwde bronnen zoals Google Play mogelijk is . Dit wordt gedaan om te voorkomen dat onervaren gebruikers van verschillende soorten spyware en Trojaanse paarden zich voordoen als legitieme toepassingen. Het inschakelen van de functie installeren vanaf onbekende bronnen kan om vele redenen worden gedaan, zoals tijdens app-ontwikkeling, om apps te installeren die niet in de winkel zijn, of om een ​​oudere versie van een bestaande app te installeren [7] .

Gebruik op andere besturingssystemen

Tijdens een evenement tijdens de aankondiging van Windows 11 in juni 2021, demonstreerde Microsoft een nieuw Windows-subsysteem voor Android ( Windows-subsysteem voor Android, WSA ), dat ondersteuning voor het Android Open Source Project (AOSP) implementeert en gebruikers in staat stelt om Android-applicaties uit te voeren op Windows. Microsoft heeft bevestigd dat gebruikers Android-sideload-apps (niet officieel vrijgegeven) kunnen downloaden en installeren [8] .

Inhoud van een pakketapplicatie

APK-bestand is een ZIP - archief dat meestal de volgende bestanden en mappen bevat:

  • Directory META-INF:
    • MANIFEST.MF: manifest bestand
    • Aanvraag certificaat.
    • CERT.SF: Lijst van bronnen en SHA-1 handtekening van corresponderende strings in MANIFEST.MF; Bijvoorbeeld:
      Handtekening-versie: 1.0
      Gemaakt door: 1.0 (Android)
      SHA1-Digest-manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
      ...
      Naam: res/layout/exchange_component_back_bottom.xml
      SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
      Naam: res/drawable-hdpi/icon.png
      SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
      
  • lib: directory met gecompileerde platformafhankelijke code; lib is verdeeld in verschillende submappen:
    • armeabi-v7a: alleen gecompileerde code voor alle processors op basis van ARMv7 en hoger
    • arm64-v8a: alleen gecompileerde code voor alle processors op basis van ARMv8 arm64 en hoger [9]
    • x86: gecompileerde code alleen voor x86 -processors
    • x86_64: gecompileerde code alleen voor x86-64 -processors
    • mipsen armeabiverouderd sinds NDK r17 [10] [11]
  • res: map met bronnen die niet zijn gecompileerd in resources.arsc (zie hieronder).
  • assets: directory met applicatie-assets die kunnen worden opgehaald met AssetManager.
  • AndroidManifest.xml: een optioneel Android-manifestbestand dat de naam, versie, machtigingen en bibliotheken van de toepassing beschrijft. Dit bestand kan in Android binaire XML-indeling zijn, die kan worden geconverteerd naar voor mensen leesbare XML-tekst met behulp van tools zoals AXMLPrinter2, apktool of Androguard.
  • classes.dex: Klassen gecompileerd in een uitvoerbaar dalvik-bestandsformaat dat begrepen wordt door de virtuele Dalvik-machine en de Android-runtime .
  • resources.arsc: Een bestand met vooraf gecompileerde bronnen, zoals binaire XML.

Opmerkingen

  1. Basisprincipes  van de toepassing . Android-ontwikkelaars . Ontvangen 3 december 2018. Gearchiveerd van het origineel op 21 november 2020.
  2. Pieters . Google stapt af van APK's in de Play  Store . The Verge (30 juni 2021). Ontvangen op 15 augustus 2021. Gearchiveerd van het origineel op 4 augustus 2021.
  3. Applicatiestudio  . _ Android-ontwikkelaars . Ontvangen op 11 september 2021. Gearchiveerd van het origineel op 12 september 2021.
  4. Binnen het Android Application Framework (video). Google-sites . Ontvangen 11 september 2021. Gearchiveerd van het origineel op 24 december 2011.
  5. Hatem Ben Yacoub. Tips: Hoe apk-bestanden op Android Emulator te installeren . Open Ha Magazine (20 april 2018). Ontvangen 17 juli 2021. Gearchiveerd van het origineel op 26 mei 2012.
  6. De structuur van Android Package (APK)-bestanden . Telefoon SDN . OPhone Software Developer Network (17 november 2010). Gearchiveerd van het origineel op 8 februari 2011.
  7. Onbekende bronnen: alles wat u moet weten! . Android Central (27 juli 2018). Ontvangen op 11 september 2021. Gearchiveerd van het origineel op 1 september 2021.
  8. Parmar . Microsoft bevestigt dat Android-apps op alle Windows 11-pc's zullen draaien . Windows Nieuwste (27 juni 2021). Ontvangen op 28 juni 2021. Gearchiveerd van het origineel op 27 juni 2021.
  9. ABI-beheer | Android-ontwikkelaars . ontwikkelaar.android.com _ Ontvangen : 2018-06-16.11 . 2022 . Gearchiveerd 31 mei 2019.
  10. Android ABI's | Android  NDK . Android-ontwikkelaars . — "Opmerking: in het verleden ondersteunde de NDK ARMv5 (armeabi) en 32-bits en 64-bits MIPS, maar de ondersteuning voor deze ABI's werd verwijderd in NDK r17." Ontvangen 14 augustus 2020. Gearchiveerd van het origineel op 8 april 2019.
  11. Dan . Changelog r17  (Engels) . GitHub (5 september 2018). - "Ondersteuning voor ARMv5 (armeabi), MIPS en MIPS64 is verwijderd. Als u een van deze ABI's probeert te bouwen, resulteert dit in een fout.". Ontvangen 14 augustus 2020. Gearchiveerd van het origineel op 28 augustus 2020.