8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

go mobileをdockerでビルドする

Last updated at Posted at 2015-01-31

はじめに

Go 1.4からAndroidで動作するバイナリをgoのコードからビルドできるようになりましたが、ビルドの手順が煩雑です。READMEを読んでいたところ、dockerでビルドできるようなので試してみました。

手順

以下OS Xでの手順です。go, boot2docker, dockerは予めインストールされているものとします。

golang.org/x/mobileとfreetypeをgo getします。

$ go get golang.org/x/mobile
$ go get code.google.com/p/freetype-go/freetype

Docker Hubのgolang/mobileレジストリをpullしてbashで入ります。その際、$GOPATH/srcをコンテナ側で/srcになるようにマウントします。

$ docker run -it -v $GOPATH/src:/src golang/mobile /bin/bash

dockerの実行が成功するとコンテナ内にbashで入れますので、サンプルのディレクトリに移動してmake.bashを実行します。

root@a418b5149537:/src/golang.org/x/mobile# cd example/basic/
root@a418b5149537:/src/golang.org/x/mobile/example/basic# ./make.bash
[armeabi] Gdbserver      : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
[armeabi] Gdbsetup       : libs/armeabi/gdb.setup
[armeabi] Prebuilt       : libbasic.so <= jni/armeabi/
[armeabi] Install        : libbasic.so => libs/armeabi/libbasic.so
Buildfile: /src/golang.org/x/mobile/example/basic/build.xml
 :
(略)
 :
BUILD SUCCESSFUL
Total time: 4 seconds

Antが正常終了していればbinの下にapkが作成されているはずです。

root@a418b5149537:/src/golang.org/x/mobile/example/basic# exit
exit
$ cd $GOPATH/src/golang.org/x/mobile/example/basic/bin
$ ls -al 
total 3648
drwxr-xr-x  13 kn1kn1  staff     442  1 30 12:37 .
drwxr-xr-x  15 kn1kn1  staff     510  1 30 12:37 ..
-rw-r--r--   1 kn1kn1  staff     856  1 30 12:37 AndroidManifest.xml
-rw-r--r--   1 kn1kn1  staff     128  1 30 12:37 AndroidManifest.xml.d
-rw-r--r--   1 kn1kn1  staff     179  1 30 12:37 build.prop
-rw-r--r--   1 kn1kn1  staff  919637  1 30 12:37 nativeactivity-debug-unaligned.apk
-rw-r--r--   1 kn1kn1  staff     276  1 30 12:37 nativeactivity-debug-unaligned.apk.d
-rw-r--r--   1 kn1kn1  staff  919637  1 30 12:37 nativeactivity-debug.apk
-rw-r--r--   1 kn1kn1  staff     807  1 30 12:37 nativeactivity.ap_
-rw-r--r--   1 kn1kn1  staff     132  1 30 12:37 nativeactivity.ap_.d
drwxr-xr-x   2 kn1kn1  staff      68  1 30 12:37 res
drwxr-xr-x   2 kn1kn1  staff      68  1 30 12:37 rsLibs
drwxr-xr-x   2 kn1kn1  staff      68  1 30 12:37 rsObj

手順は以上です。慣れてきたらREADMEにあるように、bashで入らずに、

$ docker run -v $GOPATH/src:/src golang/mobile /bin/bash -c 'cd /src/your/project && ./make.bash'

でも良いかもしれません。

また、golang.org/x/mobileにDockerfileもあるので、pullせずにbuildでも良いかもしれないですね。

8
8
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
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?