Go語(yǔ)言將支持Android
創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)定制網(wǎng)站開(kāi)發(fā),是成都網(wǎng)站維護(hù)公司,為辦公空間設(shè)計(jì)提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開(kāi)發(fā)等。成都網(wǎng)站設(shè)計(jì)熱線:028-86922220
概述
我們建議將Go語(yǔ)言引入Android平臺(tái),重點(diǎn)是用Go語(yǔ)言編寫(xiě)游戲程序,API將在Android
NDK中定義。
背景
Android平臺(tái)被設(shè)定為一個(gè)多應(yīng)用操作系統(tǒng),一個(gè)相對(duì)于傳統(tǒng)UNIX系統(tǒng)來(lái)說(shuō)更依賴于網(wǎng)絡(luò)庫(kù)和服務(wù)的操作系統(tǒng),這意味著我們將為Go運(yùn)行時(shí)開(kāi)放更多的API。
將Golang帶入Android平臺(tái)是一件非常糟糕的事情,因?yàn)锳ndroid本身是Java構(gòu)建的并且擁有巨量的API,任何試圖將這些API用Go替代的結(jié)果將會(huì)導(dǎo)致一個(gè)非常糟糕的結(jié)果。無(wú)論是手工建立包裝類還是自動(dòng)建立都會(huì)導(dǎo)致程序運(yùn)行非常緩慢。
然而如果使用基于C的API,通過(guò)AndroidNDK來(lái)編寫(xiě)一些游戲類程序可能會(huì)帶來(lái)意想不到的收獲。
提議
在Golang
1.4周期中,Android平臺(tái)的編譯將納入Go的源,并且包含Android支持的cgo(由Elias
Naur貢獻(xiàn))。Dalvik-loadable
.so外部連接文件的支持也會(huì)由Android
NDK提供。
在發(fā)布上我們?nèi)匀惶峁┙徊嫫脚_(tái)編譯,并且支持在Linux主機(jī)上adb工具在Android設(shè)備上測(cè)試程序。
我們將會(huì)提供一個(gè)名叫g(shù)o.mobile的子版本,包含:
1、通過(guò)Android
NDK對(duì)OpenGL,OpenSL和OpenMAX的支持。
2、一個(gè)Java-Go的工具,支持通過(guò)Java調(diào)用Go的Package,所以許多游戲的菜單UI可以通過(guò)標(biāo)準(zhǔn)SDK構(gòu)建。(有可能會(huì)支持通過(guò)其他語(yǔ)言調(diào)用Go,比如Objective-C。)
3、集成AndroidStudio
新特性將會(huì)在Go1.4穩(wěn)定版中提供。
go可以在安卓運(yùn)行的,github點(diǎn)抗 /golang/mobile,這是用golang做移動(dòng)端開(kāi)發(fā)的庫(kù),
go是靜態(tài)編譯語(yǔ)言,不是腳本語(yǔ)言
蘋(píng)果公司允許開(kāi)發(fā)人員使用 Objective-C 和 Swift 兩種編程語(yǔ)言開(kāi)發(fā) iOS 應(yīng)用,因?yàn)檫@兩種語(yǔ)言已經(jīng)緊密地與蘋(píng)果的開(kāi)發(fā)環(huán)境和工具集整合在一起。
安卓操作系統(tǒng)原生支持 Java 語(yǔ)言,因此它是安卓應(yīng)用開(kāi)發(fā)的首選語(yǔ)言。但是,安卓也支持使用其他語(yǔ)言(如 Kotlin)來(lái)開(kāi)發(fā)應(yīng)用,并且使用其他語(yǔ)言的開(kāi)發(fā)人員可以通過(guò) Java Native Interface (JNI) 訪問(wèn)安卓的底層系統(tǒng) API。
Go語(yǔ)言不是安卓操作系統(tǒng)原生支持的語(yǔ)言,因此需要使用其他方法才能在安卓上開(kāi)發(fā) Go 語(yǔ)言應(yīng)用。
具體的方法有:
gomobile: Go 語(yǔ)言官方支持的工具,用于在安卓和 iOS 上編譯 Go 代碼為本地應(yīng)用。
go-android: 一個(gè)開(kāi)源庫(kù),用于在安卓上運(yùn)行 Go 語(yǔ)言代碼。
go-gtk: 一個(gè)庫(kù),用于在安卓上使用 GTK+ 構(gòu)建 GUI 應(yīng)用。
這些項(xiàng)目允許開(kāi)發(fā)人員在安卓上使用 Go 語(yǔ)言開(kāi)發(fā)應(yīng)用,但請(qǐng)注意,目前這些項(xiàng)目可能仍然處于試驗(yàn)階段,不保證穩(wěn)定性和性能。
Go 語(yǔ)言是一個(gè)試圖結(jié)合動(dòng)態(tài)類型和靜態(tài)類型,編譯效率和安全性以及語(yǔ)言的易用性等眾多特性與一體的一種嘗試。他的另一個(gè)目標(biāo)是支持現(xiàn)代的基于網(wǎng)絡(luò)的、基于多核的計(jì)算。最后,Go 還是非??斓模梢栽趩蝹€(gè)計(jì)算機(jī)上僅僅花費(fèi)幾秒時(shí)間構(gòu)建一個(gè)龐大的應(yīng)用程序。使用GO語(yǔ)言開(kāi)發(fā)android語(yǔ)言步驟如下:
1. 下載安裝Go語(yǔ)言(版本1.5+)
Golang鏈接
回到頂部
2. 下載安裝 gomobile
下載
$ go get golang.org/x/mobile/cmd/gomobile
安裝(需要等待幾分鐘)
gomobile init
回到頂部
3. Golang開(kāi)發(fā)手機(jī)應(yīng)用有兩種方式
a. 原生應(yīng)用開(kāi)發(fā)
$ go get -d golang.org/x/mobile/example/basic
主要應(yīng)用領(lǐng)域:
應(yīng)用控制管理與配置
OpenGL ES 2 綁定
Asset 管理
Event 管理
試驗(yàn)中的包,含有OpenAL 綁定、音頻、字體、圖形以及運(yùn)動(dòng)傳感器
Android開(kāi)發(fā)
$ gomobile build -target=android golang.org/x/mobile/example/basic
此命令會(huì)生成名為basic的apk安裝包
$ gomobile install golang.org/x/mobile/example/basic
此命令將安裝apk包到已連接的android設(shè)備