wsl 配置gomobile的正确姿势

golang 相信不久的将来,在安卓肯定会大放异彩,不用解释为什么。

目前在安卓上开发的语言就是java主流,其次kotlin,最后这个跨平台的go

后面出的这个gomobile可以同时编译android(任意系统)和ios(需要xcode支持,目前仅限macos系统),可以编译生成apk也可以制作aar链接库,类似jar

解释:aar比jar优秀,因为它可以拥有UI

为了windows的使用习惯,我们在wsl配置(win10安装的Linux子系统,代替以前的mingw),wsl的安装配置,本人在前面文章说过详细了。

网上其它教程胡扯的很多。这里简单说下。

把我这教程浏览器缩小放左边,文件夹和控制台放右边,照着做。

必备环境

WSL ubuntu18.04 或更新版本20.04

在D盘创建目录 路径为 d:\android\wsl

在D盘创建目录 路径为 d:\goproject\bin

在D盘创建目录 路径为 d:\goproject\pkg

在D盘创建目录 路径为 d:\goproject\src

打开ubuntu1804 shell控制台

安装必要的依赖,不管用不用得上,我一股脑就全装了

但是git和cmake是必须的

apt install -y gcc gdb build-essential git vim cmake wget curl python python3

安装openjdk8.0

sudo apt-get install openjdk-8-jre 

必须Android NDK环境,这里下载压缩包解压,然后配置

下载地址:https://developer.android.google.cn/ndk/downloads/index.html

今天2020年9月20日,最新稳定版是r21b,下载为1.1G,解压后3.8G,心疼。

放在/mnt/d/android/wsl/android-ndk-r21b目录下

curl -o- https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip | tar zxf - -C /mnt/d/android/wsl/

简单配置下NDK,编辑 vim ~/.profile,文件末尾添加以下内容

# android ndk
export PATH=$PATH:/mnt/d/android/wsl/android-ndk-r21b
export NDK_HOME=/mnt/d/android/wsl/android-ndk-r21b
export ANDROID_NDK_HOME=/mnt/d/android/wsl/android-ndk-r21b

使用source命令使其生效

source ~/.profile

这样基本环境就完成了,至于android sdk 是不需要的,重要提示:不需要sdk

接下来安装go,也是一个压缩包,下载配置一下

下载并解压go到usr/local目录下

curl -o- https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz | tar zxf - -C /usr/local

修改 git 默认编辑器为 vim

git config --global core.editor vim

执行下面的语句,直接配置

cat >> /etc/profile.d/golang.sh << EOF
export GOPROXY=https://goproxy.cn,direct
# your d pan
export GOPATH=/mnt/d/goproject
export PATH=\$PATH:\$GOPATH/bin:/usr/local/go/bin
EOF

回车,使用source命令使其生效

source /etc/profile

到此为止,go环境已经好了。接下来添加编译安卓的功能gomobile

离成功不远了。执行下面的命令自动安装配置gomobile

go get golang.org/x/mobile/cmd/gomobile

安装时无感,不要以为它在偷懒,耐心等一会它会好的。

安装完后,在你计算机D:\goproject\src\golang.org\x生成如下四个文件夹

mobile mod tools xerrors

看安装成功了没,查看版本号

gomobile version

初始化一次

gomobile init

或者指定NDK路径,但是本教程是自动的,不需要指定,以下这句免了

gomobile init -ndk /mnt/d/android/wsl/android-ndk-r21b
# 画蛇添足一下增加印象

好像已经好了,重启一下你的WSL

接下来,用他自带的例子,直接生成apk看下,默认生成在/root/目录下

gomobile build -target=android golang.org/x/mobile/example/flappy

说明:其中的target参数指定编译类型为安卓,你也可以如下指定

所有设备 -target=android/arm,android/386,android/arm64,android/amd64

32位arm处理器 -target=android/arm

x86处理器 -target=android/386

64位arm处理器 -target=android/arm64

amd/intel64位处理器 -target=android/amd64

正常我们手机用的都是arm64,单选这个减少体积。

在D:\goproject\src目录下创作的源码,假如hello,你可以像如下方式生成apk

gomobile build -target=android hello

其它常用命令,清空缓存

gomobile clean

其它参数和命令解释,查看官方档,英文,翻译即可。

https://godoc.org/golang.org/x/mobile/cmd/gomobile

还是不放心,加上android sdk吧。

先下载sdk tools,用sdkmanager安装版本

wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
apt install unzip
unzip sdk-tools-linux-3859397.zip
sudo mv tools /mnt/d/android/wsl/sdk/tools

编辑~/.profile ,添加

export PATH=/mnt/d/android/wsl/sdk/tools:/mnt/d/android/wsl/sdk/tools/bin:$PATH

使用source命令使其生效

source ~/.profile

查询安装的和安装过的组件信息。

touch ~/.android/repositories.cfg
sdkmanager --no_https --list

安装指定版本的Android SDK。这里以API29为例,体积大要好久时间

sdkmanager --no_https "platforms;android-29" "platform-tools" "build-tools;29.0.2"

删除SDK,则通过以下命令。

sdkmanager --uninstall 包名

有不懂的直接问,我也刚学,不对地方请批评指正,欢迎一起交流。

右下方浮动条,加我QQ,或者放大镜搜索“wsl”关键字查看以往内容

点赞