本帖最后由 tjcfeng 于 2015-9-29 08:34 编辑
由于很讨厌托管语言,所以这么多年一直躲着Java,所以也一直没有在Android下开发过东西。不过随着Goolge和Oracle矛盾的日益深化,这个问题似乎有解了,这不,最新的Golang 1.5已经开始支持编写编译Android原生程序了(1.4已经支持了,1.5连iOS也包括了进来,而且和1.4的代码不兼容,所以我就认为它是从1.5开始正式支持)。按捺不住冲动,一定要试一试,哪怕不能用,至少了解一下。
运行环境:FirePrime Android
开发环境:虚拟机 Lubuntu 14.04 x86
烧写FirePrime的系统和安装虚拟机的Lubuntu不再啰嗦,直接从搭建环境开始。
首先下载的文件是 Golang 1.5.1 for Linux x86
11.png (33.31 KB, 下载次数: 0)
2015-9-29 08:27 上传
没有编译,也不需要安装,直接将其解压到\usr\local下,这是官方推荐的路径,虽然我更喜欢\usr\src。
12.png (51.99 KB, 下载次数: 0)
2015-9-29 08:27 上传
已经有了bin文件,所以编译的过程可以省略了。
13.png (60.2 KB, 下载次数: 1)
2015-9-29 08:27 上传
在$HOME下建立一个文件夹,名字自取,用于存放后面下载的代码和编译支持文件。
同时在这个目录下的.profile文件中添加环境变量。
14.png (43.81 KB, 下载次数: 1)
2015-9-29 08:27 上传
加了这三句话,名字不重要,只要一致就可以。保存后重启虚拟机系统。
15.png (50.26 KB, 下载次数: 0)
2015-9-29 08:27 上传
重启之后运行go env查看是否正确,这一步不是必须的,但是之前有个手误而造成了可执行文件找不到,所以建议查看一下,包括cd $GOPATH。
Golang1.5的运行环境设置完毕,下面开始重要的部分了,
重要的部分,重要的部分,重要的部分要说三次
16.png (46.17 KB, 下载次数: 0)
2015-9-29 08:27 上传
按照这两个路径分别建立好文件夹。这是因为golang.org被墙了,后面的东西需要从这里下载但是下不了。而github.com上还有相同的代码,只是路径不一样,这个一般都是可以上的,所以需要做个软连接
17.png (55.39 KB, 下载次数: 0)
2015-9-29 08:27 上传
建立好文件夹后,执行这个ln,把github.com上面的东西映射到golang.org下面,这样在编译时就不会找不到文件了
18.png (70.42 KB, 下载次数: 1)
2015-9-29 08:27 上传
开始下载Golang1.5 Android编译环境的项目,名字叫gomobile。刚才忘说了,go get之前要先安装git,安装都会吧,不重复了。
19.png (71.35 KB, 下载次数: 1)
2015-9-29 08:27 上传
下载之后cd 进入图中的路径,执行命令go buile,就会生成gomobile这个可执行文件了。后面的编译都靠它了。
20.png (36.37 KB, 下载次数: 1)
2015-9-29 08:27 上传
为方便使用,可以将它扔进$GOROOT的bin里,这样不管在什么地方都可以执行了。当然也可以再去增加一个环境变量,随意。
下面开始自动搭建编译环境,基于gomobile来完成的
21.png (49.61 KB, 下载次数: 1)
2015-9-29 08:27 上传
执行gomobile init -v 会自动下载所有需要的东西
22.png (32.44 KB, 下载次数: 0)
2015-9-29 08:27 上传
开始执行,连ARM NDK都包括在里面。首先下载,然后解压,全部自动完成,不需要人工干预
23.png (51.27 KB, 下载次数: 0)
2015-9-29 08:27 上传
整个文件不是很大,根据网速快慢决定时间
完成之后就算是搭建成功了,下载的包里面有例子,进去编译一下试试
24.png (68.99 KB, 下载次数: 0)
2015-9-29 08:27 上传
25.png (69.77 KB, 下载次数: 2)
2015-9-29 08:27 上传
26.png (65.33 KB, 下载次数: 1)
2015-9-29 08:27 上传
还有其他的例子,可以随意编译。编译之后会出现apk这个文件,直接到Android上安装运行,整个过程没有涉及到任何Java的东西,都是本地原生的,这是我最喜欢的一点。当然,要是需要使用Android系统标准的控件,那就没办法了,目前只能是Java。
运行效果:
2.JPG (51.17 KB, 下载次数: 1)
2015-9-29 08:32 上传
4.JPG (80.03 KB, 下载次数: 0)
2015-9-29 08:32 上传
Basic,那个三角可以跟着鼠标走,而且本身颜色变换。帧率显示60。
6.JPG (61.21 KB, 下载次数: 0)
2015-9-29 08:32 上传
7.JPG (73.89 KB, 下载次数: 1)
2015-9-29 08:32 上传
其他的程序,显示的动画,一丁点卡顿也没有,非常流畅,都是在1920x1080下跑的。
(完)