9

Go プログラムを Android 用にコンパイルできることは知っています。

Go プログラム内から、GPS 座標を取得したり、デフォルトのブラウザで URL を開くなど、Android 固有の API を使用するにはどうすればよいですか?

4

4 に答える 4

9

現時点ではほとんど不可能だと思います。「MeettheGoTeam」のI/Oセッションで、Goチームのメンバーは、AndroidサポートをGoに追加する予定はないと述べました。

私たちが今持っているのは、ARMアーキテクチャ用の単なるコンパイラです。残念ながら、これは実際のAndroidアプリにはほとんど役に立ちませんが、そのようなプログラムはAndroidデバイスのコマンドラインから起動できます。

ほとんどのAndroidフレームワークはJavaで記述されているため、Javaフレームワークと対話するには、コードを* .soライブラリにコンパイルする必要があります。これは、JNIインターフェイスを介してロードおよび呼び出されます。また、現在のGoコンパイラでは不可能です(gc、gccgoについてはわかりません)。

たぶん、でAndroid NDK APIにバインドできるようになりcgoます。これにより、APIレベル9(Android 2.3)以降のGoでアプリケーションを作成できるようになります。

UPD:GoからJNIを使​​用し、golang.org / x/mobileパッケージを使用してJavaバインディングを自動的に作成できるようになりました。Go 1.4ではまだ実験段階ですが、Go1.5リリースに含める予定です。このパッケージは、GL、オーディオ、およびユーザー入力のバインディングも提供します(iOSのサポートも追加され、AndroidとiOSのいずれかと互換性があることを願っています)。とにかく、このパッケージは、Android上のJavaの代わりにGoを使用するのではなく、主にGoでゲームを作成することを目的としています。

于 2012-07-14T09:36:06.333 に答える
7

Go プログラミング言語からの Android アプリに対する私の回答をご覧ください。goandroidプロジェクトを使用すると、NDK を介して Go で Android アプリを作成できます。

(免責事項: 私は goandroid の作成者です)

編集: コメントで述べたように、Go 1.5 は純粋な Go または Java と Go の混合として Android アプリの公式サポートを追加します。iOS も、最終的な 1.5 リリースに間に合うように到着する予定です。詳細については、 https://github.com/golang/mobileを参照してください。

于 2013-09-04T14:20:15.090 に答える
1

ステップ 1: OpenGL を使用して描画し、インテリジェントなイベントおよびデータ バインディング システムを使用してアプリを書き込む Golang を使用して、プラットフォームに依存しない GUI ライブラリを作成します。OpenGL を使用するソフトウェアは、多かれ少なかれ移植性があります。基本的に、Kivy を Golang で書き直します。

ステップ 2: PyJNIus (これも Kivy プロジェクト) に似た Java クラスを使用するためのイントロスペクション/リフレクション ベースのラッパーを作成します。

ステップ 3: Kivy のレベルに達するまでにやるべきことがたくさんあるので、さらに多くのハードワークを行う

ステップ 4: 利益

于 2013-08-16T04:51:03.657 に答える