Das Android-Build-Skript [] (Das Android-Build-Skript), Lektion, Seite 723335
https://www.purl.org/stefan_ram/pub/build_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Das Ausführungs-Skript

Die Schritte zum Ausführen eines Programm

Das Skript »50_run.cmd« zeigt die einzelnen Schritte zum Ausführen eines Programms an.

Das Skript legt das Verzeichnis »project« mit den Projektdateien stets neu an. Weil dieses Verzeichnis beim Start des Skriptes gelöscht wird, gehen eventuelle manuelle Änderungen von Dateien in diesem Verzeichnisses also verloren.

Das Skript kopiert die Dateien »Main.java« und »AndroidManifest.xml« dann aus dem Arbeitsverzeichnis in das neu angelegte leere Projektverzeichnis. Diese Dateien im Arbeitsverzeichnis können also manuell geändert werden.

Anschließend führt das Skript einige Schritte aus, die es kurz anzeigt.

Ausgabe des Build-Skripts »50_run.cmd«
javac
dex
aapt
jarsigner
install
663 KB/s (4756 bytes in 0.003s)
start

Im folgenden erläutern wir die einzelnen Schritte kurz.

javac
Der Compiler »javac« (Teil des JDK ) erzeugt aus der Quelldatei »Main.java« die Klassendatei »Main.class«.
dex
Der Prozessor »dex« erzeugt aus der Klassendatei »Main.class« die Android -Klassendatei »classes.dex«.
(Die beiden letzten Schritte sollten durch das Werkzeug »jack« in einem Schritt erledigt werden, was aber inzwischen wieder aufgegeben wurde – Stand: 2017-03-15, bestätigt: 2017-05-18.)
aapt
Der Prozessor »aapt« erzeugt aus der Android -Klassendatei »classes.dex« und der XML-Konfigurationsdatei »AndroidManifest.xml« die nicht-signierte Paketdatei »ComExampleMain.unsigned.apk«.
jarsigner
Das Werkzeug »jarsigner« (Teil des JDK ) erzeugt aus der nicht-signierten Paketdatei »ComExampleMain.unsigned.apk« die signierte Paketdatei »ComExampleMain.apk«.
install
Beim Installieren wird die signierte Paketdatei »ComExampleMain.apk« auf das Android -Gerät kopiert und dann dort installiert.
Dabei wird angenommen, daß genau ein Android -Gerät angeschlossen ist. Dies kann entweder ein simuliertes oder ein reales Gerät sein. Wie genau ein reales Gerät anzuschließen ist, wurde in diesem Skript aber noch nicht behandelt.
start
Beim Starten wird die zuvor installierte App »com.example/.Main« auf dem Android -Gerät gestartet.
Aufzeichnungen
Das Skript gibt anschließend eventuelle Aufzeichnungen aus, welche die App mit »android.util.Log« und dem Etikett »com.example« schreibt.
Schritte bei der Herstellung einer APK-Datei

AndroidManifest.xml Main.java

| |
| |
| |
| | javac
| |
| V
| class
| |
| |
| |
| | dex
| |
| V
| dex
| |
| |
| |
aapt '<------------------------'
|
V
bin/
unsigned APK
|
|
|
| jarsigner
|
V
bin/
signed APK
|
|
|
| frueher
.- - - - - - - - - - - - -.
| |
|
| |
dex2oat | dexopt
| |
OAT odex
| |
|
| |
| JIT
| |

ART-execution dalvik-execution

ohne mit
java.lang.System. java.lang.System.
out.println out.println

Das Projekt-Verzeichnis

Die folgende Darstellung zeigt den Aufbau des Projekt-Verzeichnisses mit den darin enthaltenen Dateien.

Erzeugtes Projekt

Ordner Pfade

Dateien

project
|
'---bin project\bin
| classes.dex
'---lib ComExampleMain.apk
| ComExampleMain.unsigned.apk
'---obj
| |
| '---com
| |
| '---example project\obj\com\example
'---src Main.class
|
'---main project\src\main
| | AndroidManifest.xml
| '---java
| |
'---res '---com
|
'---example project\src\main\java\com\example
Main.java

Die Projekt-Dateien

Im folgenden erläutern wir die einzelnen Dateien kurz.

Main.java
project\src\main\java\com\example\Main.java
Diese Datei enthält das von einem Programmierer geschriebene Java -Programm für die App.
AndroidManifest.xml
project\src\main\AndroidManifest.xml
Diese Datei enthält von einem Programmierer geschriebene Festlegungen für die App. Sie wird vom Prozessor »aapt« (Android Asset Packaging Tool ) vor Erstellung der Paketdatei »ComExampleMain.unsigned.apk« eingelesen.
Main.class
project\obj\com\example\Main.class
Diese Klassendatei wird vom Compiler »javac« aus der Quelldatei »Main.java« erzeugt und dann vom Prozessor »dex« gelesen, um die Android -Klassendatei »classes.dex« zu erzeugen.
classes.dex
project\bin\classes.dex
Die Android -Klassendatei »classes.dex« wird vom Prozessor »dex« erzeugt. Der Prozesor »aapt« (Android Asset Packaging Tool ) erzeugt aus dieser Datei und der XML-Konfigurationsdatei »AndroidManifest.xml« dann die nicht-signierte Paketdatei »ComExampleMain.unsigned.apk« (Android Application Package File ).
ComExampleMain.unsigned.apk
project\bin\ComExampleMain.unsigned.apk
Diese Datei wurde vom Prozesor »aapt« (Android Asset Packaging Tool ) aus der Android -Klassendatei »classes.dex« und der XML-Konfigurationsdatei »AndroidManifest.xml« erzeugt. Sie wird dann anschließend mit dem Werkzeug »jarsigner« signiert.
ComExampleMain.apk
project\bin\ComExampleMain.apk
Diese Datei wurde durch Signieren der Datei »ComExampleMain.unsigned.apk« mit Hilfe des Werkzeuges »jarsigner« erzeugt. Sie kann nun auf ein Android-Gerät kopiert, dort installiert und gestartet werden. Obwohl das Skript dies automatisiert erledigt, können diese Schritte auch manuell erledigt werden. Diese Datei kann auch nach Google Play  kopiert werden, um von dort aus als App verteilt zu werden.

Abkürzungen

aapt
Android Asset Packaging Tool
apk
Android Application Package
ART
Android Runtime
DDMS
Dalvik Debug Monitor Server
dex
Dalvik Executable
javac
Java Compiler
OAT
Optimized ART
ODEX
Optimized Dalvik Executable

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723335 stefan_ram:723335 Das Android-Build-Skript Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723335, slrprddef723335, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/build_android