goandroid

打包在android下的可执行程序

打包的代码如下,作用是输出运行的操作系统的信息:

func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    default:
        // freebsd, openbsd,
        // plan9, windows...
        fmt.Printf("%s.", os)
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

其中打包的文件只有上面的一个,文件名为android.go

当Mac或者Linux环境下有Go以及adb的环境即可编译运行,在Go文件所在的目录下执行打包的命令,命令如下:

CGO_ENABLED=0 GOARCH=arm GOOS=linux go build  -o target-android android.go

    1

运行该命令后可以得到target-android的可执行文件。

其中GOARCH和GOOS指定了目标的CPU和操作系统类型
GOARCH和GOOS相关。

如果分别指定amd64和darwin则打包的结果可以直接在mac下运行。

在android下运行

在此之前需要保证安装了adb以及手机开启了调试模式。
使用命令adb devices可以查看pc端连接的设备。

确定了打包和设备连接没问题后,使用adb push命令将打包的结果传到手机上,并执行响应的程序。具体的命令步骤为:

adb push ./target-android /data/local/tmp
adb shell # 进入android设备的shell环境
cd /data/local/tmp
chmod +x ./target-android #赋予执行的权限
./target-android #运行打包的程序

    1
    2
    3
    4
    5

输出的结果为Go runs on Linux.
————————————————
版权声明:本文为CSDN博主「immortalCockroach」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lszy24/java/article/details/78948130