首頁  >  文章  >  後端開發  >  Android 開發中的 Go 實踐

Android 開發中的 Go 實踐

WBOY
WBOY原創
2024-04-08 10:33:01964瀏覽

在 Android 開發中實作 Go:設定 Go 開發環境:安裝 Go 和 Android NDK。建立 Android 應用程式:使用 Android Studio 建立一個新專案。整合 Go:在 jni 目錄中建立 go 目錄和 main.go 檔案。編譯 Go 程式碼:執行 go build 指令編譯 main.go 檔案。新增 Native 介面:在 MainActivity.java 中宣告 native 方法 callGo()。載入 Go 共享庫:在 MainActivity.java 中使用 System.loadLibrary("go") 載入 Go 共享庫。實戰案例:在 main.go 中顯示一個 Toast 訊息,呼叫 Android 中的 MakeToast() 方法。

Android 开发中的 Go 实践

Android 開發中的Go 實踐

引言

Go 是Google開發的一種現代程式語言,因其簡潔、並發性和效率而聞名。在 Android 應用程式開發領域,Go 正逐漸受到歡迎,因為它提供了原生效能和跨平台優勢。本文將指導你如何在 Android 應用程式中使用 Go,並提供一個實戰案例。

設定 Go 開發環境

  1. 安裝 Go:造訪 https://go.dev/dl/ 下載並安裝 Go。
  2. 配置環境變數:將 Go 安裝目錄加入 PATH 環境變數。
  3. 安裝 Android NDK:依照 https://developer.android.com/ndk/downloads 上的說明安裝 Android NDK。

建立 Android 應用程式

使用 Android Studio 建立一個新的 Android 專案。在 "New Project" 對話方塊中選擇 "Empty Activity" 模組。

整合 Go

  1. app/src/main/jni 目錄下建立 go 目錄。
  2. go 目錄下建立main.go 文件,包含以下程式碼:
package main

// 此函数在 Android 应用程序启动时调用
import "C"

func main() {}
  1. app /src/main/jnilibs 目錄下建立與套用ABI 對應的子目錄(例如,arm64-v8a)。
  2. 在建立的子目錄中建立一個名為 libgo.so 的符號鏈接,指向 Go 編譯產生的函式庫檔案。

編譯 Go 程式碼

  1. 開啟終端機視窗並導航到專案目錄。
  2. 執行以下指令編譯Go 程式碼:
  3. ##
    go build -buildmode=c-shared -o libgo.so main.go

新增Native 介面

為了在Android 程式碼中呼叫Go 程式碼,需要新增一個JNI(Java Native Interface)介面。在

app/src/main/java/5ecf0a39e3150d20f8b8b25f978422b4 目錄下建立MainActivity.java 文件,包含以下程式碼:

import android.app.Activity;
import android.os.Bundle;

// 声明一个 native 方法
public class MainActivity extends Activity {
    // 此方法将调用 Go 代码
    public native void callGo();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 调用 Go 代码
        callGo();
    }

    // 加载 Go 共享库
    static {
        System.loadLibrary("go");
    }
}

實戰案例:顯示Toast 訊息

使用Go 顯示一個Toast 訊息。在

main.go 檔案中加入以下程式碼:

package main

import "C"

// 在 Android 中显示 Toast 消息
import (
    "context"
    "log"

    "github.com/go-android/go-android/android"
)

func main() {
    ctx := context.Background()
    activity := android.ActivityFromContext(ctx)

    // 创建一个 Toast 消息
    toast := activity.MakeToast()
    toast.SetText("Hello from Go!")

    // 显示 Toast 消息
    toast.Show()

    // 主 Go 程序进入阻塞
    log.Println("native: waiting")
    select {}
}

運行應用程式

編譯並執行 Android 應用程式。你應該會在裝置或模擬器上看到一條來自 Go 程式碼的 Toast 訊息。

總結

使用 Go 開發 Android 應用程式可以提高效能、簡化並發性和實現跨平台優勢。本文提供了逐步指南,可幫助你整合 Go 並提供了一個顯示 Toast 訊息的實戰案例。

以上是Android 開發中的 Go 實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn