我知道 Go 程序可以为 Android 编译。
如何在 Go 程序中使用 Android 特定 API,例如获取 GPS 坐标或使用默认浏览器打开 URL?
恐怕目前几乎不可能。在“Meet the Go Team”I/O 会议上,Go 团队的人表示他们没有计划为 Go 添加 Android 支持。
我们现在拥有的只是 ARM 架构的编译器。不幸的是,这对于真正的 Android 应用程序几乎没有用,尽管可以从 Android 设备上的命令行启动此类程序。
大多数 Android 框架都是用 Java 编写的,因此要与它交互,您的代码应编译为 *.so 库,该库将通过 JNI 接口加载和调用。当前的 Go 编译器(gc,不确定 gccgo)是不可能的。
也许您可以使用 绑定到 Android NDK API cgo
,这将允许您从 API 级别 9(Android 2.3)开始在 Go 中创建应用程序
UPD:您现在可以使用 Go 中的 JNI 并使用 golang.org/x/mobile 包自动创建 java 绑定。在 Go 1.4 中,它仍处于试验阶段,但计划将其包含在 Go 1.5 版本中。该软件包还提供了 GL、音频和用户输入的绑定(希望他们也会添加 iOS 支持,并且有一天会兼容 Android 和 iOS)。无论如何,这个包主要面向用 Go 编写游戏,而不是在 Android 上使用 Go 作为 Java 的替代品。
看看我从 Go 编程语言对 Android App 的回答。goandroid项目允许您通过 NDK 在 Go 中创建 Android 应用程序。
(免责声明:我是goandroid的作者)
编辑:正如评论中提到的,Go 1.5 增加了对纯 Go 或 Java 和 Go 混合的 Android 应用程序的官方支持。iOS 也有望在最终的 1.5 版本中及时发布。有关详细信息,请参阅https://github.com/golang/mobile 。
第 1 步:使用 Golang 创建一个独立于平台的 GUI 库,该库使用 OpenGL 进行绘图,并创建一个智能事件和数据绑定系统来编写应用程序。任何使用 OpenGL 的软件都将或多或少具有可移植性。本质上,用 Golang 重写 Kivy。
第 2 步:创建基于自省/反射的包装器,以使用类似于 PyJNIus(也是 Kivy 项目)的 Java 类。
第 3 步:更加努力,因为要达到 Kivy 的水平还有很多工作要做
第 4 步:利润