转-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执行,结果如下
- 剑指OFFER之顺时针打印矩阵(九度OJ1391)
- 用Qt写软件系列五:一个安全防护软件的制作(2)
- 2018年值得关注的200场机器学习会议
- Linux开机启动(bootstrap)
- 剑指OFFER之树的子结构(九度OJ1520)
- 万物智联慧结成网:信息技术驱动物流产业转型升级
- 用Qt写软件系列五:一个安全防护软件的制作(1)
- Linux文件管理
- 为什么区块链会成为消除数字化营销障碍的解决方案
- TinyOS和Deluge的安装模拟(二)
- Kubernetes的服务网格(第4部分):通过流量切换持续部署
- QTableView表格视图的列宽设置
- OpenProcess打开进程返回错误的问题
- Python标准库01 正则表达式 (re包)
- 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 文档注释
- 数据库PostrageSQL-服务器配置连接和认证
- 浏览器安全一 / Chrome XSS Auditor bypass
- 数据库PostrageSQL-服务器配置文件位置
- 数据库PostrageSQL-服务器配置设置参数
- 一个基于ngrx的计数器例子
- SAP Spartacus checkout Shipping address的页面实现
- 使用Let's Encrypt保护你的数据包
- php7 + nginx + mysql 安装小计
- 掌阅iReader某站Python漏洞挖掘
- SAP Spartacus payment detail page的CMS模型
- wecenter反序列化造成任意SQL语句执行
- SAP Spartacus 读取payment detail数据的API
- SRCMS 多处越权+权限提升管理员漏洞
- SAP Spartacus把指定产品添加到购物车的API
- MyBatis源码解析之基础模块—Plugin