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] – ↷ Seite von der_einstieg_in_java_fuer_android nach archive:der_einstieg_in_java_fuer_android verschoben fla40246 | 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: | ||
- | ====== | + | ====== |
- | + | ||
- | [[Category: | + | |
- | [[Category: | + | |
- | {{topicon|android.png}} | + | |
- | Diese Ergänzung zum Buch " | + | |
+ | Diese Ergänzung zum Buch " | ||
**Hinweise** | **Hinweise** | ||
Zeile 13: | Zeile 9: | ||
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. | 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: http:// | + | 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? ====== | + | ===== 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 < | + | |
- | {{imagetext|and-prog-abb-1-1.png|Abbildung 1.1: Entwicklung von 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 '' |
- | Der Java–Compiler übersetzt das Java–Programm für die App wie alle anderen Java–Programme in eine <tt>.class</tt>–Datei. Diese <tt>.class</tt>–Datei ist nun im Gegensatz zu Plattfor-men wie der Java–Micro–Edition nicht direkt auf dem Smartphone ablauffähig, | + | {{: |
+ | |||
+ | **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, | 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 ====== | + | ===== Installation der Entwicklungsumgebung für Android ===== |
Wie im Buch unter Abschnitt 1.3 beschrieben, | Wie im Buch unter Abschnitt 1.3 beschrieben, | ||
- | :http:// | + | * **** http:// |
beschrieben. Zur Installation empfiehlt es sich, in der in **Tabelle 1.1** beschriebenen Reihenfolge vorzugehen. | beschrieben. Zur Installation empfiehlt es sich, in der in **Tabelle 1.1** beschriebenen Reihenfolge vorzugehen. | ||
- | {|class=" | + | ^Komponente |
- | !Komponente | + | |JDK |http:// |
- | !Download bzw. Beschreibung | + | |Eclipse |
- | |- | + | |SDK für Android |
- | |JDK | + | |ADT Plugin (Beschreibung)|http:// |
- | |http:// | + | |ADT-URL für Eclipse |
- | |- | + | |
- | |Eclipse | + | |
- | |http:// | + | |
- | |- | + | |
- | |SDK für Android | + | |
- | |http:// | + | |
- | |- | + | |
- | |ADT Plugin (Beschreibung) | + | |
- | |http:// | + | |
- | |- | + | |
- | |ADT-URL für Eclipse | + | |
- | |https:// | + | |
- | |} | + | |
- | **Tabelle 1.1: Werkzeuge zur Entwicklung von Apps für Android | + | |
- | ===== Die Qual der Wahl der Versionen und Varianten der Komponenten ===== | + | **Tabelle 1.1: Werkzeuge zur Entwicklung von Apps für Android** |
- | Bei Java empfiehlt sich die jeweils aktuelle Version 1.6, bei Eclipse eine Variante wie z.B. " | + | |
+ | ==== 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 ==== | ||
- | ===== 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 " | 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:// | + | * **** 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 // | + | 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 | + | ==== 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. | + | |
- | {{imagetext|and-prog-abb-1-2.png|Abbildung 1.2: Neue Ansichten | + | **Abbildung 1.2** zeigt die für die Entwicklung unter Android |
- | ===== 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 // | + | **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 // | ||
+ | |||
+ | ===== Erstellung und Ablauf des ersten Programms ===== | ||
- | ====== 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...// | 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...// | ||
- | {{imagetext|and-prog-abb-1-3.png|Abbildung 1.3: Auswahl eines Arbeitsbereichs}} | + | {{:wiki:and-prog-abb-1-3.png}} |
+ | |||
+ | **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 " | 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 " | ||
- | {{imagetext|and-prog-abb-1-4.png|Abbildung 1.4: Arbeitsoberfläche von Eclipse}} | + | {{:wiki:and-prog-abb-1-4.png}} |
+ | |||
+ | **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. | ||
- | 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 | + | {{: |
- | {{imagetext|and-prog-abb-1-5.png|Abbildung 1.5: Der erste Schritt beim Anlegen eines Projekts für Android}} | + | **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. | 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. | ||
- | {{imagetext|and-prog-abb-1-6.png|Abbildung 1.6: Der 2. Schritt beim Anlegen eines Projekts für Android: Auswahl einer Plattform}} | + | {{:wiki:and-prog-abb-1-6.png}} |
- | Nach Drücken von //Finish// in **Abbildung 1.7** erhält man in **Abbildung 1.8** eine erste lauffähige App für Android | + | **Abbildung 1.6: Der 2. Schritt beim Anlegen eines Projekts |
- | {{imagetext|and-prog-abb-1-7.png|Abbildung 1.7: Der 3. Schritt beim Anlegen eines Projekts | + | Nach Drücken von //Finish// in **Abbildung |
- | {{imagetext|and-prog-abb-1-8.png|Abbildung 1.8: Die erste App unter Android}} | + | {{:wiki:and-prog-abb-1-7.png}} |
- | Unsere erste App enthält eine Activity | + | **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 // | Eclipse übersetzt das Programm ohne besondere Aufforderung durch den Anwender. Nach einer Sicherung des Programms im Arbeitsbereich über das // | ||
- | {{imagetext|and-prog-abb-1-9.png|Abbildung 1.9: Unsere erste Android-App läuft!}} | + | {{:wiki:and-prog-abb-1-9.png}} |
+ | |||
+ | **Abbildung 1.9: Unsere erste Android-App läuft!** | ||
+ | |||
+ | ===== Aufbau einer Applikation für Android ===== | ||
- | ====== Aufbau einer Applikation für Android ====== | ||
Die Applikation für Android besteht aus verschiedenen Teilen: | 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: < | ||
+ | - 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** '' | ||
- | **Listing 1.1: Die Activity** | + | <code java> |
- | <source lang=" | + | |
package de.jo.myapps; | package de.jo.myapps; | ||
Zeile 125: | Zeile 136: | ||
} | } | ||
} | } | ||
- | </source> | + | </code> |
- | Unsere Activity ist von der Basisklasse | + | Unsere Activity ist von der Basisklasse |
- | Man bezeichnet | + | Man bezeichnet |
+ | **Listing 1.2: Die generierte Datei** '' | ||
- | **Listing 1.2: Die generierte Datei** | + | <code java> |
- | <source lang=" | + | |
/* AUTO-GENERATED FILE. DO NOT MODIFY. | /* AUTO-GENERATED FILE. DO NOT MODIFY. | ||
* | * | ||
Zeile 160: | Zeile 171: | ||
} | } | ||
} | } | ||
- | </source> | + | </code> |
- | 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 | + | 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:** '' | ||
- | **Listing 1.3: Das Layout: | + | <code xml> |
- | <source lang=" | + | |
<?xml version=" | <?xml version=" | ||
< | < | ||
Zeile 179: | Zeile 190: | ||
</ | </ | ||
- | </source> | + | </code> |
- | Das Layout ordnet alle Komponenten linear an, d. h. die Komponenten werden der Reihe nach von Oben nach Unten (<tt>vertical</tt>) angeordnet. Dabei füllt das Layout den Bereich seiner Eltern (<tt>parent</tt>) sowohl horizontal wie auch vertikal aus. | + | Das Layout ordnet alle Komponenten linear an, d. h. die Komponenten werden der Reihe nach von Oben nach Unten ('' |
- | Die <tt>TextView</ | + | Die '' |
+ | **Listing 1.4: Die Datei mit den Zeichenketten: | ||
- | **Listing 1.4: Die Datei mit den Zeichenketten: | + | <code xml> |
- | <source lang="xml"> | + | |
<?xml version=" | <?xml version=" | ||
< | < | ||
Zeile 195: | Zeile 206: | ||
</ | </ | ||
- | </source> | + | </code> |
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: | 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: | ||
- | <source lang="java"> | + | <code java> |
System.out.println(getResources().getString(R.string.app_name)); | System.out.println(getResources().getString(R.string.app_name)); | ||
- | </source> | + | </code> |
- | //LogCat// zeigt uns diesen Text für die Applikation | + | //LogCat// zeigt uns diesen Text für die Applikation |
+ | **Listing 1.5: Die Datei mit den Einstellungen für die App:** '' | ||
- | **Listing 1.5: Die Datei mit den Einstellungen für die App: | + | <code xml> |
- | <source lang=" | + | |
<?xml version=" | <?xml version=" | ||
< | < | ||
Zeile 232: | Zeile 243: | ||
</ | </ | ||
- | </source> | + | </code> |
- | Die Datei <tt>AndroidManifest.xml</ | + | 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. | 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. | ||
Zeile 240: | Zeile 251: | ||
Wir müssen jede Activity der App in dieser Datei aufführen. Mehr dazu später. | Wir müssen jede Activity der App in dieser Datei aufführen. Mehr dazu später. | ||
- | ====== Siehe auch ====== | + | ===== Siehe auch ===== |
- | *Original-Dokument von Prof. Dr. Jobst: | + | |
- | *[[draft: | + | |
- | *[[Eclipse-Varianten]] | + | * [[archive: |
+ | * [[archive: |