Heim >Backend-Entwicklung >Golang >Unterstützt die Go-Sprache die Android-Entwicklung?

Unterstützt die Go-Sprache die Android-Entwicklung?

青灯夜游
青灯夜游Original
2023-01-05 11:24:404321Durchsuche

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.

Unterstützt die Go-Sprache die Android-Entwicklung?

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

    , wählen Sie das Download-Element in 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-tools
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_ROOT
rrreee
  • Das main.go hier ist nur ein einfaches Go-Programm.

    【Verwandte Empfehlungen:
  • Go-Video-Tutorial
,
Programmierunterricht

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn