go 언어는 2014년에 Android 개발을 지원하며, Go 언어 개발자들은 Android 플랫폼이 Go 개발을 도입할 것이라고 언급했으며, GO 언어 버전 1.5도 모바일 애플리케이션 개발을 위해 gomobile을 출시했습니다. Gomobile은 Go로 작성된 모바일 애플리케이션을 구축하고 실행하기 위한 도구이며 Go 코드 베이스를 Android/iOS 라이브러리로 변환하는 방법입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
약 14년 전, Go 언어 개발자들은 안드로이드 플랫폼에 Go 개발이 도입될 것이라고 언급했습니다. GO 언어 버전 1.5도 출시되었습니다. go mobile
Gomobile
Gomobile은 빌드하고 실행하기 위한 도구입니다. Go로 작성된 모바일 애플리케이션용 도구는 Go 코드 라이브러리를 Android/iOS 라이브러리로 변환하는 방법입니다.
Go를 Android Jar 패키지로 컴파일하세요.
준비 작업:
android-ndk 다운로드: https://developer.android.com/ndk/downloads
mkdir -p ${HOME}/android
curl https://dl.google.com/android/repository/android-ndk-r24-linux.zip -o android-ndk-r24.zip
unzip android-ndk-r24.zip && mv android-ndk-r24 ${HOME}/android
android-sdk를 다운로드하세요(android-sdk는 commandlinetools 도구 간접 다운로드를 통해 다운로드됩니다).
URL: https://developer.android.com/studio, 명령줄 도구
Command line tools
当中的下载项
mkdir -p ${HOME}/android/android-sdk # Download Tools curl https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -o commandlinetools.zip unzip commandlinetools.zip mv cmdline-tools ${HOME}/android/android-sdk # Download Android SDK ${HOME}/android/android-sdk/cmdline-tools/bin/sdkmanager "platform-tools" "platforms;android-23" --sdk_root=${HOME}/android/android-sdk/cmdline-tools
注: android-23 当中的 23 是 API 级别. 这个对应的是 Android6.0, 对于 Android10, 需要 android-29. 自行决定使用哪个API级别的 Android 版本
安装 gomobile, gobind, 在 go 的版本升级到 go1.16 以上后, 执行命令:
go install golang.org/x/mobile/cmd/gomobile@latest
go install golang.org/x/mobile/cmd/gobind@latest
清理本地 go-build 缓存, 目录是 ~/.cache/go-build
编译 makefile
// 编译 demo/makefile
# config
export ANDROID_HOME=${HOME}/android/android-sdk/cmdline-tools
export ANDROID_NDK_HOME=${HOME}/android/android-ndk-r24
export TOOL=${HOME}/android/android-ndk-r24
android: depend
gomobile bind -target=android/arm64 -androidapi=23 -o device.aar -v -x ${HOME}/demo
ios: depend
gomobile bind -target=ios -o device.framework -v ${HOME}/demo
depend:
cd ${HOME}/demo
gomobile init
go get golang.org/x/mobile/bind
clean:
rm -rvf libdevice.*
androidapi
// demo.go package demo import ( "fmt" "io/ioutil" "path/filepath" "time" ) var done = make(chan struct{}) func Start(dir string) { fmt.Println("dir", dir) file := filepath.Join(dir, "test.log") err := ioutil.WriteFile(file, []byte(time.Now().String()), 0666) if err != nil { fmt.Printf("Writefile:%v\n", err) } select { case <-done: case <-time.After(10 * time.Minute): } } func Stop(mac string) { fmt.Println("stop mac", mac) close(done) }참고: android-23의 23은 Android6.0에 해당합니다. Android10의 경우 사용할 API 레벨 Android 버전을 결정하세요.gomobile 및 gobind를 설치합니다. go 버전을 go1.16 이상으로 업그레이드한 후 다음 명령을 실행합니다.
mkdir -p ${HOME}/android curl https://dl.google.com/android/repository/android-ndk-r24-linux.zip -o android-ndk-r24.zip unzip android-ndk-r24.zip && mv android-ndk-r24 ${HOME}/android로컬 영역 정리 go -build 캐시, 디렉터리는~/.cache/go-build
Compile makefile
준비 작업:https://developer.android.com /ndk/downloads
- android-ndk 다운로드 웹사이트:
rrreee rrreee🎜🎜arch 대상 컴파일 아키텍처 지정 {arm, arm64, x86, 4}, API, Android API 버전 지정🎜🎜🎜🎜Compilation🎜🎜🎜🎜rrreee🎜🎜여기의 main.go는 단순한 Go 프로그램입니다.🎜🎜【관련 추천: 🎜Go 동영상 튜토리얼🎜, 🎜프로그래밍 교육🎜】🎜
위 내용은 Go 언어는 Android 개발을 지원하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!