2012-07-14 74 views
8

Android的API我知道,围棋程序可用于Android的编译。从围棋

我如何使用Android特定的API,喜欢把自己的GPS坐标或Go程序中打开一个URL与默认的浏览器,来自哪里?

回答

9

恐怕这是几乎不可能的时刻。在“Meet the Go Team”I/O会议中,来自Go团队的人表示他们没有计划为Go增加Android支持。

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

大部分的Android框架是用Java编写的,所以与它交互您的代码应该被编译成*。所以libary,将通过JNI接口加载并调用。目前的Go编译器不可能(gc,不确定gccgo)。

也许你会能够使绑定到Android NDK API与cgo,这将使因为API 9级(安卓2.3)

UPD您创造转到应用程序:您现在可以使用JNI从Go使用golang.org/x/mobile包自动创建java绑定。在Go 1.4中它仍然是实验性的,但有计划将它包含到Go 1.5发行版中。该软件包还为GL,音频和用户输入提供了绑定(希望他们还可以添加iOS支持,并且有一天可以兼容Android和iOS)。无论如何,这个软件包主要面向在Go上编写游戏,而不是使用Go作为Android上Java的替代品。

+1

至少这个网络是否可以在本地使用?我的意思是,“net”或“net/http”Go软件包是否可以在Android手机上“开箱即用”? – 2012-07-15 23:18:37

+0

@SebastiánGrignoli是的,这应该是可能的,一些现有的项目做到这一点:https://github.com/huin/chunkymonkey/blob/master/docs/android-server.md – zserge 2012-07-16 16:53:12

+2

这个答案是oudated。 https://github.com/golang/mobile项目包含对Go中Android应用程序的支持。 – 2015-05-10 08:03:47

1

步骤1:使用Golang创建一个独立于平台的GUI库,该库使用OpenGL进行绘制,并使用智能事件和数据绑定系统来编写应用程序。使用OpenGL的任何软件都将具有或多或少的便携性。基本上,在Golang重写Kivy。

第2步:使用类似于PyJNIus(也是Kivy项目)的Java类创建内省/反射基于包装器。

第3步:很多更艰苦的工作,因为有很多事情要做去Kivy

水平

第4步:利润

+0

超越顶端,所以我理解你的答案是“不,目前不可能”。 :) – 2013-08-16 19:01:29

+0

是的,我不想成为一个氛围杀手,但它只是需要时间才能到达那里。我非常喜欢使用Golang而不是Java(或Python)的想法。在Python获得某种类型推理编译器给LLVM的IF或类似的东西之前,我宁愿不承担如此巨大的速度惩罚。 – user823629 2013-08-21 16:39:53

7

看看我的回答Android App from Go programming languagegoandroid项目允许您在Go中通过NDK创建Android应用程序。

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

编辑:由于在评论中提到,进入1.5增加了对纯转到Android应用或如Java的混合官方支持而归。预计iOS也会及时抵达最终的1.5版本。有关更多详细信息,请参阅https://github.com/golang/mobile

+1

goandroid已弃用,请访问https://github.com/golang/mobile获取官方支持。 – 2015-05-10 02:50:48

2

GO 1.4 doc说,“去1.4可以建立运行Android操作系统的ARM处理器的二进制文件,也可以建立一个可以通过Android应用程序在移动subrepository使用支持包加载的.so库”

“golang.org/x/mobile/app”库中有package app选项,它允许您为Android(最终iOS)编写应用程序。