Ich weiß, dass Go-Programme für Android kompiliert werden können.
Wie kann ich in einem Go-Programm eine Android-spezifische API verwenden, z. B. GPS-Koordinaten abrufen oder eine URL mit dem Standardbrowser öffnen?
Ich fürchte, im Moment ist das kaum möglich. In den "Meet the Go Team" -E / A-Sitzungen gaben die Jungs vom Go-Team an, dass sie keine Pläne haben, Android Go-Unterstützung hinzuzufügen.
Was wir jetzt haben, ist nur ein Compiler für die ARM-Architektur. Leider ist dies für echte Android-Apps ziemlich nutzlos, obwohl solche Programme über die Befehlszeile auf Android-Geräten gestartet werden können.
Der Großteil des Android-Frameworks ist in Java geschrieben. Um damit zu interagieren, sollte Ihr Code in eine * .so-Bibliothek kompiliert werden, die über die JNI-Schnittstelle geladen und aufgerufen wird. Und es ist nicht möglich mit dem aktuellen Go-Compiler (gc, nicht sicher über den gccgo).
Vielleicht können Sie Bindungen mit der Android NDK API mit cgo
herstellen, mit denen Sie Anwendungen in Go seit API Level 9 (Android 2.3) erstellen können
UPD : Sie können jetzt JNI von Go verwenden und Java-Bindungen automatisch mit dem Paket golang.org/x/mobile erstellen. In Go 1.4 ist es noch experimentell, aber es gibt Pläne, es in Go 1.5 Release zu integrieren. Das Paket bietet auch Bindings für GL, Audio und Benutzereingaben (hoffentlich würden sie auch iOS-Unterstützung hinzufügen, und das wäre eines Tages für Android und iOS kompatibel). Wie auch immer, dieses Paket ist hauptsächlich darauf ausgerichtet, Spiele in Go zu schreiben, anstatt Go als Ersatz für Java auf Android zu verwenden.
Sehen Sie sich meine Antwort auf Android App von Go an . Mit dem Goandroid -Projekt können Sie Android-Apps in Go über das NDK erstellen.
(Disclaimer: Ich bin der Autor von Goandroid)
Bearbeiten : Wie in den Kommentaren erwähnt, bietet Go 1.5 offiziellen Support für Android-Apps in reinem Go oder als eine Mischung aus Java und Go. Es wird erwartet, dass iOS rechtzeitig zur finalen Version 1.5 kommt. Weitere Informationen finden Sie Ссылка .
GO 1.4 doc sagt: "Go 1.4 kann Binaries für ARM-Prozessoren erstellen, auf denen das Android-Betriebssystem läuft kann auch eine .so-Bibliothek erstellen, die von einer Android-Anwendung mit den unterstützenden Paketen im mobilen Unterverzeichnis "
" geladen werden kannEs gibt eine Paket-App -Option in der Bibliothek "golang.org/x/mobile/app" können Sie Apps für Android (und schließlich, iOS) schreiben.
Schritt 1: Erstellen Sie eine plattformunabhängige GUI-Bibliothek mit Golang, die OpenGL zum Zeichnen verwendet und ein intelligentes Ereignis- und Datenbindungssystem zum Schreiben der Apps. Jede Software, die OpenGL verwendet, wird mehr oder weniger portabel sein. Im Wesentlichen, schreiben Sie Kivy in Golang neu.
Schritt 2: Erstellen Sie einen introspektions- / reflektionsbasierten Wrapper für die Verwendung von Java-Klassen ähnlich PyJNIus (auch ein Kivy-Projekt).
Schritt 3: Viel harte Arbeit, weil es viel zu tun gibt, um das Niveau von Kivy zu erreichen.
Schritt 4: Profit