在Debian中使用Golang进行移动开发的流程
移动开发主要分为Android和iOS两大平台,以下是针对Debian系统的具体步骤:
sudo apt update && sudo apt install golang-go,安装完成后通过go version验证(需1.5及以上版本)。go install golang.org/x/mobile/cmd/gomobile@latest安装gomobile工具,随后执行gomobile init初始化(需联网下载Android SDK依赖)。adb命令可用。mkdir MyGoAndroidApp && cd MyGoAndroidApp创建项目目录,执行go mod init MyGoAndroidApp初始化Go模块。main.go文件,编写需导出的函数(需用//export标记)和main函数(可为空,仅作为入口):package main
import "C"
//export Greet
func Greet(name *C.char) *C.char {
return C.CString("Hello, " + C.GoString(name))
}
func main() {}
此代码定义了一个Greet函数,接收C字符串参数并返回拼接后的字符串。gomobile bind -target=android .,生成MyGoAndroidApp.aar文件(包含Go代码编译后的库及Java绑定类)。MyGoAndroidApp包及Greet函数的Java接口。MyGoAndroidApp.aar复制到app/libs目录。app/build.gradle中添加依赖:repositories {
flatDir { dirs 'libs' }
}
dependencies {
implementation(name: 'MyGoAndroidApp', ext: 'aar')
}
MainActivity.java中加载库并调用Greet函数:public class MainActivity extends AppCompatActivity {
static { System.loadLibrary("MyGoAndroidApp"); }
public native String Greet(String name);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
textView.setText(Greet("Android")); // 显示“Hello, Android”
}
}
运行项目后,即可在手机或模拟器上看到Go函数输出的问候语。go install golang.org/x/mobile/cmd/gomobile@latest安装工具,执行gomobile init初始化(需配置iOS签名证书,后续步骤会提及)。mkdir MyGoiOSApp && cd MyGoiOSApp创建项目目录,执行go mod init MyGoiOSApp初始化模块。main.go文件,编写需导出的函数(需用//export标记):package main
import "C"
//export Multiply
func Multiply(a, b int) int {
return a * b
}
func main() {}
此代码定义了一个Multiply函数,接收两个整数参数并返回乘积。gomobile bind -target=ios -o MyGoiOSApp.framework .,生成MyGoiOSApp.framework文件(包含Go代码编译后的静态库及Objective-C头文件)。MyGoiOSApp模块及Multiply函数的Objective-C接口。MyGoiOSApp.framework拖入项目导航栏,勾选“Copy items if needed”并链接到项目。ViewController.swift中导入框架并调用Multiply函数:import UIKit
import MyGoiOSApp
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let result = Multiply(3, 4) // 调用Go函数
print("Result: \(result)") // 输出“Result: 12”
}
}
运行项目后,即可在Xcode控制台看到Go函数输出的乘积结果。clang、ld),并通过GOOS=ios GOARCH=arm64指定目标平台(需Go 1.16及以上版本支持)。