来自Go的Android API

Seb*_*oli 9 android go

我知道可以为Android编译Go程序.

如何在Go程序中使用Android特定API,例如获取GPS坐标或使用默认浏览器打开URL?

zse*_*rge 9

我担心此刻几乎不可能.在"Meet the Go Team"I/O会议中,来自Go团队的人表示他们没有计划向Go添加Android支持.

我们现在拥有的只是ARM架构的编译器.不幸的是,这对于真正的Android应用来说几乎没用,尽管这些程序可以从Android设备上的命令行启动.

大多数Android框架都是用Java编写的,所以为了与它交互,你的代码应该编译成一个*.so libary,它将通过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中的游戏,而不是使用Go作为Android上Java的替代品.

  • 这个答案是oudated.https://github.com/golang/mobile项目包括对Go中的Android应用程序的支持. (2认同)

Eli*_*aur 7

从Go编程语言看看我对Android App的回答.该goandroid项目允许您通过NDK创建转到Android应用.

(免责声明:我是goandroid的作者)

编辑:正如评论中所提到的,Go 1.5在纯Go中添加了对Android应用程序的官方支持,或者作为Java和Go的混合添加.预计iOS也将及时到达最终的1.5版本.有关详细信息,请参阅https://github.com/golang/mobile.