Einführung in das Anwendungsmanifest [] (Einführung in das Anwendungsmanifest), Lektion, Seite 722696
https://www.purl.org/stefan_ram/pub/manifest_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Einführung in das Anwendungsmanifest

Der Prozessor »aapt« erzeugt aus der aus dem Java -Quelltext erzeugten Android -Klassendatei »classes.dex« und der XML-Konfigurationsdatei »AndroidManifest.xml« eine Android -Paketdatei, welche in diesem Kurs hier oft »ComExampleMainActivity.unsigned.apk« heißt.

Die XML-Konfigurationsdatei »AndroidManifest.xml«, das Anwendungsmanifest, beschreibt unsere App.

Der Quelltext

In diesem Abschnitt zeigen wir zur Vereinfachung eine möglichst kurze  Form des Anwendungsmanifests.

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example"
android:versionCode="1"
android:versionName="1" >
<application><activity
android:name="com.example.MainActivity"
android:label="hello, world">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter></activity></application></manifest>

Bei einem Android -Manifest werden nur die Attributnamen in den Android -Namensraum gepackt, nicht die Namen der Elementtypen.

Die Struktur des Manifests

AndroidManifest-Struktur
                               Manifest
.
|
'
App
.
.-'|'-.
.-' | '-.
' ' '
Activity
(=Dialog)
.
.-'|'-.
.-' | '-.
' ' '
Intent-Filter
.
.-' '-.
.-' '-.
' '
Action Category

Erläuterung zu einigen Teilen

Es ist nicht  nötig, alle Zeilen der XML-Datei zu verstehen oder XML  zu kennen, um diesem Kurs folgen zu können. Im folgenden werden nur die Zeilen der XML-Datei erklärt, die schon in diesem Teil des Kurses für eventuelle Anpassungen des Programms benötigt werden. Die Bedeutung anderer Teile dieser XML-Datei kann auch noch später erlernt werden.

package="com.example"
Das hier angegebene Paket muß mit dem Java -Paket der Aktivitätsklasse übereinstimmen.
Dieses Paket ist die Identität  der App, das heißt: zwei Apps mit gleichem Paket werden als die gleiche App angesehen.
android:name="com.example.MainActivity"
Dies ist der vollständig qualifizierte Java -Name  unserer Aktivitätsklasse. (An dieser Stelle beschreibt die XML-Datei eine Aktivität.)
android:label="hello, world"
Dies ist die Beschriftung  unserer Aktivitätsklasse, welches nach dem Start der App angezeigt wird.
Hier wird also festgelegt, daß unsere App den Text „hello, world“ als Aktivitätstitel  anzeigt.
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER"/>
Legt fest, daß der Dialog (die activity ) im Startmenü (launcher ) angezeigt werden soll. )Ein Intent-Filter kann mehrere solcher Kategorien enthalten.)
<action android:name="android.intent.action.MAIN"/>
Legt fest, daß dieser Dialog (die activity ) der Hauptstartpunkt der Anwendung ist, also daß dieser Dialog (die activity ) ohne Datenübergabe als Hauptdialog einer Aktivität gestartet werden soll.

Manifest mit Angaben zur Ebene

Es zeigt sich, daß es nützlich sein kann, wenigstens noch zwei weitere Angaben zu machen, obwohl diese nicht immer nötig sind.

android:minSdkVersion="21"
Dieser Wert gibt die minimale  API-Ebene an, welche von der Anwendung benötigt  wird.
Falls dieser Wert nicht angegeben wird, wird er als »1« angenommen. Wenn dieser Wert zu niedrig ist, könnte die Anwendung beim Zugriff auf neuerere Teile der Bibliothek abstürzen.
android:targetSdkVersion="21"
Dieser Wert gibt die höchste  API-Ebene an, für welche die Anwendung erfolgreich getestet  wurde.
Falls dieser Wert nicht angegeben wird, wird der unter »minSdkVersion« angegebenen Wert angenommen.
Falls dieser Wert kleiner ist als die API-Ebene, auf welche die Anwendung ausgeführt wird, könnten möglicherweise Kompatibilitätsanpassungen vorgenommen werden. Dies könnte bedeuten, daß neuere Gestaltungsmöglichkeiten des Erscheinungsbildes für diese Anwendung nicht  eingesetzt wird.

Wenn wir die »targetSdkVersion« nicht auf das die aktuelle API-Ebene stellen würden, würde unser Programm möglicherweise mit einem altertümlichen Erscheinungsbild (mit viel Orange) angezeigt werden. Daher verwenden wir also vorerst das folgende Anwendungsmanifest.

Da in diesem Kurs keine Notwendigkeit dafür besteht, daß die Programme auch auf alten Geräten laufen, geben wie hier als »minSdkVersion« denselben Wert an wie bei »targetSdkVersion«.

Zukünftige Version von Android  sollen rückwärtskompatibel sein, so daß eine mit den hier angegebenen Einstellungen erstellte App auch auf diesen laufen sollte.

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example"
android:versionCode="1"
android:versionName="1" >
<uses-sdk android:minSdkVersion="21"
android:targetSdkVersion="21" />
<application><activity
android:name="com.example.MainActivity"
android:label="hello, world">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter></activity></application></manifest>

Die API-Ebene

Die API-Ebene ist die Version der Android -Bibliothek eines Gerätes. Apps, die mit einem Gerät mit einer bestimmten API-Ebene getestet wurden, sollten auch noch auf höheren (späteren) API-Ebenen laufen, allerdings können sie dann unter Umständen mögliche Erweiterungen neuer Ebenen nicht nutzen oder dort altertümlich aussehen. Einige Android -Versionen und API-Ebenen sind beispielsweise:

Einige Android -Versionen und ihre API-Ebenen

Android-Version API-Ebene

Android 4.2.2 17
Android 4.2 17
Android 4.3 18
Android 4.4 19
Android 5.0 21
Android 5.1 22
Android 6.0 23
Android 7.0 24
Android 7.1 25

Vertriebene Anwendungen

Falls eine Anwendung hergestellt werden soll, die an einen Kreis von Anwendern verteilt werden soll, womöglich über einen dafür bestimmten Dienst Dritter, so sind noch einige weitere Details beim Anlegen der XML-Konfigurationsdatei »AndroidManifest.xml« zu beachten, welche aber für das Erlernen der Anwendungsentwicklung zunächst noch nicht benötigt und daher in dieser Lektion hier noch nicht behandelt werden.

Übungsaufgabe

Ändern Sie das Anwendungsmanifest so ab, daß der Aktivitätstitel [MainActivity] lautet. (Für den weiteren Verlauf dieses Kurses soll dann dieses abgeänderte Anwendungsmanifest verwendet werden.)

Die MainActivity-App
.---------------------------------.
|---------------------------------|
| MainActivity |
|---------------------------------|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
'---------------------------------'

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 stefanram722696 stefan_ram:722696 Einführung in das Anwendungsmanifest Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722696, slrprddef722696, 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/manifest_android