Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
archive:der_einstieg_in_java_fuer_android [2023/11/15 12:48] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | archive:der_einstieg_in_java_fuer_android [2024/01/18 11:49] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden luf39862 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Der Einstieg in Java für Android ====== | ||
+ | |||
+ | Diese Ergänzung zum Buch " | ||
+ | |||
+ | **Hinweise** | ||
+ | |||
+ | Diese Ergänzung zum Buch " | ||
+ | |||
+ | Smartphones sind batteriebetriebene Geräte. Der Stromverbrauch ist eine kritische Größe, die man nie aus dem Auge verlieren darf. Außerdem sind die Größen des RAM sowie des Hintergrundspeichers sowie die Rechenleistung im Vergleich zu PCs eng beschränkt. Diese Restriktionen erfordern in Teilen eine gegenüber dem PC erheblich aufwändigere Programmierung. Meine Empfehlung: starten Sie bei der Java-Programmierung mit dem Buch. Wenn Sie eine gewisse Sicherheit gewonnen haben, kann es viel Spaß machen, Apps für Android zu entwickeln. Dann können Sie diese Ergänzungen für Ihren persönlichen Start in die Welt der Androiden benützen. | ||
+ | |||
+ | Sie finden alle Programme zu dieser Ergänzung in Form von Eclipse-Projekten auf der Homepage des Autors: < | ||
+ | |||
+ | ===== Wie entwickelt man Apps für Android? ===== | ||
+ | |||
+ | Eine App für Android ist eine Applikation für das System Android. Eine solche App läuft im Prinzip auf einem Smartphone für Android. Wir entwickeln die App aber nicht auf dem Smartphone, sondern genauso wie die anderen Java–Programme auf dem PC mit der integrierten Entwicklungsumgebung Eclipse. Dazu benötigen wir das Android SDK sowie ein Zusatzmodul für Eclipse, das Plugin für Android. Das Android SDK enthält mit dem AVD (Android Virtual Device) einen Simulator, mit dessen Hilfe wir Apps auch auf dem PC laufen lassen können. Die **Abbildung 1.1** zeigt die prinzipiellen Abläufe. Eine App besteht nicht nur aus einem Pro-gramm, sondern enthält noch sog. Ressourcen wie Bilder, Texte oder Beschreibungen im '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.1: Entwicklung von Apps für Android** | ||
+ | |||
+ | Der Java–Compiler übersetzt das Java–Programm für die App wie alle anderen Java–Programme in eine '' | ||
+ | |||
+ | Von diesen Abläufen merkt der Benutzer der Eclipse–Entwicklungsumgebung nichts, man bringt seine App wie ein übliches Java–Programm zum Ablauf. Dazu kann man das Smartphone über ein USB–Kabel an den PC anschließen. Dann besorgt das Entwicklungssystem alle Schritte: Übersetzen, | ||
+ | |||
+ | ===== Installation der Entwicklungsumgebung für Android ===== | ||
+ | |||
+ | Wie im Buch unter Abschnitt 1.3 beschrieben, | ||
+ | |||
+ | * **** http:// | ||
+ | |||
+ | beschrieben. Zur Installation empfiehlt es sich, in der in **Tabelle 1.1** beschriebenen Reihenfolge vorzugehen. | ||
+ | |||
+ | ^Komponente | ||
+ | |JDK |http:// | ||
+ | |Eclipse | ||
+ | |SDK für Android | ||
+ | |ADT Plugin (Beschreibung)|http:// | ||
+ | |ADT-URL für Eclipse | ||
+ | |||
+ | **Tabelle 1.1: Werkzeuge zur Entwicklung von Apps für Android** | ||
+ | |||
+ | ==== Die Qual der Wahl der Versionen und Varianten der Komponenten ==== | ||
+ | |||
+ | Bei Java empfiehlt sich die jeweils aktuelle Version 1.6, bei Eclipse eine Variante wie z.B. " | ||
+ | |||
+ | ==== Smartphone über USB anschließen und Apps laufen lassen ==== | ||
+ | |||
+ | Wir erstellen die Programme am PC und lassen sie auf dem Smartphone laufen. Zur Verbindung zwischen PC und Smartphone benützen wir ein USB–Kabel. Unter Windows benötigen Sie einen für das Smartphone geeigneten USB–Treiber. Bei Smartphones der Firma Samsung ist u. U. die Installation des Dienstprogramms " | ||
+ | |||
+ | * **** http:// | ||
+ | |||
+ | Die Installation von Apps auf Smartphones ist ein sicherheitskritischer Schritt und deswegen nicht ohne die ausdrückliche Erlaubnis möglich. Dies muss man unter Android 4.x unter // | ||
+ | |||
+ | ==== Vorbereiten von Eclipse ==== | ||
+ | |||
+ | **Abbildung 1.2** zeigt die für die Entwicklung unter Android möglichen Views, die man aus der Eclipse–Entwicklungsumgebung unter //Window → Show View → Other...// aktivieren kann. Die View //Devices// zeigt die angeschlossenen Geräte. Drückt man in dieser Ansicht das Symbol für Kamera, so erhält man Bildschirmabdrucke vom über USB angeschlossenen Smartphone. Dies ist auch unabhängig vom Programmieren nützlich. Die View //LogCat// liefert eine Ansicht auf alle Systemmeldungen. Damit kann man Ausgaben des Programms auf dem Smartphone lesen. Dieses sog. //Logging// kann bei der Suche nach Fehlern sehr hilfreich sein. Mit der View //File Explorer// haben Sie Zugriff auf einen Teil des Dateisystems des Smartphones. Sie können auf die das Dateisystem der SD-Karte zugreifen und Dateien vom PC auf das Smartphone und umgekehrt übertragen. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.2: Neue Ansichten für Android auswählen** | ||
+ | |||
+ | ==== Entwicklungssystem für Android über Eclipse verwalten ==== | ||
+ | |||
+ | Wenn das ADT Plugin installiert ist, können Sie das Entwicklungssystem für Android unter //Window → Android SDK Manager// verwalten. Sie können Teile entfernen oder aktualisisieren. Achten Sie darauf, dass Sie zumindest diejenigen Teile installieren, | ||
+ | |||
+ | Unter //Window → AVD Manager// verwalten Sie die sog. //Android Virtual Devices//. Hier legt man Simulatoren für die eigenen Apps an, wenn man sie nicht auf dem Smartphone laufen lassen will bzw. kann. Der Start eines sog. AVD kann relativ lange dauern. Man braucht etwas Geduld, bis sich der Simulator zeigt. Deswegen sollte man den Simulator nicht nach jedem Programmlauf einer App beenden. Der Simulator bildet das reale Smartphone nicht vollständig ab, es fehlen diverse Sensoren, die Kamera usw., aber für den Einstieg in die Programmierung mit Android reicht der Simulator aus. | ||
+ | |||
+ | ===== Erstellung und Ablauf des ersten Programms ===== | ||
+ | |||
+ | Nach dem Start fragt Eclipse nach dem Ordner für den Arbeitsbereich zum Ablegen aller erstellten Programme. Sie können den Ordner bei den eigenen Daten oder in einem beliebigen Verzeichnis anlegen. Wenn man bei zukünftigen Starts von Eclipse Fragen nach der Lage des Arbeitsbereichs vermeiden will, kann man das Häkchen bei der //Use this as default...// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.3: Auswahl eines Arbeitsbereichs** | ||
+ | |||
+ | Danach meldet sich Eclipse mit seinem Willkommensbildschirm. Sie können jetzt das Eclipse-System erkunden oder gleich weiter zum Arbeitsbereich gehen, indem Sie auf das Pfeil–Symbol am rechten Rand des Bildschirms klicken. Danach sehen Sie die Arbeitsoberfläche von Eclipse aus **Abbildung 1.4**. Am linken Rand finden Sie den " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.4: Arbeitsoberfläche von Eclipse** | ||
+ | |||
+ | Zunächst müssen wir unter dem Menüpunkt //File → New → Android Project// ein neues Projekt für Android erzeugen. Das Projekt enthält die Java–Programme der App sowie Bilder und sonstige benötigte Ressourcen. Wir geben in **Abbildung 1.5** einen Namen für das Projekt ein und Klicken auf //Next//. Im nächsten Schritt wählen wir eine Plattform für den Ablauf aus. **Abbildung 1.6** zeigt, wie man aus den installierten Plattformen als Ziel Android 4.0.3 auswählt. Wenn Sie die Programme auf einem Smartphone ablaufen lassen wollen, müssen Sie die Version von Android auf Ihrem Handy oder eine niedrigere Version wählen. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.5: Der erste Schritt beim Anlegen eines Projekts für Android** | ||
+ | |||
+ | Mit //Next// erhalten wir den in **Abbildung 1.7** angegebenen Dialog, in dem wir noch den Namen des Packages sowie den Namen der Activity eingeben müssen. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.6: Der 2. Schritt beim Anlegen eines Projekts für Android: Auswahl einer Plattform** | ||
+ | |||
+ | Nach Drücken von //Finish// in **Abbildung 1.7** erhält man in **Abbildung 1.8** eine erste lauffähige App für Android mit einer Activity namens '' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.7: Der 3. Schritt beim Anlegen eines Projekts für Android** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.8: Die erste App unter Android** | ||
+ | |||
+ | Unsere erste App enthält eine Activity '' | ||
+ | |||
+ | Eclipse übersetzt das Programm ohne besondere Aufforderung durch den Anwender. Nach einer Sicherung des Programms im Arbeitsbereich über das // | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Abbildung 1.9: Unsere erste Android-App läuft!** | ||
+ | |||
+ | ===== Aufbau einer Applikation für Android ===== | ||
+ | |||
+ | Die Applikation für Android besteht aus verschiedenen Teilen: | ||
+ | |||
+ | - Eine Activity: '' | ||
+ | - Die Datei mit den generierten Konstanten: '' | ||
+ | - Eine Datei mit der Beschreibung des Layouts: '' | ||
+ | - Eine Datei mit Werten: '' | ||
+ | - Die Datei mit den Einstellungen für die App: '' | ||
+ | |||
+ | **Listing 1.1: Die Activity** '' | ||
+ | |||
+ | <code java> | ||
+ | package de.jo.myapps; | ||
+ | |||
+ | import android.app.Activity; | ||
+ | import android.os.Bundle; | ||
+ | |||
+ | public class HelloWorldActivity extends Activity { | ||
+ | /** Called when the activity is first created. */ | ||
+ | @Override | ||
+ | public void onCreate(Bundle savedInstanceState) { | ||
+ | super.onCreate(savedInstanceState); | ||
+ | setContentView(R.layout.main); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Unsere Activity ist von der Basisklasse '' | ||
+ | |||
+ | Man bezeichnet '' | ||
+ | |||
+ | **Listing 1.2: Die generierte Datei** '' | ||
+ | |||
+ | <code java> | ||
+ | /* AUTO-GENERATED FILE. DO NOT MODIFY. | ||
+ | * | ||
+ | * This class was automatically generated by the | ||
+ | * aapt tool from the resource data it found. | ||
+ | * should not be modified by hand. | ||
+ | */ | ||
+ | |||
+ | package de.jo.myapps; | ||
+ | |||
+ | public final class R { | ||
+ | public static final class attr { | ||
+ | } | ||
+ | |||
+ | public static final class drawable { | ||
+ | public static final int ic_launcher = 0x7f020000; | ||
+ | } | ||
+ | |||
+ | public static final class layout { | ||
+ | public static final int main = 0x7f030000; | ||
+ | } | ||
+ | |||
+ | public static final class string { | ||
+ | public static final int app_name = 0x7f040001; | ||
+ | public static final int hello = 0x7f040000; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Diese Datei enthält Konstanten, die wir im Programm verwenden können. Diese Konstanten werden von einem Programm der Entwicklungsumgebung automatisch aus den Ressourcen erzeugt. In der ersten Activity wird die Konstante '' | ||
+ | |||
+ | **Listing 1.3: Das Layout:** '' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | android: | ||
+ | android: | ||
+ | android: | ||
+ | |||
+ | < | ||
+ | android: | ||
+ | android: | ||
+ | android: | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Das Layout ordnet alle Komponenten linear an, d. h. die Komponenten werden der Reihe nach von Oben nach Unten ('' | ||
+ | |||
+ | Die '' | ||
+ | |||
+ | **Listing 1.4: Die Datei mit den Zeichenketten: | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | |||
+ | <string name=" | ||
+ | <string name=" | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | In dieser Datei fassen wir die Texte im Programm zusammen, wenn wir uns eine einfache Internationalisierung ermöglichen wollen. Im Programm könnten wir einen Text wie folgt ausgeben: | ||
+ | |||
+ | <code java> | ||
+ | System.out.println(getResources().getString(R.string.app_name)); | ||
+ | </ | ||
+ | |||
+ | //LogCat// zeigt uns diesen Text für die Applikation '' | ||
+ | |||
+ | **Listing 1.5: Die Datei mit den Einstellungen für die App:** '' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | package=" | ||
+ | android: | ||
+ | android: | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | android: | ||
+ | android: | ||
+ | android: | ||
+ | < | ||
+ | android: | ||
+ | android: | ||
+ | < | ||
+ | <action android: | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Die Datei '' | ||
+ | |||
+ | In dieser Datei führen wir alle von der App angeforderten Rechte auf. Wenn der Anwender bei der Installation der App die angeforderten Rechte wie Zugriff auf das Netzwerk usw. einräumt, dann – und nur dann – darf die App auf das Netzwerk zugreifen. | ||
+ | |||
+ | Wir müssen jede Activity der App in dieser Datei aufführen. Mehr dazu später. | ||
+ | |||
+ | ===== Siehe auch ===== | ||
+ | |||
+ | * Original-Dokument von Prof. Dr. Jobst: {{wiki: | ||
+ | * [[archive: | ||
+ | * [[archive: | ||