操作系统:Ubuntu 18.04
请先确认已经安装好Go语言,并做好相关配置(可参阅我的另一篇日记)。
下载地址:https://developer.android.google.cn/ndk/downloads/index.html
当前(2020年6月2日),最新稳定版是r21。按照我使用的平台,下载Linux 64 位 (x86)压缩包,文件有995M,需要一点时间。
如果这个网站下不了的话,可以到我的百度网盘上免费下载:https://pan.baidu.com/s/1ui1uyPzW60zPRKvgyv2R1Q,提取码:apk3。
下载解压后,把其中的文件夹android-ndk-r21放在你觉得合适的位置。我的电脑上是放在~/tree/lakeside/目录下。
编辑~/.profile文件,添加以下内容:
# android ndk
export PATH=$PATH:~/tree/lakeside/android-ndk-r21
export NDK_HOME=~/tree/lakeside/android-ndk-r21
export ANDROID_NDK_HOME=~/tree/lakeside/android-ndk-r21
保存,使用source命令使其生效。上面的路径请按照上一步操作的实际路径来编写。
网络上一些文章介绍的方法是使用命令go get golang.org/x/mobile/cmd/gomobile来下载安装,但是我这里无效,所以还得自己手动操作。
── src
└── golang.org
└── x
git clone https://github.com/golang/mobile.git
git clone https://github.com/golang/tools.git
git clone https://github.com/golang/xerrors.git
git clone https://github.com/golang/mod.git
因为安装gomobile时要使用tools、mod与xerrors的内容,所以需要下载他们。
执行命令:
go install golang.org/x/mobile/cmd/gomobile
使用命令:
gomobile init
下面使用gomobile自带的例子测试
gomobile build -target=android golang.org/x/mobile/example/flappy
编译要花一点时间,稍等一会儿。编译完成后会在当前执行此命令的目录下生成flappy.apk文件。现在可以拿这个文件在安卓手机上安装测试了。这是一个很小的游戏,下面是在我的手机上运行的截图。
对于自己编写的项目,只需要把gomobile build -target=android 后面的内容替换掉就行了。例如有下面一个项目:
.
└── hello
├── go.mod
└── main.go
其中main.go的代码为:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, it's me.")
}
go.mod的内容为:
module hello
go 1.14
使用gomobile生成apk的命令为:
gomobile build -target=android hello
注意,是项目名称hello,不是main.go文件名。编译后会有提示:
gomobile: hello does not import "golang.org/x/mobile/app"
但是会生成hello.apk,在手机上执行会显示“Hello, it’s me.”,只是一闪而过。
我刚接触这方面的内容,使用Go编写Android应用程序并非完全像单纯的Go编程,还需要学习很多知识。
这里补充一点,想在Ubuntu 18.04下使用Android Studio工具的朋友,可以使用以下命令安装:
sudo snap install android-studio