Apk: Unterschied zwischen den Versionen

Aus Android Wiki
Keine Bearbeitungszusammenfassung
K ("Android Package" ganz groß geschrieben)
 
(30 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Eine '''APK''' ('''A'''ndroid '''p'''ac'''k'''age) Datei enthält eine für Android entwickelte [[App]].
{{DISPLAYTITLE:Android package (APK) Datei}}
<!--- Better Google Page Rank, do not delete! was ist eine Apk? --->
 
== Was ist eine APK ==
Eine '''APK'''-Datei ('''A'''ndroid '''P'''ac'''k'''age) ist eine Installations-Datei für eine Android-[[App]]. Es handelt sich dabei um eine ZIP-Datei mit der Datei-Endung <code>.apk</code> statt <code>.zip</code>, die u.a. den Bytecode der App, Ressourcen-Dateien (z.B. Grafikdateien oder Sound-Clips) sowie Metadaten enthält.
Eine .apk-Datei enthält die Bestandteile einer für Android entwickelten [[App]], die man in einem kompatiblen Androidsystem durch anklicken installiert werden kann. Die .apk-Datei ist aus technischer Sicht eine Archiv-Datei, ähnlich wie ein .zip-File. Das bedeutet, die Datei ist eigentlich eine Art Ordner, der die für die App benötigten Bestandteile, also den eigentlichen Programm-Teil, sowie die Meta-Daten enthält, aber nicht wie ein Ordner, sondern wie eine eigenständige Datei behandelt wird.  
 
Durch das installieren von Apps, kann man das System durch weitere Funktionen erweitern. Siehe dazu den Artikel [[App]].
Mit dem [[Android App Bundle]] gibt es ein Nachfolger-Format mit Datei-Endung  ''.aab'', aus dem eine APK-Datei, die nur für einen bestimmten Geräte-Typ benötigten Dateien enthält, erzeugt wird.<ref>{{Cite web|url=https://heise.de/-4045935|title=Android App Bundle: Googles neues Format zur Veröffentlichung von Android-Apps|author=Björn Bohn|accessdate=2018-05-09|date=2018-05-09|publisher=heise.de}}</ref>


== APK-Datei erstellen ==
== APK-Datei erstellen ==
Eine APK-Datei kann man durch das entwickeln einer App erstellen umd die App zum Beispiel über den [[Android Market]] zu veröffentlichen. Die verwendete Programmiersprache ist dabei meist Java, aus dem Software-Code werden zuerst mit einem normalen Java-Compiler .class-Dateien mit Java-Bytecode erstellt, die anschließend mit dem Tool '''dex''' aus dem Android SDK in .dex-Dateien mit [[Dalvik VM|Dalvik]]-Bytecode umgewandelt werden. Dieser Bytecode kann vom Android-Betriebssystem ausgeführt werden und ist gegenüber normalem Java-Bytecode eher für Smartphones bzw. langsame Prozessoren und geringen Arbeitsspeicher optimiert. Die so entstandenen .dex-Dateien werden mit dem apk-Packtool (ähnlich zu '''jar''') zusammen mit benötigten Ressourcen (z. B. Bilder, Icons, Texte und Metainformationen) in ein einziges APK-Archiv gepackt.
Eine APK-Datei kann man durch das Entwickeln einer App erstellen und die App zum Beispiel über den [[Google Play Store]] veröffentlichen. Die verwendete Programmiersprache ist dabei meist [[Kotlin]] oder [[Java]]. Aus dem Quellcode wird mit einem Java-Compiler Bytecode erzeugt (welcher in <code>.class</code>-Dateien gespeichert wird), die anschließend mit dem Tool '''dex''' oder [[D8]] aus dem [[Android SDK]] zu [[Dalvik VM|Dalvik]]-Bytecode umgewandelt werden (<code>.dex</code>-Dateien). Dieser Bytecode kann vom Android-Betriebssystem ausgeführt werden und ist gegenüber Java-Bytecode für die besonderen Anforderungen in Smartphones optimiert.
 
Die so entstandenen <code>.dex</code>-Dateien werden mit dem ''apk-Pack-Tool'' (ähnlich zu '''jar''') zusammen mit benötigten Ressourcen (z. B. Bilder, Icons und Texte) und der [[Manifest|Manifest-Datei]] (z. B. für die Angabe von App-[[Berechtigungen]]) in ein APK-Archiv gepackt.
 
Das Android-Betriebssystem kann bei der Installation einer App Informationen wie Namen, Icon, Entwickler aus dem APK-Archiv holen und bei der Ausführung die enthaltenen <code>.dex</code>-Dateien und Ressourcen an die [[Dalvik VM]] übergeben.
 
== Verteilen von APK-Dateien ==
 
Neben der Installation von APK-Dateien während der Entwicklung einer App (meist über die gewählte Entwicklungsumgebung), werden APK-Dateien auch für die Installation auf ''Endgeräten'' angeboten, zum Beispiel wenn eine App unter Bekannten geteilt werden soll.
 
Mit der App {{PlayStore|com.ext.ui|Apk Extractor}} können die, auf einem Android-Gerät installierten, Apps als APK-Dateien in einen bestimmten Ordner auf dem Gerät abgelegt werden. Der ''Apk Extractor'' ist kostenlos und erfordert keinen [[Root]]-Zugang.
 
[[F-Droid]] ist ein [[Alternative_Markets|alternativer App-Store]], der nur kostenlose Open-Source-Apps im Angebot anbietet. Der App-Katalog kann auch auf der Webseite des Projekts durchsucht werden,<ref>{{Cite web|url=https://f-droid.org/repository/browse/|title=Browse-Funktion auf f-droid.org|language=de|accessdate=2015-08-15}}</ref> wobei alle angebotenen Apps auch als APK-Datei zur Installation heruntergeladen werden können.
 
Neben ''F-Droid'', welcher ausschließlich ''freie'' Software anbietet, gibt es noch weitere Webseiten, die APK-Dateien zum Download anbieten, u.A. [[APKMirror.com]] oder 
 
== APK Datei mit der ADB verknüpfen ==
Will man des Öfteren eine APK-Datei auf dem Androidgerät installieren und dies nicht immer umständlich mit dem Verschieben auf den internen Speicher und anschließendem manuellen Installieren machen, bietet es sich an, die APK der App mittels [[ADB]] zu installieren. Hierfür muss natürlich USB-Debugging aktiviert und die passenden [[USB-Treiber]] installiert sein. Anschließend kann man die APK-Datei mit folgendem Befehl (in einem Kommandozeilenfenster) auf dem Gerät installieren :
<pre>
adb install {APK-Name}
</pre>
Der Platzhalter ''{APK-Name}'' muss dabei durch den Pfad und den Namen der zu installierenden APK-Datei ersetzt werden. Will man eine Reihe von Apps installieren, oder sich den Weg mit dem Öffnen eines Kommandozeilenfensters sparen, kann man die APK-Dateierweiterung unter Windows auch mit dem ADB-Befehl verknüpfen. Dazu öffnet man ein Kommandozeilenfenster (<nowiki>[WINDOWS] + [R] -> ''cmd'' eingeben und mit [ENTER] bestätigen</nowiki>) und gibt nacheinander diese Befehle ein:
<pre>
assoc .apk=Android-App
ftype Android-App=C:\Pfad\zur\adb.exe install "%1"
</pre>
Als Platzhalter ''C:\Pfad\zur\adb.exe'' trägt man den Pfad zu der adb.exe ein, die sich normalerweise im ''platform-tools''-Ordner der [[Android SDK]] befindet. Nachdem man die Befehle ausgeführt hat, wird jede APK-Datei auf dem verbundenen Androidgerät installiert, insofern USB-Debugging eingeschalten ist.<ref>{{Internetquelle|url=http://www.android-hilfe.de/android-allgemein/461679-app-via-adb-per-doppelklick-installieren.html#post6249302|titel=App via ADB per Doppelklick installieren|autor=|hrsg=|werk=|datum=|sprache=|archiv-url=http://web.archive.org/web/20131024013246/http://www.android-hilfe.de/android-allgemein/461679-app-via-adb-per-doppelklick-installieren.html|archiv-datum=2013-10-24|zugriff=2013-08-22|offline=1}}</ref>
 
==Trivia==
Software-Pakete für die Linux-Distribution ''Alpine Linux''<ref>{{Cite web | url = https://alpinelinux.org/about/ | title = Seite "About" auf Homepage von Alpine Linux | accessdate = 2019-08-02 | publisher = Alpine Linux | language = en}}</ref> haben auch die Datei-Endung <code>.apk</code>, was für "Alpine Package" steht. Bei diesen auch "A-Pack" genannten Dateien handelt es sich um signierte <code>tar.gz</code>-Dateien, die neben den zu installierenden Dateien noch Konfigurations- und Metadaten enthalten.<ref>{{Cite web | url = https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management | title = Alpine Linux package management | accessdate = 2019-08-02 | publisher = wiki.alpinelinux.org | language = en}}</ref> Dieses Dateiformat hat aber nichts mit den APK-Dateien für Android zu tun.


== Funktionsweise ==
== Einzelnachweise ==
Das Android-Betriebssystem kann bei der Installation einer App Informationen wie Namen, Icon, Entwickler aus dem APK-Archiv holen und bei der Ausführung die enthaltenen .dex-Dateien und Ressourcen an die [[Dalvik VM]] übergeben.
<references />


[[Kategorie:Allgemein]]
[[Kategorie:Allgemein]]
[[Kategorie:Abkürzungen]]
[[Kategorie:Apps]]
[[Kategorie:HowTo]]
[[Kategorie:Tipps]]

Aktuelle Version vom 13. September 2020, 13:35 Uhr


Eine APK-Datei (Android Package) ist eine Installations-Datei für eine Android-App. Es handelt sich dabei um eine ZIP-Datei mit der Datei-Endung .apk statt .zip, die u.a. den Bytecode der App, Ressourcen-Dateien (z.B. Grafikdateien oder Sound-Clips) sowie Metadaten enthält.

Mit dem Android App Bundle gibt es ein Nachfolger-Format mit Datei-Endung .aab, aus dem eine APK-Datei, die nur für einen bestimmten Geräte-Typ benötigten Dateien enthält, erzeugt wird.[1]

APK-Datei erstellen[Bearbeiten | Quelltext bearbeiten]

Eine APK-Datei kann man durch das Entwickeln einer App erstellen und die App zum Beispiel über den Google Play Store veröffentlichen. Die verwendete Programmiersprache ist dabei meist Kotlin oder Java. Aus dem Quellcode wird mit einem Java-Compiler Bytecode erzeugt (welcher in .class-Dateien gespeichert wird), die anschließend mit dem Tool dex oder D8 aus dem Android SDK zu Dalvik-Bytecode umgewandelt werden (.dex-Dateien). Dieser Bytecode kann vom Android-Betriebssystem ausgeführt werden und ist gegenüber Java-Bytecode für die besonderen Anforderungen in Smartphones optimiert.

Die so entstandenen .dex-Dateien werden mit dem apk-Pack-Tool (ähnlich zu jar) zusammen mit benötigten Ressourcen (z. B. Bilder, Icons und Texte) und der Manifest-Datei (z. B. für die Angabe von App-Berechtigungen) in ein APK-Archiv gepackt.

Das Android-Betriebssystem kann bei der Installation einer App Informationen wie Namen, Icon, Entwickler aus dem APK-Archiv holen und bei der Ausführung die enthaltenen .dex-Dateien und Ressourcen an die Dalvik VM übergeben.

Verteilen von APK-Dateien[Bearbeiten | Quelltext bearbeiten]

Neben der Installation von APK-Dateien während der Entwicklung einer App (meist über die gewählte Entwicklungsumgebung), werden APK-Dateien auch für die Installation auf Endgeräten angeboten, zum Beispiel wenn eine App unter Bekannten geteilt werden soll.

Mit der App Apk Extractor Play Store können die, auf einem Android-Gerät installierten, Apps als APK-Dateien in einen bestimmten Ordner auf dem Gerät abgelegt werden. Der Apk Extractor ist kostenlos und erfordert keinen Root-Zugang.

F-Droid ist ein alternativer App-Store, der nur kostenlose Open-Source-Apps im Angebot anbietet. Der App-Katalog kann auch auf der Webseite des Projekts durchsucht werden,[2] wobei alle angebotenen Apps auch als APK-Datei zur Installation heruntergeladen werden können.

Neben F-Droid, welcher ausschließlich freie Software anbietet, gibt es noch weitere Webseiten, die APK-Dateien zum Download anbieten, u.A. APKMirror.com oder

APK Datei mit der ADB verknüpfen[Bearbeiten | Quelltext bearbeiten]

Will man des Öfteren eine APK-Datei auf dem Androidgerät installieren und dies nicht immer umständlich mit dem Verschieben auf den internen Speicher und anschließendem manuellen Installieren machen, bietet es sich an, die APK der App mittels ADB zu installieren. Hierfür muss natürlich USB-Debugging aktiviert und die passenden USB-Treiber installiert sein. Anschließend kann man die APK-Datei mit folgendem Befehl (in einem Kommandozeilenfenster) auf dem Gerät installieren :

adb install {APK-Name}

Der Platzhalter {APK-Name} muss dabei durch den Pfad und den Namen der zu installierenden APK-Datei ersetzt werden. Will man eine Reihe von Apps installieren, oder sich den Weg mit dem Öffnen eines Kommandozeilenfensters sparen, kann man die APK-Dateierweiterung unter Windows auch mit dem ADB-Befehl verknüpfen. Dazu öffnet man ein Kommandozeilenfenster ([WINDOWS] + [R] -> ''cmd'' eingeben und mit [ENTER] bestätigen) und gibt nacheinander diese Befehle ein:

assoc .apk=Android-App
ftype Android-App=C:\Pfad\zur\adb.exe install "%1"

Als Platzhalter C:\Pfad\zur\adb.exe trägt man den Pfad zu der adb.exe ein, die sich normalerweise im platform-tools-Ordner der Android SDK befindet. Nachdem man die Befehle ausgeführt hat, wird jede APK-Datei auf dem verbundenen Androidgerät installiert, insofern USB-Debugging eingeschalten ist.[3]

Trivia[Bearbeiten | Quelltext bearbeiten]

Software-Pakete für die Linux-Distribution Alpine Linux[4] haben auch die Datei-Endung .apk, was für "Alpine Package" steht. Bei diesen auch "A-Pack" genannten Dateien handelt es sich um signierte tar.gz-Dateien, die neben den zu installierenden Dateien noch Konfigurations- und Metadaten enthalten.[5] Dieses Dateiformat hat aber nichts mit den APK-Dateien für Android zu tun.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  2. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  3. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatVorlage:Internetquelle/Wartung/Archivdatum nicht im ISO-FormatInterner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127. Archiviert vom Original am 2013-10-24, abgerufen am 2013-08-22.Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  4. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  5. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.