谷歌的Go語言將支持Android平臺
在前些日子谷歌于2009年發(fā)布的第二款自家語言Go語言剛剛發(fā)布了1.3正式版,大幅度解決了GC問題,最近谷歌開發(fā)版里又有了新爆料:谷歌終于要在1.4版本中正式支持Android系統(tǒng)開發(fā),可以編譯器直接編譯發(fā)布到Android平臺。
概述
我們建議將Go語言引入Android平臺,重點是用Go語言編寫游戲程序,API將在Android NDK中定義。
背景
Android平臺被設(shè)定為一個多應(yīng)用操作系統(tǒng),一個相對于傳統(tǒng)UNIX系統(tǒng)來說更依賴于網(wǎng)絡(luò)庫和服務(wù)的操作系統(tǒng),這意味著我們將為Go運行時開放更多的API。
將Golang帶入Android平臺是一件非常糟糕的事情,因為Android本身是Java構(gòu)建的并且擁有巨量的API,任何試圖將這些API用Go替代的結(jié)果將會導(dǎo)致一個非常糟糕的結(jié)果。無論是手工建立包裝類還是自動建立都會導(dǎo)致程序運行非常緩慢。
然而如果使用基于C的API,通過AndroidNDK來編寫一些游戲類程序可能會帶來意想不到的收獲。
提議
在Golang 1.4周期中,Android平臺的編譯將納入Go的源,并且包含Android支持的cgo(由Elias Naur貢獻(xiàn))。Dalvik-loadable .so外部連接文件的支持也會由Android NDK提供。
在發(fā)布上我們?nèi)匀惶峁┙徊嫫脚_編譯,并且支持在Linux主機(jī)上adb工具在Android設(shè)備上測試程序。
我們將會提供一個名叫g(shù)o.mobile的子版本,包含:
- 通過Android NDK對OpenGL,OpenSL和OpenMAX的支持。
- 一個Java->Go的工具,支持通過Java調(diào)用Go的Package,所以許多游戲的菜單UI可以通過標(biāo)準(zhǔn)SDK構(gòu)建。(有可能會支持通過其他語言調(diào)用Go,比如Objective-C。)
- 集成AndroidStudio
新特性將會在Go1.4穩(wěn)定版中提供。