打包Golang并在Android环境下运行

参考链接

  1. 打包在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)
        }

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

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

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

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

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

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

  2. 在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 #运行打包的程序

    输出的结果为Go runs on Linux.

你可能感兴趣的:(golang)