Maison  >  Article  >  développement back-end  >  Le langage Go prend-il en charge le développement Android ?

Le langage Go prend-il en charge le développement Android ?

青灯夜游
青灯夜游original
2023-01-05 11:24:404295parcourir

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.

Le langage Go prend-il en charge le développement Android ?

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://dk/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
    Téléchargez Android-sdk (Android-sdk est téléchargé via l'indirection instrumentale des outils de ligne de commande).
  • URL :

https://tudio, sélectionnez l'élément de téléchargement dans Outils de ligne de commande

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
Remarque : 23 dans Android-23 est le niveau d'API. Cela correspond à Android6.0. Pour Android10, Android-29 est requis. Décidez quelle version d'Android de niveau API utiliser
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
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

  • Nettoyez la zone locale go- construire le cache, le répertoire est ~/.cache/go-build
  • Compiler le makefile

    Préparation :
    • Télécharger android-ndk Site Web :

      https://
    developer.android.com /n.
    dk/downloads
    rrreee
    Télécharger android-sdk

    rrreee

    arch Spécifiez l'architecture de compilation cible {arm, arm64, x86, 6_6 4}, API, spécifiez Android Version API🎜🎜🎜🎜Compilation🎜🎜🎜🎜rrreee🎜🎜Le main.go ici n'est qu'un simple programme Go.🎜🎜【Recommandations associées : 🎜Tutoriel vidéo Go🎜, 🎜Enseignement de la programmation🎜】🎜
  • 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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn