這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Go 語言將在1.4版本中支援面向Android平台開發
蘋果發布了Swift語言時候,本人就感覺到Google很可能會讓自己的Go語言支援Android系統。果不其然,蘋果的Swift語言讓Google倍感壓力。於是,所有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.