ホームページ  >  記事  >  バックエンド開発  >  Go 言語は Android 開発をサポートしていますか?

Go 言語は Android 開発をサポートしていますか?

青灯夜游
青灯夜游オリジナル
2023-01-05 11:24:404273ブラウズ

go 言語は Android 開発をサポートしています。2014 年に go 言語の開発者は、android プラットフォームに go 開発が導入されると述べました。GO 言語バージョン 1.5 では、モバイル アプリケーション開発用の gomobile もリリースされました。 Gomobile は、Go で書かれたモバイル アプリケーションを構築および実行するためのツールであり、Go コード ベースを Android/iOS ライブラリに変換する方法です。

Go 言語は Android 開発をサポートしていますか?

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

2014 年頃、go 言語の開発者は Android プラットフォームに go 開発が導入されると述べ、GO 言語のバージョン 1.5 も go mobile

Gomobile# をリリースしました。

Gomobile は、Go で書かれたモバイル アプリケーションを構築および実行するためのツールであり、Go コード ライブラリを Android/iOS ライブラリに変換する方法です。

Go Android Jar パッケージのコンパイル

準備作業:

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 ツールを通じて間接的にダウンロードされます)。

Web サイト:

https: //developer.android.com/studioコマンド ライン ツール ダウンロード項目の中から#を選択します##<pre class="brush:js;toolbar:false;">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 &quot;platform-tools&quot; &quot;platforms;android-23&quot; --sdk_root=${HOME}/android/android-sdk/cmdline-tools</pre>注: 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 をコンパイルします

  • // デモをコンパイル/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
は API バージョン、ターゲットは CPU アーキテクチャ
//ソースコードdemo/demo.go
// 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)
}

Go Android実行可能プログラムのコンパイル

準備作業:

android-ndk をダウンロードします。URL:
  • 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 をダウンロード
##
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
    arch ターゲットのコンパイル アーキテクチャを指定します {arm, arm64,x86,x86_64}、api、Android API のバージョンを指定します
  • Compile
export 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.go
    ここでの main.go は単純な Go プログラムです。
  • [関連する推奨事項:

    Go ビデオ チュートリアル
プログラミング教育
]

以上がGo 言語は Android 開発をサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。