Golang 开发Android服务--交叉编译
Golang 开发Android服务--交叉编译
go env -w GOPROXY=https://repo.huaweicloud.com/repository/goproxy/,https://goproxy.nd.tevat.dev,https://goproxy.cn,direct export GOPROXY=https://goproxy.io,direct go env -w GOPROXY=https://goproxy.io,direct
https://goproxy.io 是一个流行的Go模块代理,但也有其他代理可供选择,如
https://proxy.golang.org(Go官方代理)、https://goproxy.cn(中国大陆访问友好)等。
移动端主要 arm 架构,编译命令
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -o go_pro mine.go
CGO_ENABLED=0 GOOS=linux,指定临时环境变量不影响其它编译,也可以设置为全局环境变量。
AOSP 查看版本信息
getprop 不传参数查看所有属性值
getprop ro.build.version.release
linux可以用 lscpu 查看CPU信息,AOSP不支持,查看 aosp 的 CPU 版本信息
cat /proc/cpuinfo
aarch64 是 ARMv8-A 架构中引入的64位指令集,AArch64 向后兼容基于32位指令集的 ARMv7-A 和之前别的一些 32 位 ARM 架构(也就是AArch32)。
注意:
按上面编译,一般逻辑没问题,涉及到网络访问走不通,原因是 AOSP android 系统没有 /etc 的网络解析文件。
用 android-ndk 编译,到这去下载:https://developer.android.google.cn/ndk/downloads?hl=zh-cn
版本兼容选择:https://www.cnblogs.com/fieldtianye/p/18012578
aarch64-linux-android28-clang 这个就表示兼容到 Android 9
可执行文件名称:program_name,写了一个简单的shell,放到代码根目录下执行
运行环境:Linux,Ubuntu 22 LTS。
rm program_name go env -w CGO_ENABLED='1' go env -w GOOS='android' go env -w GOARCH='arm64' go env -w CC='/usr/mine-soft/android-ndk-r26c/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang' go build -o program_name main.go go env -w CGO_ENABLED='1' go env -w GOOS='linux' go env -w GOARCH='amd64' go env -w CC='gcc' adb push ~/program_name /data/program_name
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!