Go 语言将在1.4版本中支持面向Android平台开发
苹果发布了Swift语言时候,本人就感觉到谷歌很可能会让自己的Go语言支持Android系统。果不其然,苹果的Swift语言让谷歌倍感压力。于是,所有Golang开发者的福音来临啦。
David Crawshaw
June 2014
摘要
我们提出将Go语言引入Android平台。重点将支持使用Go语言编写游戏。这些APIs将在AndroidNDK中定义。
背景
Android是一个用于运行应用程序(apps)的操作系统。相比于仅仅提供一个传统的Unix操作系统,应用程序更多的依赖于所提供的平台库和服务。这就意味着没有新的APIs,用于Android的Go运行时直接入口将不会特别有用。
如何将Go引入是非常棘手的事情。因为Android平台是Java编写的,并且拥有数量庞大的API。任何试图使用Go包装这些API都得不到想要的结果。手动建立包装会在特性方面滞后,而自动生成包装器会导致丑陋的Go代码。无论哪种方式,这都会导致程序运行缓慢。
然而,Android应用程序的一个子集:游戏,使用AndroidNDK所提供的一个更小的基于C语言的API表面上。让GO支持Android 提供等同于NDK的特性是可行的。
建议
在Go 1.4 周期中,安卓平台的编译引入到Go代码库,以及包含支持Android的cgo(由Elias Naur贡献)。Dalvik/ART-loadable .so文件将使用Android NDK的外部链接文件生成。
在发布上,我们仍然会提供交叉编译平台,并支持在Linux主机上使用adb工具对Android设备上测试程序。
我们将会提供一个名叫go.mobile的子版本,包括:
- 通过Android NDK 对OpenGL, OpenSL, 和OpenMAX提供支持;
- 一个Java->Go的语言绑定生成器。可以通过Java代码调用的Go的Package,因此游戏菜单Uis可以使用标准SDK构建(有可能支持通过其他语言调用Go,比如Objective-C)。
系统集成 - Android Studio
新特性将会在Go版本稳定之后提供。
本人翻译水平有限,如有错误之处还请见谅啊。
看着Go语言越来越给力了,是不是很想学习一下。那就跟着码术一起学习Golang语言。
欢迎关注码术!一起学习golang.
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)