转-Android上面运行golang

时间:2022-05-05
本文章向大家介绍转-Android上面运行golang,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

golang最让我心动的,就是交叉编译比较方便,android基本上都是arm处理器,交叉编译过arm的都知道,工具链不一样,往往问题比较麻烦,其中最大的问题在于动态库的版本问题(c语言的可以编译用--static解决这个问题)。

而golang交叉编译arm下面的程序,几乎个个平台,都很通用。方法则是额外设置GOARCH(也有个GOOS,这里不讨论)就可以了。

毕竟golang和android都是google的儿子,android下不能允许golang的程序,不太像话!!

环境准备

1、一台root的手机

2、android shell环境

最终要运行,需要在shell下执行相应的命令,可以选择adb shell,也可可以下载一个叫Shell终端的app。

2、golang工具包

需要下载golang开发包(win、mac和linux都有),设置GOROOT、GOPATH等环境变量。

编译过程

1、helloworld源码编辑,(其实任何的golang源码都行,可以去github.org去淘些有趣代码)

package main import "fmt" func main() {     fmt.Printf("hello world!n")}

2、编译

此时用到了交叉编译,需要设置变量GOARCH

GOARCH=arm go build ./helloworld.go

第一次编译可能时间会很久,因为在准备交叉编译的库。

3、传到android设备 经过尝试,sd卡中无论如何都运行不起来,chmod可执行程序会报126错误

所以需要,再用手机端的文件管理app(例如Root Explorer)传到 /data 下面, 因为只有data下面的文件,可以执行(sd卡下面获取执行权限,chmod没效果)

4、执行

adb shell下面可以执行,结果如下

Shell终端app执行,结果如下