Kapitel 5 Lektion 2 – Erste Schritte in Android
Wir könnten nun anfangen mit viel Code und Dateien, die ihr runter laden könnt. Das beste wird aber sein, dass wir unsere Android Dateien von innen anschauen.
Für diese Anleitung benötigen wir ein Grundwissen von Java. Falls ihr noch nie ein Java Programm geschrieben habt, rate ich euch dringend dazu, mit den Grundlagen anzufangen: Grundlagen der Programmierung.
Wir werden alle unsere Programme mit Eclipse programmieren. Eine Anleitung, um alle erforderlichen Programme zu installieren, findet ihr hier: Einrichten von Eclipse und Java
Für diejenigen, welche noch nicht mit Eclipse programmiert haben, hier habt ihr eine integrierte Entwicklungsumgebung. Hier wird euer Programm organisiert, ihr könnt es testen und installierbare .APK Dateien exportieren. Diese können dann im Google Play Store hochgeladen werden. Eclipse sieht wie folgt aus:
Links haben wir den Package Explorer, hier sind alle Projekte gespeichert. In der Mitte wird der Code der einzelnen Klassen in verschiedenen Tabs angezeigt. Im Package Explorer kann man die Struktur des Projektes erkennen.
In dem SRC Ordner ist unser Code enthalten, wie bei unserem Java Spiel.
Der GEN Ordner enthält automatisch erzeugten Code. Hier wollen wir nicht wirklich rein schauen. Eigentlich fast immer treten hier keine Fehler auf.
Andorid 4.2 und Android Dependencies, libs beinhalten verschiedenen Libraries und Abhängigkeiten, die von unserer App benötigt werden.
Der assets Ordner beinhaltet verschiedene Resourcen. Der res Ordneer enthält Recourcen wie Strings, Layouts und Bilder. Hier sind auch die verschiedenen Übersetzungen enthalten, falls wir für mehrere Sprachen entwickeln.
proguard beschützt unseren Code. Damit wird er so sehr optimiert und zusammengepackt, dass es für einen Dritten sehr schwer ist, unseren Code auszulesen, für den Fall, dass wir unseren Code geheim halten wollen.
Die einfachste App, welche wir erzeugen können, ist die Hello world! App.
Alleine von dieser App, wo wir selber nichts programmiert haben, können wir sehr viel lernen.
Rückwärts programmieren
1. Als Erstes gehen wir hier in den SRC Ordner. Darin haben wir nur eine Datei „MainActivity.Java“.
Das Erste, was uns bei dieser Klasse auffallen sollte, ist, dass sie um Activity erweitert wird: extends Acivity. Das können wir uns einfach als eine Seite unserer App vorstellen. Eine Aktivität ist ein Fenster (Window) unserer App, mit welchem wir interagieren können (so wie der Posteingang von unserer Gmail App).
Wenn wir uns das jetzt verinnerlichen, dann ist diese Klasse genau das, was wir oben in dem Bild sehen. Was sind dann aber diese beiden @Override?
Nochmal kurz zum Wiederholen, @Override bedeutet, dass diese Methode den Platz der Methode der Superklasse einnimmt. Da hier die MainActivity mit der Activity erweitert wird, handelt es sich hierbei um die Activity Superklasse.
Diese Superklasse ist im Besitz von onCreate und von onCreateOptionsMenu Methoden. Wir könnten diese nun einfach übernehmen und sie würden funktionieren. Wir können aber auch die beiden Methoden nehmen und sie uns so anpassen, wie wir sie benötigen.
Nun haben wir die onCreate Methode in unserer MainActivity. Das Erste, was diese Methode macht: sie ruft die onnCreate Methde der Superclasse Activity auf. Danach kommt der folgende Code: setContentView(R.layout.activity_main);
Dies bedeutet einfach, dass immer, wenn diese Methode aufgerufen wird, die onCreate Methode der Superklasse aufgerufen wird. Danach wird setContentView aufgerufen.
Was bedeutet setContentView?
Lasst uns mal einen Schritt zurück gehen und nicht den Code sondern unsere App anschauen. Was sehen wir hier?
Aber nirgends ist in unserem Code „Hello world!“ zu finden, wo kommt es also her? Das ist recht einfach, aus der onCreate Methode.
Wenn wir onCreate aufrufen startet eine Aktivität. In diesem Fall zeigt unser System den Inhalt „Hello world!“ unserer Aktivität an, mit der Hilfe von: setContentView(layout);
Bei uns wird das Layout R.layout.activity_main angezeigt. Hier werden wir in den res Ordner geleitet. Ich hoffe nun, dass ihr versteht, dass Android eine Art Mehrkomponentenmaschine ist?
Lasst uns die onCreateOptionMenu überspringen, da diese noch einmal erscheinen wird.
Suche nach dem activity_main Layout
Dazu müssen wir nur in unseren res Ordner gehen und dort unter Layout schauen.
Da ist nun unsere Datei, darin enthalten ist unser Inhalt, der angezeigt wird.
So sieht diese Datei aus, wenn wir sie öffnen. Es gibt 2 wichtige Dinge darin:
1. RelativeLayout
2. TextView
Hier haben wir unser Layout gegeben. Höhe und Breite wird von „match_parent“ genommen, in diesem Fall ist es der komplette Bildschirm. Alles Weitere werden wir zu gegebener Zeit besprechen.
TextView gibt an, dass der Text in Höhe und Breite „wrap_content“ einnimmt, d. h. der Text kann soviel Platz einnehmen, wie er benötigt, um dargestellt zu werden. Man kann auch erkennen, wo unser Text herkommt.
Und in dieser String Datei können wir nun unseren Text bearbeiten, was ich auch schon getan habe:
Damit haben wir das folgende Ergebnis:
Android Manifest (AndroidManifest.xml)
Hier wird ein Großteil der Appinformationen gespeichert. Hier kann man die Versionsnummer der App ändern, welche Android Version mindestens vorhanden sein muss, die Main Acivity (ähnlich der Main-Methode) und vieles mehr. Wir werden im Laufe dieses Kapitels noch genauer darauf eingehen.
Wenn ihr nun einen Doppelklick auf AndroidManifest.xml macht, solltet ihr das Folgende sehen:
Wenn ihr unten schaut, könnt ihr hier viele Informationen sehen und finden. Es ist auch genauso leicht, diese hier abzuändern. Der letzte Tab, die AndroidManifest.xml, zeigt euch all diese Informationen als Code.
<manifest> </manifest>
Zwischen diesen beiden, ist die komplette Manifest Datei geschrieben. Hier können wir alles finden, den Namen, die Versionsnummer, den Versionscode, welcher mit jeder neuen Veröffentlichung um 1 steigt und die Versionsnummer, die hier 1.0 ist, da es unsere erste Veröffentlichung ist.
<uses-sdk>
Hier wird angegeben, welche Android Version mindestens gegeben sein muss, damit die App darauf läuft. Bei unserer App ist es Android 2.2 Froyo. Ich würde euch empfehlen, wenigstens für API Level 14, also Android 4.0 zu programmieren. Mehr Infos gibt es hier: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
<application>
Darin definieren wir ein paar Eigenschaften unserer App. So erlauben wir es, dass unsere App via ADB gesichert werden kann, das Icon unserer App kann hier gefunden werden, der Name unserer App und das Theme unserer App.
<activity>
Hier werden unsere Activities erzeugt. Für jede Seite unserer App benötigen wir eine Activity, ansonsten stürzt die App ab. Da dies ein sehr häufiger Fehler ist, werden ihn sicherlich einige von uns auch erleben.
<intent-filter>
Damit legen wir die Main Activity fest, also die, mit welcher wir die App starten. Nur eine Activity sollte dies beinhalten.
Falls ihr Fragen habt, immer raus damit, ich helfe euch sehr gerne. Hinterlasst bitte einfach einen Kommentar.
Teilt diese Seite mit euren Freunden und besucht uns mal auf Facebook und auf Google+, das würde dieser Seite wirklich weiterhelfen, danke sehr. Auch ein Klick auf die Werbung hilft dabei, diese Seite am Laufen zu halten.
Quelle: Original Anleitung auf englisch von Kilobolt Studios
Lektion 1 - Android Einmaleins Lektion 3 - Die Entwicklungsmaschine
Hallo!
Der Link zum Nächsten Kapitel scheint defekt zu sein..
Schade.
Ich habe die gesamten Tutorials bis hierhin durchgearbeitet und das hat fast 2 monate gedauert.Musste zwischendurch noch Java-Basics lernen.
Solange man noch für PC programmiert hat war ich noch voll dabei.
Aber dann gings bergab.
Fast nichts wurde mehr erklärt alles wirkte hastig.Ich war enttäuscht.
Aber dann, ich hatte doch durchgehalten, das Ende.
Was ist das??
Also bei mir hat die App auf Android noch nicht funktioniert.
Immer irgendeine Fehlermeldung oder App nicht gestartet.
Habe mir mehrere Archive runtergeladen. Alle hatten irgendwelche Fehler.
Mal war die MainActivity KLasse falsch, dann irgendwas vonwegen android.graphics kann nicht importiert werden.
Also mal ehrlich, dafür das ich so lange drangesessen habe, ist das enttäuschend.
Ob das nun an einer Anderen ADT oder Eclipse version liegt kann ich nicht sagen( da du alles für api17 und ich für 19 mache), aber fakt ist das meine Android Kenntnisse noch nicht auf dem Level liegen, dass ich das beheben könnte.
Naja trotzdem vielen Dank für den ersten Teil der Tutorial-Reihe.
Gruß Jan
Hallo
Das tut mir wirklich leid, dass du so viele Probleme hattest.
Diese Seite ist ein Start und Hilfe. Ich kann mit den paar Seiten nicht alles abdecken was es zu lernen gibt. Ich glaube das du auf deiner suche nach dem Fehler einiges gelernt hast?
Grüße
Aloha..
das problem ist beseitigt.
Es lag daran, dass ich projekte wie im import export teil beschrieben über das archiv importiert habe.
tatsächlich muss man beim adt aber das archiv entpacken, und bei import android code einfügen.
Viel frust wegen quasi nichts.
Ich bin happy und zock jetzt 😀
Im Artikel steht mehrmals, dass die MainActivity um die Klasse Activity erweitert wird, dabei ist es genau andersherum. Damit kommt auch das mit dem @Override völlig durcheinander.
Die Klasse hinter dem extends ist die Superklasse, die um die Subklasse vor dem extends erweitert wird. Die Klasse MainActivity erweitert also die Klasse Activity. Die Methoden in der MainActivity überschreiben die Methoden der Klasse Activity (oder einer Methode, die Activity geerbt hat), deshalb das @Override.
Diese grundlegenden Sachen solltet ihr unbedingt korrigieren, sonst verwirrt ihr Java – Neulinge eher, als dass sie was lernen.
Hi du hast noch vergessen den Link zu aktualisieren nur als hinweis und danke für die neue Lektion
http://www.basteldroid.de/app-entwicklung/schreiben-von-standart-android-apps/
http://www.basteldroid.de/app-entwicklung/
http://www.basteldroid.de/kapitel-5-lektion-1-android-einmaleins/
Danke für den Hinweis, habe das mal ergänzt.