LoginSignup
7
9

More than 5 years have passed since last update.

入門: golangでAndroid用のライブラリ(aar)を書く

Posted at

golangでAndroid用のライブラリ(aar)を書く

golangでAndroid用のライブラリ(aar)が作れるのですが、公式サイト( https://github.com/golang/go/wiki/Mobile )じゃいまいちわからなかったのでざっくりとまとめます。

gomobileは現時点でexperimental(実験的)です。自己責任で手を出しましょう。

やった環境

Ubuntu 16.04 Server
ほかは知らない。大体一緒だと思う。

必要なもの

  • Android SDK
  • Android NDK
  • golang 1.7以上

これらのインストール方法がわからない人はこの先を見ても分からないと思います。あなたには他に知らなければならないことがあるはずです。

ざっくりとしたやり方(本編)

環境変数はこれくらい

GOROOT=/path/to/goroot
GOPATH=~/go
PATH=$PATH:~/go/bin
ANDROID_HOME=~/android-sdk-linux

まず、gomobileをインストールしましょう。

go get golang.org/x/mobile/cmd/gomobile

gomobileの初期化をします。私の環境ではここが公式サイトと違うところでした。-ndkでNDKへのパスを指定しないとダメだった。

gomobile init -ndk /path/to/android/ndk

あとは適当にgolangでライブラリを作って、ビルドするだけ。

  • $GOPATH/src/github.com/foo/libhello/hello.go
package hello

func HelloWorld() string {
  return "Hello World"
}

ポイントはパッケージ名。mainパッケージではダメです。
複数ファイルを作ってもいいけど、package名は同じにしないとダメです。

ライブラリを書いたらビルドしましょう。

gomobile bind -target android

これでhello.aarが生成されました。あとは適当にandroid側でつかうと良いでしょう。

使うときはこんな感じになるっぽいよ。


import hello.hello;

class Foo {
    void Bar() {
        String text = hello.helloWorld();
    }
}

hello.helloはせめてlibhello.helloであってほしいと思うのは私だけじゃないと信じたい。

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9