前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【远古文章】用 Go 语言来看 Android! 出发, Android, 出发!

【远古文章】用 Go 语言来看 Android! 出发, Android, 出发!

作者头像
李海彬
发布2018-03-26 12:28:57
8570
发布2018-03-26 12:28:57
举报
文章被收录于专栏:Golang语言社区Golang语言社区

文章翻译:Ivy

入门指南

让我们开始吧,首先你必须安装一个可运行的 go 1.5. 你可以从编译好的版本。我在写这篇博客的时候在一台 Linux 机器上使用的是 的 go 1.5 beta2. 我注意到在 Windows 上面使用的时候在 Go 语言源代码里面会有一些警告信息,因此如果你正在使用 Windows 开发,这可能不会起作用。

一旦你要安装 Go 语言,你可以通过下面的命令行来安装:

代码语言:javascript
复制
go get golang.org/x/mobile/cmd/gomobile
gomobile init

Android 平台:你需要安装 Android 例子 。为了简便起见我这里只安装 android 版本(主要原因是因为我没有 IOS 设备)。

接下来的命令就会安装示例应用:

代码语言:javascript
复制
gomobile install golang.org/x/mobile/example/basic
gomobile install golang.org/x/mobile/example/audio
gomobile install golang.org/x/mobile/example/sprite 

虽然看起来不多,但是我觉得这相当酷。上面的应用使用纯 go 语言写的,并且使用 opengl 来做渲染。目前还有一些 api 限制,但是我相信不久就会改善。

分析跨平台开发的应用

好,我们可以编译他人的代码,但是它在干什么?让我们看看在这个基本的示例应用里面发生了什么。

代码语言:javascript
复制
//excerpt from golang.org/x/mobile/example/basic
func main() {
    app.Main(func(a app.App) {
        var c config.Event
        for e := range a.Events() {
            switch e := app.Filter(e).(type) {
            case lifecycle.Event:
                switch e.Crosses(lifecycle.StageVisible) {
                case lifecycle.CrossOn:
                    onStart()
                case lifecycle.CrossOff:
                    onStop()
                }
            case config.Event:
                c = e
                touchLoc = geom.Point{c.Width / 2, c.Height / 2}
            case paint.Event:
                onPaint(c)
                a.EndPaint()
            case touch.Event:
                touchLoc = e.Loc
            }
        }
    })
}

用 Go 语言写的应用会从 app 包里面调用主函数。在这里你可以定义应该发生什事件,你可以在<a rel="nofollow" href="https://github.com/golang/mobile" "="" style="box-sizing: border-box; background-color: transparent; color: rgb(45, 133, 202);">https://github.com/golang/mobile

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 入门指南
  • 分析跨平台开发的应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档