2012-07-14 52 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)編寫應用程序。