Zum Inhalt springen

Apk: Unterschied zwischen den Versionen

1.105 Bytes hinzugefügt ,  13. September 2020
K
"Android Package" ganz groß geschrieben
K ("Android Package" ganz groß geschrieben)
 
(8 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:Android package (APK) Datei}}
{{DISPLAYTITLE:Android package (APK) Datei}}


Eine '''Apk'''-Datei ('''A'''ndroid '''p'''ac'''k'''age) ist eine Archiv-Datei, ähnlich einer .zip-Datei, und enthält die Bestandteile einer für Android entwickelten [[App]]. Das Archiv enthält unter anderem kompilierten Quellcode, Ressourcen-Dateien (z.B. Grafikdateien oder Sound-Clips) sowie Metadaten, wie Angaben zu den nötigen [[Berechtigungen]] und Ähnliches.
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.


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>
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 und die App zum Beispiel über den [[Google Play Store]] 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''' oder [[D8]] 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 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|Manifest-Datei]] (z. B. für die Angabe von App-[[Berechtigungen]]) 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.


== Bezugsmöglichkeiten von APK-Dateien ==
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.


Neben der Erstellung einer APK-Datei mit einer Entwicklungsumgebung gibt es noch weitere Möglichkeiten, Apps in Form einer APK-Datei zu erhalten:
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.  
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 hat. 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 enthaltenen Apps auch als APK-Datei heruntergeladen werden können.  
[[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.  


== Funktionsweise ==
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 
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.


== APK Datei mit der ADB verknüpfen ==
== APK Datei mit der ADB verknüpfen ==
Zeile 30: Zeile 33:
</pre>
</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>
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.


== Einzelnachweise ==
== Einzelnachweise ==
Autopatrol, Moderator
1.304

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.