Heim >Backend-Entwicklung >Golang >Unterstützt die Go-Sprache die Android-Entwicklung?
go-Sprache unterstützt die Android-Entwicklung; im Jahr 2014 erwähnten Go-Sprachentwickler, dass die Android-Plattform die Go-Entwicklung einführen würde, und GO-Sprachversion 1.5 veröffentlichte auch Gomobile für die Entwicklung mobiler Anwendungen. Gomobile ist ein Tool zum Erstellen und Ausführen mobiler Anwendungen, die in Go geschrieben wurden, und eine Möglichkeit, Go-Codebasen in Android/iOS-Bibliotheken zu konvertieren.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Vor etwa 14 Jahren erwähnten die Entwickler der Go-Sprache, dass die Android-Plattform die Go-Entwicklung einführen würde. Version 1.5 der GO-Sprache wurde auch für Go Mobile veröffentlicht In Go geschriebene Tools für mobile Anwendungen sind eine Möglichkeit, Go-Codebibliotheken in Android-/iOS-Bibliotheken zu konvertieren.
Vorbereitung:
Android-ndk herunterladen https: //
developer.android.com/ndk/downloads
rrreedownload Android-sdk. URL: https://developer.android.com/s
Befehlszeilentools
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
Hinweis: 23 in Android-23 ist die API-Stufe. Für Android10 ist Android-29 erforderlich. Entscheiden Sie, welche API-Stufe die Android-Version verwenden soll ">Installieren Sie gomobile und gobind. Nachdem die Go-Version auf go1.16 oder höher aktualisiert wurde, führen Sie den Befehl aus:
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-toolsBereinigen Sie den lokalen Bereich go- Build-Cache, das Verzeichnis ist
~/.cache/go-build
//Demo/Makefile kompilieren
Command line tools
当中的下载项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
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
androidapi
ist die API-Version, Ziel ist die CPU-Architektur// Quelle Code Demo/Demo.go dk/downloads
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_ROOTrrreee,
- Das main.go hier ist nur ein einfaches Go-Programm.【Verwandte Empfehlungen:
Go-Video-TutorialProgrammierunterricht】
Das obige ist der detaillierte Inhalt vonUnterstützt die Go-Sprache die Android-Entwicklung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!