Newer
Older
**Einführung in die Android-Entwicklung mit Lazarus und Free Pascal**
Demo-Projekt am Beispiel der Steuerung einer Fritzbox (Smart Home)
Die bevorzugten Programmiersprachen für Android-Apps sind Java und Kotlin. Hier soll es jedoch um den **Free Pascal Compiler** (FPC) gehen.
Zusammen mit der Entwicklungsumgebung **Lazarus** und einigen Erweiterungen lassen sich Android-Apps relativ komfortabel erstellen. Wir erläutern die nötigen Schritte am Beispiel eines Projekts, mit dem sich eine Fritzbox (Smart Home) steuern lässt.
Die Android-Beispiel-App erläutert die folgenden Aufgaben:
- Android-Benutzeroberfläche erstellen und Elemente ausrichten
- Bedienelemente zur Laufzeit erzeugen
- Einstellungen speichern und wieder einlesen
- Abfragen über einen HTTP-Client
**Projekt für Linux/Windows**
SmartFritzSchalter eignet sich für Linux oder Windows. Es enthält im Wesentlichen den gleichen Quellcode wie die Android-App, was die Programmlogik betrifft. Es empfiehlt sich, immer zuerst für Linux zu programmieren, soweit das die gewünschten Funktionen zulassen. Ein Linux-Projekt lässt sich debuggen, was bei der Android-App nur sehr eingeschränkt möglich ist.
**Benötigte Software**
Fpcupdeluxe (Lazarus/FPC installieren): https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases
Zusätzliche Pakete für Linux (Ubuntu/Mint):
```bash
sudo apt install libx11-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev subversion git freeglut3-dev
```
Zusätzliche Module (über Fpcupdeluxe installieren): ECCControls, hashlib4pascal und lamw
Android Studio für Linux (Android SDK/NDK): https://developer.android.com/studio
In Lazarus erzeugen Sie das Installationspaket („apk“) mit Strg-F1 („Start -> [LAMW] Build Android Apk and Run“). Das Programm wird automatisch auf den laufenden Android-Emulator (Android Studio) oder ein per USB angeschlossenes Android-Gerät übertragen und gestartet.
**Anders als im Artikel angegeben**, hat die aktuelle Version des Android Emulators auch Zugriff auf das lokale Netzwerk.
Es sind daher keine weiteren Masßnahmen erforderlich.


