Android 개발에서 Go 연습: Go 개발 환경 설정: Go 및 Android NDK를 설치합니다. Android 앱 만들기: Android Studio를 사용하여 새 프로젝트를 만듭니다. Go 통합: jni 디렉터리에 go 디렉터리와 main.go 파일을 만듭니다. Go 코드 컴파일: go build 명령을 실행하여 main.go 파일을 컴파일합니다. 네이티브 인터페이스 추가: MainActivity.java에 네이티브 메서드 callGo()를 선언합니다. Go 공유 라이브러리 로드: MainActivity.java에서 System.loadLibrary("go")를 사용하여 Go 공유 라이브러리를 로드합니다. 실제 사례: main.go에 Toast 메시지를 표시하고 Android에서 MakeToast() 메서드를 호출합니다.
Android 개발에서의 Go 실습
소개
Go는 Google에서 개발한 최신 프로그래밍 언어이며 단순성, 동시성 및 효율성으로 유명합니다. Android 앱 개발 세계에서 Go는 기본 성능과 크로스 플랫폼 이점을 제공하므로 인기를 얻고 있습니다. 이 글에서는 Android 애플리케이션에서 Go를 사용하는 방법을 안내하고 실제 사례를 제공합니다.
Go 개발 환경 설정
Android 앱 만들기
Android Studio를 사용하여 새 Android 프로젝트를 만듭니다. "새 프로젝트" 대화상자에서 "빈 활동" 모듈을 선택합니다.
Go 통합
app/src/main/jni
디렉터리 아래에 go
디렉터리를 만듭니다. app/src/main/jni
目录下创建 go
目录。go
目录下创建 main.go
文件,包含以下代码:package main // 此函数在 Android 应用程序启动时调用 import "C" func main() {}
app/src/main/jnilibs
目录下创建与应用 ABI 对应的子目录(例如,arm64-v8a
)。libgo.so
的符号链接,指向 Go 编译生成的库文件。编译 Go 代码
go build -buildmode=c-shared -o libgo.so main.go
添加 Native 接口
为了在 Android 代码中调用 Go 代码,需要添加一个 JNI(Java Native Interface)接口。在 app/src/main/java/<PACKAGE_NAME>
目录下创建 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
main.go
파일을 go
디렉토리에 생성합니다: 생성된 하위 디렉터리에 Go 컴파일로 생성된 라이브러리 파일을 가리키는 Go 코드 컴파일 위 내용은 Android 개발의 Go 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!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 {}
}
In
app/ src/ main/jnilibs
디렉터리에 애플리케이션 ABI에 해당하는 하위 디렉터리를 만듭니다(예: arm64-v8a
). libgo.so
라는 심볼릭 링크를 만듭니다. app/src/main/java/<PACKAGE_NAME>
디렉터리에 다음 코드가 포함된 MainActivity.java
파일을 만듭니다. 🎜rrreee🎜🎜실용 사례: Toast 표시 message🎜 🎜🎜Go를 사용하여 토스트 메시지를 표시합니다. main.go
파일에 다음 코드를 추가합니다. 🎜rrreee🎜🎜Run the application🎜🎜🎜Android 애플리케이션을 컴파일하고 실행합니다. 장치나 시뮬레이터의 Go 코드에서 토스트 메시지가 표시되어야 합니다. 🎜🎜🎜요약🎜🎜🎜 Go를 사용하여 Android 애플리케이션을 개발하면 성능을 향상하고 동시성을 단순화하며 플랫폼 간 이점을 실현할 수 있습니다. 이 문서에서는 Go를 통합하는 데 도움이 되는 단계별 가이드를 제공하고 토스트 메시지를 표시하는 실제 예를 제공합니다. 🎜