Android Tutorial – Teil 3
Eine Android App besteht im wesentlichen aus Code und Ressourcen. Die wichtigste Datei ist wohl in jeder App die Konfigurationsdatei. Was für Web Programme die web.xml Datei ist, dass ist für Android Apps die AndroidManifest.xml Datei.
AndroidManifest.xml
Die Konfigurationsdatei mit dem passenden Namen AndroidManifest beinhaltet Beschreibungen die global für die App gelten. Diese Beschreibungen umfassen:
- Berechtigungen
- Activities
- Services
Eine AndroidManifest Datei könnte folgendermaßen aussehen:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="at.ziegelwangeredv.homepageapp" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ZiegelwangerEDVActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Die einzelnen Tags im Detail:
- package
Der unter dem Package angegebene Wert entspricht dem Package in dem der Code für diese App liegt. Dieser Name des Package muss global, also später im Google Store, eindeutig sein. Um dies zu gewährleisten ist es üblich umgedrehte Domain Namen zu verwenden die ja auch eindeutig sein müssen. In meinem Fall setze ich ans Ende immer den Namen der App. - android:version
Hier wird unterschieden in android:versionCode und android:versionName. android:versionCode ist eine Zahl die mit jeder neuen Version der App erhöht werden muss. So erkennt der Google Store, dass es ein Update für die App gibt. android:versionName ist eine für den Benutzer angezeigte Versionsnummer. - uses-sdk
Dieses Tag unterscheidet zwei unterschiedliche Werte. android:minSdkVersion ist die minimale Android Version die benötigt wird um die App auszuführen, android:targetSdkVersion ist die Android Version für welche die App erstellt wurde. - uses-permission
Mit diesem Tag definiert man die Funktionen, welche die App vom System eine Erlaubnis benötigt. Bei der Installation wird der Benutzer aufgefordert der App auf diese Funktionen den Zugriff zu erlauben. Mein Beispiel benötigt die Erlaubnis um über das Android Gerät eine Verbindung mit dem Internet herzustellen. - activity
Hier wird die Start Activity der App definiert. Zusätzlich definiert der Intent-Filter, dass es sich hierbei um die Mail-Activity der App handelt.
Ressourcen
Eine Android Applikation ist von Natur aus darauf ausgelegt möglichst intelligent Source Code und Ressourcen zu verwalten. Das ist vor allem deshalb wichtig, da man für unterschiedlichste Geräte und Gegebenheiten die den Benutzer betreffen (man denke hier an die unterschiedlichen Sprachen) zahlreiche Ressourcen benötigt. Der Benutzer selbst bekommt je nach umfangreicher Lokalisierung nur einen Teil zu sehen. Alle Ressourcen einer App liegen im dafür vorgesehenen ‚res‘ Ordner. Dieser ist in folgende Unterordner gegliedert:
- /res/values
Hier werden alle einfachen Werte abgelegt (Strings, Farben, …). Jeder Typ wird in eine eigene Datei gespeichert. Für Übersetzungen gibt es hier eine Datei pro Sprache. - /res/layout
Hier liegen alle definierten Layouts als XML Dateien. Möglicherweise benötigt man für unterschiedliche Display Auflösungen unterschiedliche Layouts. - /res/menu
Hier werden Eigenschaften von Menüeinträgen definiert. - /res/drawable
Diese Ordner enthalten App Icons in allen möglichen Größen.
Soweit dazu. Im nächsten Teil gehts endlich mit der Praxis los.
Teil 1 | Teil 2 | Teil 3 | Teil 4
Hallo,
was Sie hier aufgeführt haben ist sehr interessant.
Leider funktioniert die Web-Application nicht, da webView unbekannt ist.
Schade!
Grüße,
Alex
WebView muss bei einer Android App importiert werden. Das geht einfach mit: import android.webkit.WebView; Wie man sehen kann ist dies ein eigenes Package. Dieses sollte bei einem Android SDK dabei sein.
Hallo,
und vielen Dank für das Tutorial, die app funktioniert Einwandfrei auf Anhieb.
Und danke auch für die restlichen Tutorials.
Gruß
Mirsad