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”关键字查看以往内容