Android-Apps programmieren lernen für Dummies
Willemers Informatik-Ecke

Herzlich Willkommen

... auf der Webseite zu dem Buch Android-Apps programmieren lernen für Dummies. Das Buch richtet sich an Programmieranfänger und das machte dieses Buch etwas schwierig, weil die Android-Programmierung eigentlich Vorkenntnisse in der OOP benötigt. Ich habe versucht, alles Benötigte mitzuliefern und an den sinnvollen Stellen einzuarbeiten.

Dadurch war es natürlich erforderlich, an bestimmten Stellen zu vereinfachen. Auf dieser Seite finden Sie einmal die Projekte zum Herunterladen, falls Sie die Beispiele im Buch nachvollziehen, aber nicht komplett abtippen wollen.

Dann sollen hier Druckfehler im Buch korrigiert werden. Bislang habe ich noch keine Rückmeldungen bekommen. Ich nehme es einfach mal als positives Zeichen.

Ich habe hier auf diesen Seiten schon seit einigen Jahren einige Notizen aus der Android-Programmierung festgehalten. Wenn Sie also mit dem Inhalt des Buches fertig sind, können Sie den folgenden Link verwenden, um eventuell etwas tiefer in die Materie einzusteigen oder auch Themen im Buch noch einmal etwas anders dargestellt zu lesen.

Download der Projekte

Ergänzungen

Emulator in eigenem Fenster laufen lassen

Kurz nach Drucklegung wurde eine neue Version von Android Studio aufgelegt, die nun den Emulator nicht mehr in einem eigenen Fenster startet, sondern diesen in das Fenster von Android Studio integriert.

Das ist in manchen Situationen durchaus praktisch, vor allem bei kleinen Monitoren aber auch lästig. Sie können den Zustand im Buch herstellen, indem Sie rechts oberhalb des Emulators auf das Zahnrad klicken. Aus dem Menü wählen Sie View Mode | Window.

Im gleichen Menü finden Sie View Pinned, mit dem Sie den Emulator zurück ins IDE-Fenster holen.

Probleme mit den Versionen

Das Leben des Android-Programmierers ist nicht immer leicht. Ein Problem sind die ständigen Neuerungen der APIs. Manchmal gibt es bei den neueren Versionen Gezicke zwischen den Versionen.

Aus diesem Grund ist es sinnvoll, direkt nach dem Anlegen eines Projekts erst einmal zu versuchen, das leere Projekt zu starten. Wenn das nicht gelingt, sollten Sie erst alle Fehler beseitigen, denn später wird es nur noch komplizierter.

Ich erhielt beispielsweise einen Dependency-Fehler. Der zentrale Punkt ist der Dialog Project Structure, den Sie über das Menü File erreichen.

File | Project Strucure | Modules | Source Compatibility und Target Compatibility

Hier stand bei mir Java 8. Ich habe es auf Java 11 gestellt. Das war bei mir die neueste verfügbare Version in der Klappbox. Ok klicken und noch einmal versuchen zu starten.

Gradle Scripts | build.gradle Module

Eine Quelle der verschiedenen Versionen und den Abhängigkeiten finden Sie in der Datei build.gradle unter den Gradle-Scripts. Darin finden Sie die Android-API-Version für Ziel und Kompilierung.

compileSdk 32
...
targetSdk 32
Es gab Depency-Fehler, die darauf hinwiesen, dass mindestens Version 33 benötigt würde. Das war aber im Dialog nicht verfügbar. In der Datei habe ich die beiden Werte 32 auf 34 erhöht.

Als sich das Programm nicht starten ließ, weil der grüne Pfeil fehlte, habe ich über das Menü Build | Make Project aufgerufen.

Es erscheint eine Warnung (gelb) im unteren Fenster. Diese empfielt eine andere Gradle-Version als die bisherige 7.3.0, weil diese nur bis Version 32 reicht.

File | Project Strucure | Project | Android Gradle Plugin Version

Dort ließ sich die Version von 7.3.0 auf 7.3.1 erhöhen.

Nun war der grüne Pfeil bzw. Run | Run verfügbar und die Emulation startete. Schlimmstenfalls müssen Sie noch eine Emulation anlegen. Das ist aber im Buch beschrieben.

Temperatursensor

Im Buch wurde im Kapitel Sensoren auch der Temperatursensor als TYPE_TEMPERATURE erwähnt. Dieser misst die Temperatur der CPU und ist deprecated, wird also in aktuellen Smartphones nicht mehr unterstützt.

Will man die Außentemperatur messen, ist TYPE_AMBIENT_TEMPERATE der richtige Sensor. Dieser ist noch aktuell. Leider besitzen nur wenige Geräte einen solchen Sensor. Meine Smartphones können es jedenfalls alle nicht.