这段时间负责了一个区块链虚拟币手机轻钱包的开发,类似于imtoken, 其中钱包的公私钥生成要放在手机端本地,所以要给移动端提供一个可调用的sdk,用到了gomobile编译go语言生成的方式。(本文以mac操作为例)

谨记要打包android  sdk, 确保pc上安装了android sdk ndk,  要打包ios  sdk,确保pc上安装了xcode

1. 确保mac上安装了go

2. 安装android sdk

sdk的安装参考https://www.cnblogs.com/yjmyzz/p/4219829.html

我们进入tools时候选择这些安装:




安装完成后android sdk的目录结构:(ndk-bundle文件夹是下一步新建安装的)


我们把它放在这个路径下:/Users/edz/Library/Android/sdk


3. Android ndk安装

选择ndk14及以上版本

下载参考:https://blog.csdn.net/momo0853/article/details/73898066或

https://blog.csdn.net/shuzfan/article/details/52690554

下载后到路径下赋予操作权限:chmod a+x android-ndk-r14b-darwin-x86_64

然后terminal命令行执行:   ./android-ndk-r14b-darwin-x86_64

在上一步的sdk中新建ndk-bundle文件夹,把文件拷贝进去


4. 环境变量配置:

export ANDROID_HOME=/Users/edz/Android/sdk 


5. gomobile安装

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

或者把github上的gomobile copy到$GOPATH/src/golang.org/x下面

单独执行gomobile init可能会报错:


执行$ gomobile init -ndk  /Users/edz/Library/Android/sdk/ndk-bundle/


6. 生成sdk

在gopath的src下新建hello文件夹,里面新建hello.go文件

到$GOPATH/bin下面执行gomobile bind -target=android hello 如下:


hello.arr用go语言编写,gomobile编译生成的安卓端sdk。

若执行gomobile build则会生成.apk文件,就是go语言开发安卓app了。

对于ios执行gomobile bind -target=ios hello 一定要确保安装了xcode,不然会报错unknown GOARCH ""



参考:

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

https://blog.csdn.net/win_lin/article/details/60956485

https://juejin.im/entry/59104f2d128fe1005857f534