环境配置
- 安装 Go 1.5 以上版本,具体安装步骤见官网 https://golang.org/doc/install
-
安装 gomobile https://godoc.org/golang.org/x/mobile/cmd/gomobile
执行以下命令,安装过程中可能需要翻墙go get -v golang.org/x/mobile/cmd/gomobile gomobile init -v
在安装过程中可能会发生以下问题
- 提示
unrecognized import path
错误,通常翻墙后可解决 - 提示
import path does not begin with hostname
错误,如果设置了GOROOT
的话取消该设置 - 提示
$GOPATH not set
错误,检查是否有设置GOPATH
以及不要使用命令时添加sudo
- 提示某个目录缺少权限,授权给当前用户
sudo chown -R <当前用户名> <提示的目录名>
编写代码
- 创建 Android 工程,编写原生代码。注意:Android 工程的
targetSdkVersion
不能为 23。 - 在
GOPATH
下创建对应的应用包名,编写 GO 代码。 -
在 Android 工程下创建新的 Gradle 模块,修改该模块的
build.gradle
文件。plugins { id "org.golang.mobile.bind" version "0.2.4" } gobind { // Go 应用的包名 pkg = "com.bookislife/goandroid" // GOPATH 路径,可通过执行 `go env` 来查看 GOPATH = "/Users/sidney/GOPATH" // Go 的二进制文件 GO = "/usr/local/Cellar/go/1.5.3/bin/go" // GoMobile 的二进制文件,默认为 `GOPATH/bin/gomobile`,如果安装在其它目录才需要手动指定 // GOMOBILE = "/Users/sidney/GOPATH/bin/gomobile" }
- 确保 Android 应用根目标的
settings.gradle
引用了此模块。 - 编译 Go 代码,
./gradlew gobind
,编译完成后会在步骤 3 创建的 Go 模块下生成包含 Native 文件的aar
文件。 - 在 Android 工程中正常使用 Native 代码,后续操作都和普通应用程序一样。