Membangun (Compile) Program Go (Go-Lang) Langsung Di Android


Untuk membangun (compile) program Go langsung di perangkat Android, ada dua pendekatan utama yang biasanya dipakai:

1️⃣ Menggunakan Termux (terminal Linux di Android)
Ini cara paling mudah karena Termux menyediakan paket‑paket Linux lengkap, termasuk Go.

Pasang Termux
Unduh dari F-Droid atau Google Play Store dan buka aplikasinya.

Perbarui repositori & pasang Go

pkg update && pkg upgrade
pkg install golang
Atur workspace Go (opsional, tapi disarankan)

mkdir -p $HOME/go/{src,pkg,bin}
echo 'export GOPATH=$HOME/go' >> ~/.profile
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.profile
source ~/.profile
Buat / pindahkan kode sumber
Simpan file .go Anda di $HOME/go/src/myapp/main.go (atau lokasi lain yang Anda suka).

Compile untuk Android
Karena Termux berjalan di lingkungan Linux ARM/ARM64, Anda dapat langsung meng‑compile dengan target default:

cd $HOME/go/src/myapp
go build -o myapp
Hasilnya (myapp) akan berupa binary yang dapat dijalankan di dalam Termux.

Jika ingin binary yang dapat dijalankan di luar Termux
Anda perlu men‑cross‑compile ke arsitektur Android yang tepat (lihat bagian 2).

2️⃣ Cross‑compile dengan Android NDK

Jika tujuan Anda adalah menghasilkan binary yang dapat dijalankan sebagai aplikasi native (misalnya dipanggil dari Java/Kotlin lewat JNI) atau dijalankan di lingkungan Android standar, gunakan Android NDK.

Pasang Android NDK

Unduh dari situs resmi Android Developer: https://developer.android.com/ndk/downloads
Ekstrak ke folder, misalnya ~/android-ndk-r27b.
Set variabel lingkungan (contoh untuk ARM64):

export NDK_ROOT=~/android-ndk-r27b
export TOOLCHAIN=$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64
export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang # API level 21 minimal
export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/llvm-as
export LD=$TOOLCHAIN/bin/ld.lld
export STRIP=$TOOLCHAIN/bin/llvm-strip
Set target Go

export GOOS=android
export GOARCH=arm64 # atau arm, 386, amd64 tergantung target
export CGO_ENABLED=1 # diperlukan bila memakai cgo / NDK libs
export CC=$CC # gunakan compiler NDK yang sudah didefinisikan
Compile program Go

go build -v -o myapp_android
Binary myapp_android kini berformat ELF Android dan dapat dijalankan di perangkat (misalnya lewat adb shell ./myapp_android atau dipanggil dari kode Java melalui JNI).

Catatan penting

Pastikan versi Go Anda mendukung GOOS=android. Go 1.20+ sudah memiliki dukungan penuh.

Jika tidak menggunakan cgo, Anda bisa menonaktifkan dengan CGO_ENABLED=0; ini menghasilkan binary yang lebih ringan dan tidak memerlukan NDK sama sekali.

Untuk arsitektur armeabi‑v7a (32‑bit ARM), gunakan:
export GOARCH=arm
export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang

Ringkasan langkah cepat

Metode Kapan pakai Langkah utama
Termux Ingin compile & jalankan langsung di perangkat Android tanpa NDK pkg install golang → go build

NDK cross‑compile Membuat binary yang dapat dipanggil dari aplikasi Android atau dijalankan di lingkungan non‑Termux Install NDK → set GOOS=android, GOARCH, CC → go build

Jika Anda hanya ingin mencoba kode Go secara cepat, Termux biasanya cukup. Namun, untuk integrasi dengan aplikasi Android atau distribusi binary yang berdiri sendiri, cross‑compile dengan NDK adalah pilihan yang lebih fleksibel.

Untuk arsitektur khusus (arm64, armeabi‑v7a, x86) next....di postingan selanjutnya


Comments

Popular posts from this blog

Step By Step Aktifasi GitHub Pages Dan Perbandingan GitHub App Dengan Versi Web

Pengertian : getpid() Dan PID For Example URL

Mengatasi "signal : killed" Sewaktu Menjalankan Program Di Terminal