当前位置: 首页 > 工具软件 > goandroid > 使用案例 >

go语言ios android开发,Go 语言编写移动端 Android 和 iOS SDK

宫俊才
2023-12-01

这篇文章不涉及 Go 编译原生 Android 和 iOS 应用,只讲述如何使用 Go 语言编译生成 Android 和 iOS SDK 库文件,并使用 Java (Android) 和 Objective-C (iOS)调用它们。

安装工具

要想使用 Go Mobile 功能,需要安装一个新工具 gomobile。Gomobile 是一个用于构建和运行用 Go 编写的移动应用程序的工具。

在 Windows 系统上,使用下面的命令:> set GO111MODULE=off

> go get golang.org/x/mobile/cmd/gobind

> go get golang.org/x/mobile/cmd/gomobile

> gomobile init

在 Linux 系统上使用下面的命令:$ GO111MODULE=off go get golang.org/x/mobile/cmd/gobind

$ GO111MODULE=off go get golang.org/x/mobile/cmd/gomobile

$ gomobile init

注意:gomobile 和 gobind 工具的支持模块正在开发中。在(https://golang.org/issues/27234)工作完成之前,使用 GO111MODULE=off 关闭模块模式(modules mode)。

如果安装工具时不使用 GO111MODULE=off 则会发生 gcc_android.c:6:25: fatal error: android/log.h: No such file or directory 错误。

Android SDK

在编写代码和构建库文件之前,需要:安装 Android SDK,并设置环境变量 $ANDROID_HOME ,

安装 Android NDK,并设置环境变量 $ANDROID_NDK_HOME ,

安装 GCC 编译器

准备条件完成后在 $GOPATH/src 目录下(如果不在 $GOPATH 目录下会发生 cannot find package 错误)新建一个文件夹名称为 mobile_test ,在文件夹下创建 main.go 文件,内容如下:package hello

import "fmt"

// Greetings test

func Greetings(name string) string {

return fmt.Sprintf("Hello %s", name)

}

在命令行终端下进入 mobile_test 目录,执行下列命令:$ cd $GOPATH/src/mobile_test

$ gomobile bind -o hello.aar -target=android

-target=android 命令会生成一个 AAR (Android ARchive) 文件来存档预编译的 Java API 存根类。默认的输出文件名是 .aar。AAR 文件常用于 Android 库项目的二进制发布,大多数 Android IDE 都支持 AAR 导入。

执行成功后在当前目录会生成 hello.aar 和 hello-sources.jar 文件。

将生成 hello.aar 和 hello-sources.jar 文件复制到项目的 “androidapp” 文件夹或在 Android Studio(1.2+) 中,可以使用模块导入向导导入 AAR 文件( File > New > New module > import .JAR 或 .AAR package),并将其设置为新的依赖项(File > Project Structure > Dependencies) :dependencies {

...

+ implementation files('src/main/JniLibs/hello-sources.jar')

+ implementation(name: 'hello', ext: 'aar')

}

然后就可以在项目中引用库文件的中的方法了,下面是 Kotlin 语言的简要代码:import hello.Hello

...

// Call Go function

val greetings = Hello.greetings("Android and Gopher")

下面是 Java 语言的简要代码:import hello.Hello

...

// Call Go function

String greetings = Hello.greetings("Android and Gopher")

iOS SDK

对于生成 iOS SDK,利用上一节的代码,在 Mac OS X 配置好环境,在终端上运行下列命令即可:$ cd $GOPATH/src/mobile_test

$ gomobile bind -target=ios mobile_test

Gomobile bind 将生成一个名为 Hello.framework 的框架包。打开你的 XCode 项目,将 Hello.framework 包拖放到 Xcode 项目中即可。

注意: 对于 target=ios 命令,gomobile 必须在安装了 Xcode 的 OS X 机器上运行。

然后就可以在项目中引用库文件的中的方法了,下面是 Objective-C 语言的简要代码:@import Hello; // Gomobile bind generated framework

...

textLabel.text = HelloGreetings(@"iOS and Gopher");

 类似资料: