close

Pakiet aplikacji na Androida

Przejdź do nawigacji Przejdź do wyszukiwania
apk
Ikona formatu APK (2014-2019).png
Rozbudowa ..apk, .xapk, .apks, .apkm
MIME -typ application/vnd.android.package-archive
Deweloper Google
Typ formatu Pakiet aplikacji
Zawiera Android : aplikacje mobilne
Windows 11 : aplikacje komputerowe dla WSA
Rozszerzony z SŁOIK

Android Package (APK) [1]  to format pliku aplikacji Android używany przez system operacyjny Android i wiele innych systemów operacyjnych opartych na Androidzie do dystrybucji i instalowania aplikacji mobilnych , gier mobilnych i oprogramowania pośredniczącego .

Pliki APK można generować i podpisywać z pakietu Android App Bundle [2] .masyn

Przegląd

APK jest podobny do innych pakietów aplikacji, takich jak APPX w systemie Microsoft Windows lub Deb w systemach operacyjnych opartych na Debianie. Aby utworzyć plik APK, program na Androida jest najpierw kompilowany przy użyciu narzędzi takich jak Android Studio [3] lub Visual Studio, a następnie wszystkie jego części są pakowane w pojedynczy plik kontenera. Plik APK zawiera cały połączony kod (na przykład pliki .dex ), a także zasoby, zasoby, certyfikaty i plik manifestu. Podobnie jak w przypadku wielu formatów plików, pliki APK mogą mieć dowolną wybraną nazwę, ale rozszerzenie pliku [4] [5] [6] może być wymagane do rozpoznania pliku jako aplikacji na Androida .

Większość implementacji zabezpieczeń Androida umożliwia użytkownikom ręczną instalację plików APK dopiero po włączeniu ustawienia „Nieznane źródła”, które umożliwia instalację ze źródeł innych niż zaufane, takich jak Google Play . Ma to na celu uniemożliwienie niedoświadczonym użytkownikom różnych klas programów szpiegujących i trojanów , które podszywają się pod legalne aplikacje. Włączenie funkcji instalacji z nieznanych źródeł może nastąpić z wielu powodów, na przykład podczas tworzenia aplikacji, w celu zainstalowania aplikacji, których nie ma w sklepie, lub w celu zainstalowania starszej wersji istniejącej aplikacji [7] .

Używaj w innych systemach operacyjnych

Podczas wydarzenia podczas ogłoszenia systemu Windows 11 w czerwcu 2021 r. firma Microsoft zademonstrowała nowy podsystem Windows dla Androida ( Windows Subsystem for Android, WSA ), który implementuje wsparcie dla Android Open Source Project (AOSP) i pozwala użytkownikom uruchamiać aplikacje na Androida w systemie Windows. Microsoft potwierdził, że użytkownicy będą mogli pobierać aplikacje sideload na Androida (nie wydane oficjalnie), a także je instalować [8] .

Zawartość pakietu aplikacji

