12
Android Umgebung einrichten Android – Kurs Stufe 1 (Gelbgurt) AnPr_Android_Course_1_1_Setup_v01.docx Seite 1 Inhaltsverzeichnis 1 Einleitung .................................................................................................................................................. 2 2 Kursaufbau ................................................................................................................................................ 2 3 Aufbau der Entwicklungs-Infrastruktur..................................................................................................... 3 4 Installation der Entwicklungsumgebung ................................................................................................... 3 5 Grundgedanken.......................................................................................................................................... 4 6 HelloWorld die erste App ....................................................................................................................... 4 7 Testen der Software ................................................................................................................................... 6 8 Die angelegte Struktur ............................................................................................................................... 7 8.1 Die Main Activity .............................................................................................................................. 7 8.1.1 Die Java Klassen........................................................................................................................ 7 8.1.2 Die Layout Files ........................................................................................................................ 7 8.2 Die Ressourcen .................................................................................................................................. 8 8.2.1 Grafikdateien ............................................................................................................................. 8 8.2.2 Layout Informationen ................................................................................................................ 8 8.2.3 Allgemeine Werte ...................................................................................................................... 8 8.3 AndroidManifest.xml ........................................................................................................................ 9 9 Ein kurzer Blick auf die wichtigsten XML Dateien .................................................................................. 9 9.1 activity_main.xml .............................................................................................................................. 9 9.2 strings.xml ......................................................................................................................................... 9 9.3 AndroidManifest.xml ...................................................................................................................... 10 9.4 ids.xml ............................................................................................................................................. 10 10 Lizenz .................................................................................................................................................. 12 11 Haftung ................................................................................................................................................ 12

Android Umgebung einrichten - bs7-augsburg.de · in Ihre bestehende Eclipse Installation integrieren – nachdem Eclipse jedoch wenig Platz wegnimmt und einfach zu installieren ist,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Android Umgebung einrichten

Android – Kurs Stufe 1 (Gelbgurt)

AnPr_Android_Course_1_1_Setup_v01.docx Seite 1

Inhaltsverzeichnis 1 Einleitung .................................................................................................................................................. 2

2 Kursaufbau ................................................................................................................................................ 2

3 Aufbau der Entwicklungs-Infrastruktur ..................................................................................................... 3

4 Installation der Entwicklungsumgebung ................................................................................................... 3

5 Grundgedanken .......................................................................................................................................... 4

6 HelloWorld – die erste App ....................................................................................................................... 4

7 Testen der Software ................................................................................................................................... 6

8 Die angelegte Struktur ............................................................................................................................... 7

8.1 Die Main Activity .............................................................................................................................. 7

8.1.1 Die Java Klassen ........................................................................................................................ 7

8.1.2 Die Layout Files ........................................................................................................................ 7

8.2 Die Ressourcen .................................................................................................................................. 8

8.2.1 Grafikdateien ............................................................................................................................. 8

8.2.2 Layout Informationen ................................................................................................................ 8

8.2.3 Allgemeine Werte ...................................................................................................................... 8

8.3 AndroidManifest.xml ........................................................................................................................ 9

9 Ein kurzer Blick auf die wichtigsten XML Dateien .................................................................................. 9

9.1 activity_main.xml .............................................................................................................................. 9

9.2 strings.xml ......................................................................................................................................... 9

9.3 AndroidManifest.xml ...................................................................................................................... 10

9.4 ids.xml ............................................................................................................................................. 10

10 Lizenz .................................................................................................................................................. 12

11 Haftung ................................................................................................................................................ 12

Android Umgebung einrichten

Seite 2

1 Einleitung Android

TM ist in aller Munde – oder besser gesagt „in aller Hände“. Dies hat unter anderem mit folgenden

Punkten zu tun:

Derzeit sind Android Geräte am meisten verbreitet.

Die Leistungsdaten von Android Geräten sind in jeder Hinsicht konkurrenzfähig.

Die Einstiegshürden für die Entwicklung von Android sind minimal.

Mit einem fundierten Android Wissen sind sie in einem internationalen Markt gut positioniert und das Beste

daran ist, sie können dabei auch noch jede Menge Spaß haben – von einigen Frustrationsmomenten mal ab-

gesehen, an die hat man sich als Programmierer aber schon gewöhnt.

Dieser Kurs soll helfen, einen Einstieg in die Android Programmierung zu erlangen. Es wurde versucht, die

