Eine astronomisch korrekte 24-Stunden-Uhr als Android-App.
Die Sonne dient als Stundenzeiger, und der gesamte Sternenhimmel dreht sich über den Tag mit – genau so, wie er über dem eigenen Standort steht.
Dies ist die Android-Portierung. Die ursprüngliche Web-App (reines HTML/Canvas/Vanilla-JS) liegt im Repo AstroClock.
- App – die Uhr im Vollbild (WebView, nutzt die vorhandene
index.html). Zwei Kurz-Links unten links öffnen direkt die passenden System-Menüs, um die Uhr als Live-Hintergrund festzulegen bzw. das Widget aufs Homescreen zu legen. - Live-Wallpaper – die Uhr als lebendiger Startbildschirm-Hintergrund; läuft akkuschonend nur, solange sie sichtbar ist
- Homescreen-Widget – die Uhr im Kompakt-Modus (größere Beschriftung, etwas kleinerer Himmel); aktualisiert minütlich, solange der Bildschirm an ist
- App-Icon – ein rundes Abbild der Uhr
- Sprache: Kotlin
- Ansatz: Die bestehende Web-App wird in einem
WebViewdargestellt. Lokale Dateien (Sternenkatalog, Sternbilder) werden überWebViewAssetLoaderunterhttps://appassets.androidplatform.net/assets/ausgeliefert, damitfetch()ohnefile://-Einschränkungen funktioniert. - Live-Wallpaper: Ein unsichtbarer
WebViewrendert die Uhr; einzelne Standbilder werden percanvas.toDataURL()geholt und auf den Hintergrund gemalt. Beim Ausblenden werden die JS-Timer angehalten → nahezu kein Akkuverbrauch. - Widget: Gleiche Offscreen-WebView-Technik – das Standbild wird als
Bitmapin dieRemoteViewsgeschoben. Der Minuten-Takt kommt von einem selbst neu geplantenAlarmManager-Alarm (nur bei eingeschaltetem Bildschirm).
JAVA_HOME=~/android-studio/jbr ANDROID_HOME=~/Android/Sdk ./gradlew installDebugVoraussetzung: Android SDK (Pfad in local.properties, wird nicht eingecheckt).
Die Dateien unter app/src/main/assets/ (index.html, stars.6.json,
constellations.lines.json, tz-lookup.js) stammen aus der Web-App und
müssen bei Änderungen dort erneut kopiert werden.
Die App ist bewusst datensparsam:
- Keine Erfassung, keine Tracker, keine Werbung, keine Analyse-/Telemetrie- Dienste. Beim normalen Anzeigen der Uhr gibt es keinerlei Netzwerkverkehr.
- Kein Standortzugriff (GPS): Die App fordert keine Standortberechtigung an. Der Ort wird ausschließlich manuell eingegeben.
- Lokale Speicherung: Der gewählte Ort (Breite/Länge) liegt nur in den privaten App-Einstellungen auf dem Gerät und wird nicht in die Cloud gesichert.
- Einzige externe Verbindung: Sucht man einen Ort per Namen, wird der Suchbegriff an den freien Geocoding-Dienst OpenStreetMap Nominatim gesendet, um ihn in Koordinaten umzuwandeln. Gibt man Koordinaten direkt ein, findet kein Netzwerkzugriff statt.
Berechtigungen: INTERNET (nur für die Ortssuche) und USE_EXACT_ALARM
(minütlicher Widget-Takt).
AstroClock ist freie Software unter der GNU General Public License v3.0 (oder einer späteren Version).
Copyright (C) 2026 Holger Schoening
Das bedeutet: Du darfst die App nutzen, weitergeben und verändern – abgeleitete Werke müssen aber ebenfalls unter der GPLv3 quelloffen bleiben. Den vollständigen Lizenztext findest du in der Datei LICENSE.