Da nun Weihnachtsferien sind hatte ich endlich wieder freie Zeit für sowas. Ich habe ein kleines Programm (sogenanntes App) für meine Windrad Statistiken geschrieben. Damit kann ich die Messwerte einfach beobachten und ggf. in den Betrieb eingreifen.
Android selbst basiert auf einem Linux Kern. Die Anwendungen selbst sind Java Programme. Es gibt ein extrem mächtiges Framework auf das man zurückgreifen kann.
Zum Programmieren (unter Windows) benötigt man folgendes:
- Android SDK
- Windows-Treiber für Telefon aktualisieren (war bei mir nötig damit man Programme zum Telefon übertragen kann)
- ADT (Android Development Tools) für Eclipse (wenn man wie ich Java mit Eclipse programmiert)
Der Android Developer Guide ist sehr hilfreich und einfach aufgebaut. Ich habe mir dort einige Tutorials durchgelesen und begonnen Beispielprogramme an meine Anforderungen anzupassen.
Super finde ich dass man die Programme sofort am PC emulieren kann. Man muss also vorerst nichteinmal ein Android Telefon dafür haben. Im nachfolgenden Bild ist der Android Emulator zu sehen:
Man sieht links den Bildschirm des Smartphones, genauso wie er in Wirklichkeit aussehen würde. Rechts sind die Bedienelemente des Smartphones angeordnet. Wenn man zum Beispiel auf die Taste "Menu" klickt dann simuliert man einen Klick auf die Menü-Taste des Telefons.
Mein Programm lädt regelmässig den aktuellen Systemstatus direkt vom Windrad Controller über das Internet und zeigt den Status am Bildschirm an.Über ein sogenanntes "Options-Menü" (Menü-Taste drücken) können Sonderfunktionen (zB. Windrad anhalten) aufgerufen werden.
Im nachfolgenden Bild sieht man (leider nur sehr schlecht) das gleiche Programm am Mobiltelefon:
Einfache Anwendungen wie diese sind eigentlich relativ einfach in wenigen Stunden umzusetzen. Was mich eine Weile gekostet hat war folgendes: arbeitsintensive Programmteile welche länger dauern können (zum Beispiel Daten vom Netzwerk holen) müssen von der GUI (Grafik-Oberfläche) getrennt werden. In Android bzw. Java macht man das mit sogenannten Threads. Diese umzusetzen sind ein wenig Trickreich. Dank der vielen Tutorials ist das aber ohne Weiteres auch für Anfänger möglich.
Sehr hilfreich ist die Android Developer Seite: