转-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执行,结果如下
- 揭开ps的神秘面纱——初步认识photoshop
- 地理坐标系与投影坐标系的区别
- ExtJs学习笔记(6)_可分页的GridPanel
- PowerDesinger联系的定义及使用
- Gis链接
- TortoiseSVN文件夹及文件图标不显示解决方法 TortoiseSVN文件夹及文件图标不显示解决方法
- 地图坐标
- PowerDesigner15连接Oracle失败的解决办法
- 地图校正方法心得
- 工作流参考模型点评
- 按图索骥:SQL中数据倾斜问题的处理思路与方法
- [方法“Boolean Contains(System.Guid)”不支持转换为 SQL]的解决办法
- DataBind的一些试验
- 继承HibernateDaoSupport时遇到的问题 使用注解为HibernateDaoSupport注入sessionFa
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Codeforces Round #547 (Div. 3)E. Superhero Battle
- 《动态规划_入门 LIS 问题 》
- 栅格化系统的原理以及实现
- vue-qr二维码插件使用简介
- Codeforces Round #547 (Div. 3)F1. Same Sum Blocks (Easy)
- 手机软键盘弹起导致页面变形的一种解决方案
- Codeforces Round #547 (Div. 3)F2. Same Sum Blocks (Hard)
- 《 动态规划_ 入门_最大连续子序列 》
- docker搭建elasticsearch集群
- 用canvas实现手写签名功能
- Codeforces Round #547 (Div. 3)G. Privatization of Roads in Treeland
- 《 动态规划_ 入门_最大连续子序列_HDU_1003 》
- 2015 09CCF计算机软件能力认证试题第三题
- 《内蒙古自治区第十二届大学生程序设计竞赛试题_D: 正品的概率》
- Elasticsearch: Painless script编程