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
Post a Comment