einzelnen Inhalte möglichst praxisnah aufzubauen – jedoch immer vor dem Hintergrund, dass die Zielgruppe

erst am Anfang ihrer Programmierer-Karriere steht. Der Kurs hat mehrere Stufen, bei denen pro Stufe meh-

rere inhaltliche Schwerpunkte gesetzt sind. Nach jeder Stufe sollte man in der Lage sein, einen weiteren Mei-

lenstein der Android Programmierung zu meistern.

Folgende Leitgedanken sind bei dem Kurs anzumerken. Dieser Kurs ist…

… kein Garant für Vollständigkeit

… kein Garant für die beste Lösung

… nicht immer 100% „state of the art“

… auf Android 2.3 (Gingerbread) und höher ausgelegt

… eine Sammlung von Erfahrungen, welche ich beim Programmieren gemacht habe

… ein Versuch, die hunderten von kryptischen Foreneinträgen so zusammenzufassen, dass sie schnell

nachvollziehbar sind

… im Wesentlichen für meine Schüler, es ist aber auch nicht verboten den Kurs zu machen, wenn man

nicht in meiner Schule ist

Zielgruppe des Kurses sind all diejenigen, welche bereits Java Grundkenntnisse haben (Kontrollstrukturen,

einfache und zusammengesetzte Datentypen (Arrays, ArrayList etc.), Objekte, Vererbung und Interfaces.

Diejenigen, welche hier keinerlei Erfahrung haben sollten zumindest die Grundzüge kennengelernt haben.

Hierzu finden Sie ebenfalls unter www.codeconcert.de Anhaltspunkte.

2 Kursaufbau Zu jeder Stufe finden Sie unter YouTube mehrere Lehrvideos, welche die Inhalte aufbereitet darstellen. De-

tails hierzu entnehmen Sie bitte meiner Webpage (www.codeconcert.de). Wenn für die Beispiele Grafiken

o.Ä. verwendet werden, finden Sie diese Ressourcen ebenfalls in meiner Homepage.

In diesem Dokument werden wir uns mit dem Einrichten einer Entwicklungsumgebung und der Erzeugung

einer einfachen App beschäftigen. Anschließend analysieren wir die von der Entwicklungsumgebung erzeug-

ten Files und Ordner.

Das Folgekapitel „AnPr_Android_Course_1_2_Layouts“ wird das Thema Layouts und Views näher be-

leuchten. Wenn diese beiden Kapitel durchgearbeitet wurden, sind Sie in der Lage, einfache, grafisch an-

sprechende Anwendungen zu realisieren. Am Ende jeder Stufe finden Sie eine Aufgabenstellung für eine

App, welche Sie selbstständig realisieren sollen. Eventuelle zusätzliche Ressourcen (wie bspw. Grafiken

Sounds etc.) habe ich auf die Homepage gestellt, so dass Sie sich hierüber keine Gedanken machen müssen.

Android Umgebung einrichten

Seite 3

3 Aufbau der Entwicklungs-Infrastruktur Android wird mit Hilfe von Java programmiert. Android Geräte „verstehen“ zwar kein Java Bytecode, so

wie ihn der Standard Java Compiler erzeugt, jedoch ist dieser Bytecode die Grundlage für die Erzeugung des

ausführbaren Codes für die Dalvík Virtual Machine. Diese kann man sich zwar vorstellen wie das JRE von

Java, jedoch vom Grundaufbau wurde hier mehr Wert auf die Performancespezifika von mobilen Geräten

gelegt.

Da die Umwandlung vom Sourcecode (*.class Files) über Java Bytecode bis hin zum Dalvík Code (*.dex

Files) automatisch läuft, muss sich der Android Einsteiger darüber kaum Gedanken machen.

Wir werden für unsere Entwicklungen das ADT Bundle verwenden, welches bereits alle Entwicklungsrele-

vanten Elemente vereint und unter http://developer.android.com/sdk/index.html kostenfrei heruntergeladen

werden kann.

Diese Umgebung erlaubt es uns mit Hilfe der freien Java basierten Entwicklungsumgebung Eclipse™ den

Code zu erzeugen und zu kompilieren, diesen an das Android SDK zum Crosskompilieren weiterzureichen

und mit Hilfe eines Geräteemulators (AVD – Android Virtual Device) zu emulieren. Es ist allerdings auch

möglich, ein Android Gerät per USB an den Rechner zu stecken und die Tests direkt am realen Hardwarege-

rät durchzuführen. Sowohl beim virtuellen, als auch beim realen Gerät kann Eclipse als Debugger eingesetzt

werden.

4 Installation der Entwicklungsumgebung Legen Sie ein beliebiges Verzeichnis in Ihrem Entwicklungsrechner an (bspw. C:\Developmentt\Android).

Gehen sie anschließend zu: http://developer.android.com/sdk/index.html und laden Sie sich das ADT Bundle

herunter:

Anmerkung: Sie können das SDK auch getrennt herunterladen und die entsprechenden notwendigen Plugins

in Ihre bestehende Eclipse Installation integrieren – nachdem Eclipse jedoch wenig Platz wegnimmt und

einfach zu installieren ist, empfehle ich für den Anfang das Bundle.

Entpacken Sie nun das Zip File in das neu erstellte Verzeichnis: C:\Development\Android\adt-bundle-

windows Nun müssen Sie einen Workspace erstellen (bspw. Erstellen unter: C:\Development\Android\Workspace).

Unter dem Eclipse Unterordner Ihres ADT Bundles finden Sie nun die ausführbare Eclipse Datei (eclip-

Android Umgebung einrichten

Seite 4

se.exe). Starten Sie diese und wählen Sie im Folgedialog Ihren Workspace aus. Das war’s auch schon. Sie

haben Ihre Umgebung installiert und gestartet.

Anmerkung: Wenn es trotzdem mal Probleme gibt sei Ihnen gesagt – es gibt fast kein Problem, welches nicht

irgendwo auf der Welt schon mal aufgetreten ist und nicht von irgendjemand mal gefixed wurde. Meistens

finden sich die Lösungen als Blog- oder Foreneintrag im Netz. Was mir bspw. am Anfang passiert ist war,

dass der Dalvik Debug Monitor Server (DDMS) nicht starten wollte. Nach kurzer Suche im Netz fand ich die

Lösung – die adb.exe (Android Debug Bridge) musste per Task Manager gestoppt werden und schon lief die

Sache wieder. Also – nie die Hoffnung verlieren!

5 Grundgedanken Bevor wir loslegen, noch ein paar Grundgedanken zum Gesamtkonzept Android. Wie ein Android Gerät

aussieht, das wissen wir. Es gibt dahinter eine gewisse Hierarchie, welche auch beim Programmieren beach-

tet werden muss:

Ebene: Bedeutung:

Gerät / And-

roid

Das ist die grundlegendste Ebene des Android Systems. Hier liegt

die Kontrolle sämtlicher Abläufe. Bspw. sollte ein Telefonanruf alle

Aktivitäten in Pause versetzen, damit man den Anruf entgegen

nehmen kann.

Applikation Das ist die Sammlung aller Aktivitäten unseres Programms.

Activity Bei einer Desktopprogrammierung würden dies die Dialoge sein.

Die Applikation startet die MainActivity, welche eine Art „Anker“

für das gesamte Programm darstellt.

View Die einzelnen Elemente innerhalb der Activities sind Views – also

Buttons, Textelemente, Grafiken usw. Angeordnet werden die

Views innerhalb von Layouts.

Das eigentliche Problem bei der mobilen Programmierung ist jedoch die Tatsache, dass im Regelfall die

Bildschirme von den Applikationen voll ausgefüllt sind, die Bildschirmgröße und –ausrichtung nicht ge-

normt ist. Ein Tablett ist größer als ein Handy und wird darüber hinaus im Regelfall in Querausrichtung ge-

nutzt – wobei dies nicht so sein muss. Diese Flexibilität im Layout Design ist für viele Neueinsteiger mit die

größte Hürde!

6 HelloWorld – die erste App Für Ihre erste App starten Sie Eclipse,

wie oben beschrieben. Legen Sie ein

Sie neues Android Projekt an und

folgen dem Wizzard.

Die Folgedialoge erwarten die Eingabe von Basisinformationen für Ihr Projekt. Hierbei werden neben dem

Projekt- und Applikationsnamen auch

ein Packagename vorgeschlagen. Da

empfohlen wird pro Projekt auch nur

eine App zu schreiben, sollten Sie hier

von den Namenskonventionen auch

einheitlich sein.

Weiterhin wird noch das globale De-

signthema angegeben (hier Holo Light

with Dark Action Bar), welches die

default - Farbgebung bestimmt. Wich-

tig ist nun noch die Einstellung der

Android Umgebung einrichten

Seite 5

SDK Versionen:

Minimum Required SDK: Das ist die Minimalanforderung an das Gerät. Also müssen die genutzten Libra-

ries dieser Version entsprechen, oder darunter liegen. Wenn Sie eine Funktionalität nutzen möchten welche

ein höheres API Level aufweisen, wird Eclipse einen Fehler melden. Es gibt allerdings Möglichkeiten dies

zu umgehen, indem sogenannte „Support Libraries“ explizit in die Applikation eingebunden werden.

Target SDK: Dies ist das API Level, mit dem getestet wird. Der Emulator sollte somit diesen Level aufwei-

sen.

Compile With: Hier wird das API Level eingestellt, mit dem Kompiliert werden soll. Das ist üblicherweise

die aktuellste API Version. Hintergrund ist, dass Android die Abwärtskompatibilität sicherstellt.

Die nächsten Dialoge kümmern sich um allgemeine Projekt-

konfigurationen und um den Start Icon. Wir übernehmen zu

diesem Zeitpunkt die Standardeinstellungen. Nun kommt die

Auswahl der Main Activity. Wir wählen hier eine leere Activi-

ty aus.

Der letzte Dialog erwartet von uns die Vorgabe eines Namens für die Activity. Wir können hier für die erste

Übung ebenfalls die Standards übernehmen,

oder einfach nur „HelloWorld“ eingeben. Zu

beachten ist, dass sowohl die Activty, als auch

das Layout einen eigenen Namen erhält.

Dies werden wir bei der Analyse der erzeugten

Files nochmal sehen.

Die meisten dieser Einstellungen landen im sogenannten Manifest File (AndroidManifest.xml), wo sie spä-

ter noch geändert werden können. Dieses File wird in einem späteren Kapitel nochmal kurz angesprochen.

Android Umgebung einrichten

Seite 6

7 Testen der Software Wir testen die Software vorerst nur auf dem Emulator. Sobald wir „sinnvolle“ Programme schreiben,

werden wir dies auch auf einem realen Gerät ausprobieren. Die Anleitung, wie das geht finden Sie

im Dokument „AnPr_Android_Course_1_3_Task“. Bevor wir aber anfangen, müssen wir uns ein

virtuelles Device konfigurieren auf dem wir die App aufspielen können. Hierzu klickt man auf das

AVD Icon (siehe rechts) und startet den AVD Dialog. Mit

einem Klick auf „New“ wird ein neues AVD erzeugt.

In dem sich öffnenden Dialog werden folgende Einstellun-

gen vorgenommen:

AVD Name: Unter diesem Namen kann zu einem späteren

Zeitpunkt die Konfiguration wieder neu gestartet werden.

Device: Hier finden wir diverse, vorkonfigurierte Devices.

Je nach SDK Version kann dies variieren.

Target: Dies ist das API Level, welches das Testdevice

haben soll.

Front/Back Camera: Wenn die App eine Kamerafunktion

benötigt, kann sie hier eingestellt werden. Ansonsten wird

empfohlen, darauf zu verzichten.

Memory Options: Wie viel RAM Speicher soll das De-

vice aufweisen.

Internal Storage: Wie viel interner persistenter Speicher

soll vorhanden sein.

SD Card: Soll eine SD Karte simuliert werden und wenn

ja, wie groß soll sie sein.

Damit sind alle notwendigen Einstellungen gemacht. Probieren Sie ruhig einige Varianten aus. Vor allem die

verschiedenen Bildschirmgrößen sind wichtig zu testen. Anschließend können Sie das von Ihnen erstellte

AVD auswählen und mit dem „Start“ Button starten. Wenn das System davon ausgeht, dass es sinnvoll ist

die Ausgabe für die Emulation zu skalieren, wird noch ein weiterer Dialog aufgehen, bei dem die Skalie-

rungsoptionen empfohlen werden.

Nun heißt es warten! Nachdem ein voll funktionsfähiges Device emuliert werden muss, kann dies für alle

Initialisierungsmaßnahmen schon mal ein paar Minuten dauern. Erst wenn der Starbildschirm eines Android

Devices (also mit Menü und allem Drum und Dran) erscheint, ist die Startprozedur abgeschlossen. Das De-

vice kann verwendet werden.

Um die App nun auf das Device zu laden, klicken

Sie mit der rechten Maustaste auf den Rootordner

Ihres Projektes („MyFirstApp“) und wählen „Run

As -> Android Application“ aus:

Damit wird die App auf dem Device installiert und gestartet.

Nun wird eventuell noch gefragt, ob Logcat aktiviert werden soll. Dieses dient dazu Device Meldungen auf

einer Konsole auszugeben:

Android Umgebung einrichten

Seite 7

Es wird empfohlen dies auszuwählen. Es können damit später auch Logmeldungen individuell erzeugt wer-

den, um den Entwicklungsprozess zu unterstützen. Wir werden mit Logcat später arbeiten. Wer vorher sich

schon schlau machen möchte wird unter folgendem Link fündig:

http://developer.android.com/reference/android/util/Log.html

Nun sollten Sie im AVD ein App – Fenster sehen, bei dem in der Mitte „HelloWorld“ steht.

8 Die angelegte Struktur Wie Sie sehen, hat Eclipse eine komplette, lauffähige Struktur angelegt, welche alles Wesentliche einer App

enthält:

Im Folgenden werden wir uns nun diese Struktur etwas genauer ansehen, um die Bedeutung dieser einzelnen

Ordner und Files zu verstehen und später diese auch sinnvoll anpassen zu können.

8.1 Die Main Activity

8.1.1 Die Java Klassen

Im Ordner src finden wir unser Package und dort die erzeugte Java Klasse unserer Main Activity. Hier liegt

die gesamte dynamische Funktionalität unserer Activities. Da wir nur eine Activity haben, existiert hier auch

nur ein *.java File. Wenn Sie nun weitere Activities benötigen, werden die entsprechenden Files auch hier

abgelegt. Auch Hilfsklassen, welche wir für unsere Apps schreiben, werden sich hier befinden.

8.1.2 Die Layout Files

Im Ordner layout liegt das File, welches für die statischen Informationen – vor allem das Layout – zuständig

ist. In unserem Fall ist dies nur das activity_main.xml File. Sämtliche Elemente, welche beim Start unserer

App angezeigt werden sollen, sind hier vermerkt. Dieses File kann direkt im XML-Format, aber auch über

Android Umgebung einrichten

Seite 8

einen WYSIWYG (What You See Is What You Get) Dialog angepasst werden, wobei letzteres nur zur

„Ideenfindung“ und zu einer ersten Kontrolle unserer XML Eingaben dient – die endgültige Version sollte

also immer direkt als XML angepasst werden, da es mitunter schwierig wird, die einzelnen Elemente per

Mauszeiger zu editieren.

8.2 Die Ressourcen Neben dem Layout File wie es oben beschrieben wurde, gibt es noch viele weitere Ressourcen welche in

einer App verwendet werden. Wir konzentrieren uns im ersten Schritt nur um die, welche beim Anlegen

eines Projektes entstanden sind. Alle weiteren werden später folgen. Grundsätzlich liegen aber alle Ressour-

cen im Ordner res.

8.2.1 Grafikdateien

Grafiken werden als „drawable“ Ressources bezeichnet und liegen im Unterordner drawable-hdpi, dra-

wable-ldpi, drawable-mdpi und drawable-xhdpi. In allen vier Unterordnern befinden sich die gleichen

(Grafik-)Dateien – wobei man bei näherer Betrachtung erkennt, dass die Grafiken unterschiedliche Auflö-

sungen haben. Dies liegt daran, dass die Ressourcen für verschiedene Bildschirmkategorien vorgehalten

werden.

Im Wesentlichen kennt Android derzeit 4 „Density“ Klassen:

Klasse: Eigenschaft:

ldpi (low quality) Geringe Qualität und Auflösung, ca. 120 dpi

mdpi (medium quality) -> Referenzmaß Mittlere Qualität und Auflösung, ca. 160 dpi

hdpi (high quality) Hohe Qualität und Auflösung, ca. 240 dpi

xhdpi (extra high quality) Sehr hohe Qualität und Auflösung, ca. 320 dpi

Für sämtliche Größenangaben in den Layout XML Files wird empfohlen, sogenannte Density Independent

Pixel zu verwenden. Diese werden als „dp“ oder manchmal auch als „dip“ abgekürzt. Folgende Rechenfor-

mel zur Berechnung der tatsächlich genutzten Pixel ist zu verwenden:

px = dp * (dpi / 160)

Daraus erkennt man auch, dass ein dp bei einem mdpi Bildschirm genau ein Pixel ist. Ein dp ist somit ca.

0,16mm. Ein Element mit 20 dp Breite wird bei einem xhdpi Display mit 300 dpi, also mit 20 * (300/160) =

37 Pixel angezeigt.

Um beim Skalieren Artefakte zu vermeiden, werden Grafiken für Android

Apps in den vier verschiedenen Bildschirmklassen zur Verfügung gestellt.

Jedes „drawable“ Objekt (also Grafiken) wird redundant in den vier Unterord-

nern abgelegt. Ein Bild, welches in xhdpi Auflösung 96 Pixel aufweist, in hdpi

72 Pixel, in mdpi 48 Pixel und in ldpi 36 Pixel.

Die minimale Größe von interaktiven Elementen sollte mindestens 48 dp

sein!

8.2.2 Layout Informationen

Im Ordner layout sind für alle Activities die Layout Informationen im XML Format abgelegt. Es können

aber auch für andere Elemente (bspw. für dynamisch erzeugte Teilkomponenten) hier die Layoutdaten abge-

legt werden. Weiterhin ist es möglich, verschiedene Layoutalternativen einzutragen, so dass je nach Device

das richtige Layout verwendet werden kann. Dies beginnt schon damit, dass für Landscape (also Querfor-

mat) und Portrait (also Hochkantformat) die unterschiedlichen Angaben abgelegt werden können – bis hin zu

verschiedenen Bildschirmkategorien.

8.2.3 Allgemeine Werte

Da Android von vorneherein mehrsprachig ausgelegt ist, sollten sämtliche Textinformationen in Stringdatei-

en (strings.xml) Ausgelagert werden. Dieses File befindet sich unter values. Hier werden alle angezeigten

Textwerte eingetragen und mit einem individuellen Namen versehen. Mehrsprachigkeit wird dadurch er-

Android Umgebung einrichten

Seite 9

langt, dass für die verschiedenen Sprachen ein eigener values Ordner angelegt wird und die entsprechenden

Stringnamen dort ebenfalls eingetragen werden – aber eben mit den Werten in anderer Sprache.

8.3 AndroidManifest.xml Das gewichtigste Konfigurationsfile ist das AndroidManifest.xml. Hier werden alle Informationen abgelegt,

welche für das System zum Betrieb des Projektes benötigt. Hier stehen bspw. die API Level, die Activities

werden registriert und ähnliche grundlegenden Funktionalitäten eingestellt.

9 Ein kurzer Blick auf die wichtigsten XML Dateien

9.1 activity_main.xml Hier eine beispielhafte Layout Datei mit einem View Element.

<RelativeLayout xmlns:android=

"http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

Hier wird das grundlegende Layout

festgelegt (hier Relative Layout).

android:layout_width="match_parent"

android:layout_height="match_parent"

Danach folgen die Höhen- und Brei-

tenangaben.

tools:context=".MainActivity"> Info rein für die Entwicklungsumge-

bung.

<TextView Hier wird ein Text angezeigt. android:layout_width="wrap_content"

android:layout_height="wrap_content"

Auch hier gibt es Höhen- und Brei-

tenangaben. android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

Die Ausrichtung kann horizontal und

vertikal festgelegt werden. android:text="@string/hello_world"

/>

Der Text wird aus der strings.xml

Datei entnommen. </RelativeLayout>

9.2 strings.xml In den strings.xml finden sich alle Textelemente wieder.

<?xml version="1.0" encoding="utf-8"?> Allgemeine xml Information.

<resources> Indikation, dass Ressourceninforma-

tionen definiert werden.

<string name="app_name">

MyFirstApp</string>

<string name="hello_world">Hello world!</string>

<string name="menu_settings">

Settings</string>

Einzelne String Elemente mit einem

eindeutigen Namen und dem eigent-

lichen Stringwert.

</resources>

Um nun Mehrsprachigkeit zu unterstützen, muss für jede Sprache ein eigener

Ordner unter dem values Ordner angelegt werden. Die einzelnen Spracherweite-

rungen werden nach dem Bindestrich angehängt. Für Deutsch wird ein „de“ er-

gänzt. Weitere Kürzel können im Netz gefunden werden.

Innerhalb der entsprechenden Unterordner befindet sich jeweils ein weiteres

strings.xml File, in dem sämtliche Stringelemente eingetragen sind, welche für

die verschiedenen Sprachen abweichen sollen:

Android Umgebung einrichten

Seite 10

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">

Meine erste App</string>

<string name="hello_world">

Hallo Welt!</string>

</resources>

In der deutschen strings.xml wurde der String

mit dem Namen „hello world“ mit dem Wert

„Hallo Welt!“ belegt. Dadurch wird bei einem

Gerät mit deutscher Spracheinstellung bei allen

„hello world“ Strings dieser „Hallo Welt!“ Wert

anstatt „hello world“ verwendet.

Die Strings werden entweder direkt in den XML Files referenziert (siehe activity_main.xml), oder sie kön-

nen via Java Code instanziiert werden:

String myString = getResources().getString(R.string.hello_world);

9.3 AndroidManifest.xml Wie bereits erwähnt wurde, ist das AndroidManifest.xml die grundlegendste Konfigurationsebene für unse-

re App. Hier das Beispielfile einer einfachen Applikation:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.myfirstapp"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="9"

android:targetSdkVersion="16" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity android:name="com.example.myfirstapp.MainActivity"

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>

Vom Aufbau her ist das File selbsterklärend. Grundsätzlich gilt, dass alle projektweiten Einstellungen hier

vorgenommen werden. Im Vordergrund stehen hier die Informationen, welche das Android System benötigt,

um die Applikation ausführen zu können. Hierzu zählt auch die Registrierung aller Activities und die „Intent

Filter“. Intents sind im Wesentlichen dafür zuständig, die Kommunikation innerhalb des Systems abzuwi-

ckeln und somit auch den Start einer Applikation.

9.4 ids.xml Unter dem values Ordner können auch selbst definierte XML Files abgelegt werden. Ein häufig anzutreffen-

des File ist das ids.xml File. Zur Erklärung der Bedeutung dieses Files muss man verstehen, dass jedes Lay-

out Element in Android eine eigene ID besitzen sollte. Da dies standardmäßig vom Eclipse Wizzard nicht

gewährleistet ist, müssen diese IDs vom Programmierer eingetragen werden. Eine ID für das TextView Ele-

ment von Oben würde wie folgt aussehen:

Android Umgebung einrichten

Seite 11

<TextView

android:id="@+id/txtView_myMainText"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:text="@string/hello_world" />

Der Syntax sieht vor, dass über @+id eine ID hinzugefügt werden soll, welche den Namen

txtView_myMainText tragen soll. Somit wird beim Kompilliervorgang eine innerhalb der Applikation

eindeutige ID erzeugt, mit deren Hilfe das entsprechende Element eindeutig identifiziert werden und im Java

Code angesprochen werden kann:

TextView myTxt = (TextView) findViewById(R.id.txtView_myMainText);

Die Details dieses Aufrufs wird zu einem späteren Zeitpunkt geklärt.

Nachdem es aber auch die Möglichkeit geben muss, Elemente im Java Code dyna-

misch zu erzeugen, sollte es auch die Möglichkeit geben, IDs für die spätere Verwen-

dung zu generieren. Hiefür wird ein ids.xml File geschaffen, welches ebenfalls unter

dem Ordner values liegt.

In diesem File werden nun einfach die IDs als Namenwerte eingetragen, wobei das System intern pro ID eine

eindeutige Nummer vergibt:

<?xml version="1.0" encoding="UTF-8"?>

<resources>

<item type="id" name="myDynElement"/>

</resources>

Einem dynamisch erzeugten Element kann nun mit der Methode setId(R.id.myDynElement) diese ID zuge-

ordnet werden.

Android Umgebung einrichten

Seite 12

10 Lizenz

Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer

Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter glei-

chen Bedingungen 3.0 Unported Lizenz.

The Android robot is reproduced or modified from work created and shared by Google and used according to

terms described in the Creative Commons 3.0 Attribution License.

“Eclipse” and the Eclipse Logo are trademarks of Eclipse Foundation, Inc.

"Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of

their respective owners."

11 Haftung Ich übernehme keinerlei Haftung für die Richtigkeit der hier gemachten Angaben. Sollten Fehler in dem

Dokument enthalten sein, würde ich mich über eine kurze Info unter [email protected] freuen.