go 1.5でgomobile(android)
GoだけでAndroidアプリを作る その1 〜インストール編〜 : KLabGames Tech Blogに刺激を受けてgomobileのサンプルandroidアプリを動かしてみました。
android端末上で実際に動くところを見ると楽しいです。
go 1.5インストール
githubからソースを取得してビルドする。go 1.4が必要です。あるいはDownloadsから1.5のベータ版をダウンロードします。
gomobileインストール
$ go get golang.org/x/mobile/cmd/gomobile $ gomobile -v init
android ndkなどがダウンロードされます。
ls -l ${GOPATH}/pkg/gomobile total 8 drwxr-xr-x+ 4 unokun staff 136 8 1 13:10 android-ndk-r10e drwxr-xr-x+ 4 unokun staff 136 7 31 17:23 dl drwxr-xr-x+ 57 unokun staff 1938 8 1 13:11 pkg__ drwxr-xr-x+ 57 unokun staff 1938 8 1 13:10 pkg_android_arm -rw-r--r--+ 1 unokun staff 70 8 1 13:11 version
サンプルプログラムの実行(PC)
$ cd $GOPATH/src/golang.org/x/mobile/example/basic/ $ go run main.go
サンプルプログラムの実行(android)
1. アプリをビルドする。
$ gomobile build golang.org/x/mobile/example/basic
ビルドに成功するカレントディレクトリにbasic.apkができる。
2. 端末が接続していることを確認する。
$adb devices
端末が一覧に表示されない場合は、以下の二つの方法を試してみる。
- adbを再起動する
$ adb kill-server $ adb start-server
3. アプリをインストールする
$ adb install basic.apk
4. アプリを実行する(android)
android端末でアプリを実行する。
- audio
- 画像が動き、壁に当たった時に音がでます。
- basic
- △を指でドラッグできます。
- sprite
- 画像が動く。
- network
- 使い方がよく分かりませんでした。
gomobile修正
最初、gomobile buildでapkを作成できませんでした。 src/golang.org/x/mobile/cmd/gomobile/env.goを修正したところ、apkが作成できるようになりました。
$ gomobile build golang.org/x/mobile/example/basic gomobile: xcrun --show-sdk-path: exit status 1
修正箇所
91 func envInit() (err error) { ... ここから 122 clang, cflags, err := envClang("iphoneos") 123 if err != nil { 124 return err 125 } ... 167 "CGO_ENABLED=1", 168 } ここまでをコメントアウトする 170 return nil 171 }
おまけ(android端末で画面録画する方法)
Android 4.4 Kitkat以降だと、システムで画面録画をサポートしています。この方法で動画を撮ったのですが、はてなブログ(無料版だけ?)は動画は未サポートでした。
adb shell screenrecord /sdcard/sprite.mp4