Plik APK to archiwum ZIP , które zwykle zawiera następujące pliki i katalogi:

  • Katalog META-INF:
    • MANIFEST.MF: plik manifestu
    • Certyfikat aplikacji.
    • CERT.SF: Lista zasobów i sygnatura SHA-1 odpowiednich ciągów w MANIFEST.MF; Na przykład:
      Wersja podpisu: 1,0
      Utworzony przez: 1.0 (Android)
      SHA1-Przegląd-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
      ...
      Nazwa: res/layout/exchange_component_back_bottom.xml
      SHA1-Skrót: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
      Nazwa: res/drawable-hdpi/icon.png
      SHA1-Streszczenie: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
      
  • lib: katalog zawierający skompilowany kod zależny od platformy; lib jest podzielony na kilka podkatalogów:
    • armeabi-v7a: skompilowany kod tylko dla wszystkich procesorów opartych na ARMv7 i nowszych
    • arm64-v8a: skompilowany kod tylko dla wszystkich procesorów opartych na ARMv8 arm64 i wyższych [9]
    • x86: skompilowany kod tylko dla procesorów x86
    • x86_64: skompilowany kod tylko dla procesorów x86-64
    • mipsi armeabiprzestarzałe od NDK r17 [10] [11]
  • res: katalog zawierający zasoby nieskompilowane do pliku resources.arsc (patrz poniżej).
  • assets: katalog zawierający zasoby aplikacji, które można pobrać za pomocą AssetManager.
  • AndroidManifest.xml: opcjonalny plik manifestu systemu Android opisujący nazwę, wersję, uprawnienia i biblioteki aplikacji. Ten plik może być w binarnym formacie XML systemu Android, który można przekonwertować na tekst XML czytelny dla człowieka za pomocą narzędzi takich jak AXMLPrinter2, apktool lub Androguard.
  • classes.dex: Klasy skompilowane do formatu pliku wykonywalnego dalvik rozumianego przez maszynę wirtualną Dalvik i środowisko uruchomieniowe systemu Android .
  • resources.arsc: plik zawierający wstępnie skompilowane zasoby, takie jak binarny kod XML.

Notatki

  1. Podstawy  aplikacji . programiści Androida . Pobrano 3 grudnia 2018 r. Zarchiwizowane z oryginału w dniu 21 listopada 2020 r.
  2. Piotra. Google odchodzi od pakietów APK w  Sklepie Play . The Verge (30 czerwca 2021). Pobrano 15 sierpnia 2021. Zarchiwizowane z oryginału w dniu 4 sierpnia 2021.
  3. Studio  aplikacji . programiści Androida . Pobrano 11 września 2021. Zarchiwizowane z oryginału 12 września 2021.
  4. Wewnątrz Android Application Framework (wideo). Witryny Google . Pobrano 11 września 2021. Zarchiwizowane z oryginału w dniu 24 grudnia 2011.
  5. Hatem Ben Yacoub. Wskazówki: Jak zainstalować pliki apk na emulatorze Androida . Magazyn Open Ha (20 kwietnia 2018). Pobrano 17 lipca 2021. Zarchiwizowane z oryginału w dniu 26 maja 2012.
  6. Struktura plików pakietu Android (APK) . Numer SDN telefonu . Sieć programistów OPhone (17 listopada 2010). Zarchiwizowane z oryginału w dniu 8 lutego 2011 r.
  7. Nieznane źródła: wszystko, co musisz wiedzieć! . Android Central (27 lipca 2018 r.). Pobrano 11 września 2021. Zarchiwizowane z oryginału 1 września 2021.
  8. Parmar. Microsoft potwierdza, że ​​aplikacje na Androida będą działać na wszystkich komputerach z systemem Windows 11 . Najnowsze Windows (27 czerwca 2021 r.). Pobrano 28 czerwca 2021. Zarchiwizowane z oryginału 27 czerwca 2021.
  9. Zarządzanie ABI | programiści Androida . programista.android.com _ Pobrano : 2018-06-16.11 . 2022 . Zarchiwizowane 31 maja 2019 r.
  10. Interfejsy ABI systemu Android | Android  NDK . programiści Androida . — „Uwaga: Historycznie NDK obsługiwał ARMv5 (armeabi) oraz 32-bitowe i 64-bitowe MIPS, ale obsługa tych ABI została usunięta w NDK r17”. Pobrano 14 sierpnia 2020 r. Zarchiwizowane z oryginału 8 kwietnia 2019 r.
  11. Dan. Dziennik zmian r17  (angielski) . GitHub (5 września 2018 r.). - „Obsługa ARMv5 (armeabi), MIPS i MIPS64 została usunięta. Próba zbudowania któregokolwiek z tych ABI zakończy się błędem.". Pobrano 14 sierpnia 2020 r. Zarchiwizowane z oryginału 28 sierpnia 2020 r.