很多时候,编译 Go 的 Native 应用时,我们可以接受忽略那些平台相关的库和接口。对于这样的情况,编译已有的 Go 代码是很轻松的,我们可以选择使用一个功能子集,这些功能包括:
我们将从已有的 gomobile 项目里的一些例子开始,你可以用自己项目里的文件替换它们。
- gomobile build - target = android golang.org / x / mobile / example / basic
- gomobile install golang.org / x / mobile / example / basic
- gomobile build - target = ios golang.org / x / mobile / example / basic
跟 Android 不一样,对于 iOS 来说没有一个统一的部署命令,你需要用你熟知的方式把包拷贝到设备或者模拟器上,例如使用 ios-deploy 工具。
可以用上面的步骤,试试 golang.org/x/mobile/example/audio 这个例子。
让我们深入了解一下 audio 这个例子(详细的代码就不列出了了),你并不需要对 Go 语言非常精通(我就是不太精通),我们先了解一下都能干些啥。
首先你可以看到一些 import 语句:
- import(...
- "golang.org/x/mobile/app"
- "golang.org/x/mobile/asset"...)
如果你查看一下 import 的这些包所在的目录 GoLangInstalldir/src/golang.org/x/mobile/* 下的文件,你可以发现那些编译到你的代码里的那些 Java 和 Objective-C 文件。
再进一步了解一下,你可以在代码里找到对这些 import 的包(例如 app 和 glctx)的引用。
来源: https://juejin.im/entry/5a4dfc9c6fb9a0450168620a