こんにちは、山本です。
今回は、タイトル通りGo言語で、Androidアプリを作ろうと思います。
選んだ理由としては、何かAndroidアプリを作りたかったのと、触ったことのない言語を使いたかったことと、前からGo言語には興味があったことでしょうか。
また、go mobileがWindows対応されたのも理由の一つだったりします。
そうそう、タイトルにも書いていますが、私はGo言語を全く触ったことがありません。
環境作成
まず、環境の作成から始めます。
goのインストール
Windows版のインストーラがあるのでそれをインストールします。
Goのインストールが終わったら,次はgomobileをインストールします。
作業環境を作成して
mkdir D:\works
作業環境にGOPATHを設定します。
setx /M GOPATH "D:\works"
go mobileのインストール
次に、gomobileをインストールします。
go get golang.org/x/mobile/cmd/gomobile
D:\works>go get golang.org/x/mobile/cmd/gomobile
go: missing Git command. See https://golang.org/s/gogetcmd
package golang.org/x/mobile/cmd/gomobile: exec: “git”: executable file not found in %PATH%
おお、git使っているんですね。
なので、Windows版のgitをインストールします。
https://git-scm.com/download/win
そして、git.exeのあるディレクトリにPATHを通します。
setx /M PATH "%PATH%;C:\Users\user\AppData\Local\Programs\Git\bin;"
再度、gomobileをインストールします。
インストール後、gomobileを使用できるようにPATHを通しておきます。
setx /M PATH "%PATH%;D:\works\bin;"
次に、gomobileのツール群をインストールします。
gomobile init
あと、サンプルを動かすのにライブラリが足りていないので以下もインストールします。
go get golang.org/x/exp/shiny/
go get golang.org/x/sys/windows
早速、サンプルをWindows上で動作させてみます。
cd src\golang.org\x\mobile\example\basic
go run main.go
D:\works\src\golang.org\x\mobile\example\basic>go run main.go
# golang.org/x/mobile/internal/mobileinit
exec: “gcc”: executable file not found in %PATH%
なるほど、コンパイルするのにgccが必要ということですね。
gcc
Windowsでgccを必要としたことってないので、何を入れたものかと思ったのですが「MinGW」でgccが入るようなのでこれをインストールします。
http://www.mingw.org/download/installer
今回はgccが欲しいだけなので、以下のパッケージをインストールします。
mingw32-base
mingw32-gcc-g++
で実行します。
D:\works\src\golang.org\x\mobile\example\basic>go run main.go
golang.org/x/mobile/internal/mobileinit
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
64bit modeでコンパイル出来ませんよ~と
さて、どうしたものかと調べたところ64bit環境では64bitのMinGWを入れろとのことのようです。
なので、64bit版をダウンロードして、「Architecture」を「x86_64」にしてインストールします。
https://sourceforge.net/projects/mingw-w64/
そして、またまたPATHを通します。
setx /M PATH "%PATH%;C:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin;"
まず、Windowsで動きました
次に、Android用にコンパイルします。
gomobile build golang.org/x/mobile/example/basic
gomobileでコンパイルすると
D:\works>ls
basic.apk bin pkg src
basic.apkが出来ています。
これをAndroidへインストールすると
Androidでアプリが動くようになりました。
Android Debug Bridge
毎回、手でAndoroidへアプリを移動させるのは面倒なので、ADBをインストールしてみます。
https://developer.android.com/studio/index.html
インストールすると、SDKマネージャーが立ち上がるので、Android SDK ToolsとGoogle USB Driverをインストールします。
そして、何度もやっていますが、またPATHを通します。
setx /M PATH "%PATH%;C:\Users\user\AppData\Local\Android\android-sdk\platform-tools;"
Andoroid側の設定
次にUSBデバッグが出来るように、開発者向けオプションを設定します。
ビルド番号を7回タップします。
開発向けオプションが有効になるので、そこでUSBデバッグを有効にします。
ドライバーの更新
Windowsに戻って、ディバイスマネージャーを見ると、ほかのディバイスにAndroidがあるので、そこから「ドライバーソフトウェアの更新」を選びます。
更新画面から「コンピューターを参照してドライバーソフトウェアを検索します」をクリックして、「コンピュータ上のディバイス ドライバーの一覧から選択します」をクリックします。
コピー元を、先程インストールしたSDKにあるドライバにします。
ドライバの中から、ADB Interfaceを選択して更新します。
ドライバの更新が終わったので、PCを再起動します。
ADBを使う
準備が整ったので、ADBを使ってみます。
まずは、ディバイスの確認をします。
C:\Users\user>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
HT35RS905311 device
ADBからディバイス認識するようになりました。
認識するようになったので、PCからAndroidアプリをインストールします。
D:\works>adb install -r basic.apk
4356 KB/s (16799898 bytes in 3.765s)
pkg: /data/local/tmp/basic.apk
以降は、コマンド一つでAndroidにアプリインストール出来るようになりました。
まとめ
最初だけとはいえ、必要なアプリケーションが随分多かった印象です。
また、PATHばっか通してましたね。
あと、記事では簡単に書いていますが、ADBは中々ディバイスを認識せず、結構時間がかかっていたりします。
まあでも、これでようやく準備が整ったので、次回からは簡単なアプリを幾つか作っていこうと思います。
というか、複雑なのはとてもじゃないですが、まだ作れそうにはないので。
コメントを残す