15 Manifest Datei

Die AndroidManifest.xml-Datei ist eine der wichtigsten Dateien in einer Android-App. Sie bietet dem Android-Betriebssystem wichtige Informationen über Ihre App, darunter die App-Komponenten (Aktivitäten, Services, Broadcast-Receivers, Content-Provider), benötigte Berechtigungen, unterstützte Bildschirmausrichtungen, App-Icon, App-Name und vieles mehr.

Das Manifest stellt sicher, dass die App korrekt mit dem System und anderen Apps interagieren kann. Jede App muss eine AndroidManifest.xml-Datei im Stammverzeichnis des Projekts enthalten.

15.1 Struktur des Android-Manifests

Die Hauptelemente einer typischen AndroidManifest.xml-Datei sind:

15.2 Berechtigungen im Android-Manifest

Die Berechtigungen in Android definieren den Zugriff auf geschützte Teile des Betriebssystems oder auf Funktionen von anderen Anwendungen. Sie werden in der AndroidManifest.xml-Datei deklariert und vom System beim Installieren der Anwendung aus der APK-Datei gelesen.

Es gibt zwei Arten von Berechtigungen in Android: normale und gefährliche Berechtigungen.

Berechtigungen werden mit dem <uses-permission>-Element im Manifest deklariert. Zum Beispiel:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

In diesem Beispiel fordert die App die Berechtigung zum Zugriff auf das Internet und die präzise Standortbestimmung des Benutzers an.

Ab Android 6.0 (Marshmallow, API Level 23) müssen die gefährlichen Berechtig

15.3 Beispiel Manifest

Hier ist ein Beispiel für eine typische AndroidManifest.xml-Datei:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <!-- Diese Berechtigung ermöglicht den Zugriff auf das Internet -->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        
        <!-- Hauptaktivität der App -->
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Eine andere Aktivität -->
        <activity android:name=".AnotherActivity" />

        <!-- Ein Service -->
        <service android:name=".MyService" />

        <!-- Ein Broadcast Receiver -->
        <receiver android:name=".MyBroadcastReceiver" />

        <!-- Ein Content Provider -->
        <provider
            android:name=".MyContentProvider"
            android:authorities="com.example.myapp.provider"
            android:exported="false" />

    </application>

</manifest>

In diesem Beispiel hat die App die Berechtigung zum Zugriff auf das Internet. Sie definiert zwei Aktivitäten (MainActivity und AnotherActivity), einen Service (MyService), einen Broadcast Receiver (MyBroadcastReceiver) und einen Content Provider (MyContentProvider).

Beachten Sie, dass der android:name-Attributwert für jede Komponente der vollqualifizierte Name der Klasse ist, die die Komponente implementiert.

Darüber hinaus hat die Hauptaktivität einen Intent-Filter, der angibt, dass sie die “Haupt”-Aktivität der App ist, die gestartet wird, wenn der Benutzer die App von der Startseite seines Geräts aus startet. Dies wird durch die <action> und <category>-Elemente innerhalb des <intent-filter>-Elements angezeigt.

Schließlich sind alle Komponenten innerhalb des <application>-Elements definiert, das weitere Attribute enthält, die verschiedene Aspekte der gesamten App definieren, wie z.B. das App-Icon, den App-Namen und das App-Theme.