Maison > Article > développement back-end > Le langage Go prend-il en charge le développement Android ?
Le langage Go prend en charge le développement Android ; en 2014, les développeurs du langage Go ont mentionné que la plate-forme Android introduirait le développement Go, et la version 1.5 du langage GO a également publié Gomobile pour le développement d'applications mobiles. Gomobile est un outil permettant de créer et d'exécuter des applications mobiles écrites en Go et constitue un moyen de convertir les bases de code Go en bibliothèques Android/iOS.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Il y a environ 14 ans, les développeurs du langage go ont mentionné que la plate-forme Android introduirait le développement go. La version 1.5 du langage GO a également publié go mobile
Gomobile
Gomobile est un outil de création et d'exécution. Les outils pour applications mobiles écrites en Go sont un moyen de convertir les bibliothèques de code Go en bibliothèques Android/iOS
Compilez Go dans les packages Android Jar
Préparation :
Télécharger 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
go install golang.org/x/mobile/cmd/gomobile@latest go install golang.org/x/mobile/cmd/gobind@latest
注: android-23 当中的 23 是 API 级别. 这个对应的是 Android6.0, 对于 Android10, 需要 android-29. 自行决定使用哪个API级别的 Android 版本
安装 gomobile, gobind, 在 go 的版本升级到 go1.16 以上后, 执行命令:
# 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.*
清理本地 go-build 缓存, 目录是 ~/.cache/go-build
编译 makefile
// 编译 demo/makefile
// 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)
}
androidapi
Installez gomobile et gobind. Une fois la version go mise à niveau vers go1.16 ou supérieure, exécutez la commande :
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
~/.cache/go-build
//Compile demo/makefile
export ARCH=arm export NDK_ROOT=${HOME}/android/ndk-toolchain/${ARCH} python ${HOME}/android/android-ndk-r24/build/tools/make_standalone_toolchain.py --arch $ARCH --api 22 --install-dir $NDK_ROOT
androidapi
est la version de l'API, la cible est l'architecture du CPU// source code demo/demo.goexport CC=${HOME}/android/ndk-toolchain/arm/bin/arm-linux-androideabi-gcc export GOOS=android export GOARCH=arm export GOARM=7 export CGO_ENABLED=1 go build -x main.goCompile le programme exécutable Go Android
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!