SDL (Simple DirectMedia Layer) adalah software library yang berguna
untuk mengakses perangkat fisik komputer, seperti grafik, suara, dan inputan. Software ini termasuk open-source yang populer dalam pengembangan game.
SDL mampu berjalan stabil di banyak platform. Salah satunya di platform Android yang dibahas di tulisan ini.
Terlebih dahulu, download library SDL:
https://github.com/libsdl-org/SDL/releases
Cukup download SDL3-devel-3.4.0-android.zip atau versi khusus Android lainnya.
Selanjutnya jalankan Android Studio sebagai alat pembuatan aplikasi Android dan untuk menjalankan aplikasinya bisa di perangkat seluler atau di emulator. Android Studio yang dipakai adalah versi Otter 3 Feature Drop.
Buat project baru, lalu di bagian Phone and Tablet, pilih Native C++.

Di tahapan berikutnya, Language diset ke Kotlin dan Build configuration diset ke Kotlin DSL.


Ekstrak SDL yang telah di-download, copy SDL3-3.4.0.aar kelokasi-project-baru/app/libs
dimana folder libs belum ada, jadi semestinya perlu dibuat dulu.
Hapus semua source MainActivity menjadi kode seperti dibawah ini, agar Activity SDL dieksekusi saat aplikasi mulai berjalan.
package com.hansanware.sdlinphone
import org.libsdl.app.SDLActivity
class MainActivity : SDLActivity()
Kelihatan lebih ringkas dan muncul error tapi biarkan saja dulu apa adanya. Kemudian edit CMakeLists.txt, target menjadi main karena Activity SDL membutuhkannya saat pemanggilan library. Kira-kira kode utuhnya seperti di bawah ini:
cmake_minimum_required(VERSION 3.22.1)
project("androidinphone")
set(SDL_LIB "main")
add_library(${SDL_LIB} SHARED
native-lib.cpp)
find_package(SDL3 REQUIRED CONFIG)
target_link_libraries(${SDL_LIB}
android
log
SDL3::SDL3)
Terus ganti source default di file native-lib.cpp dengan source SDL. Atau bisa juga disalin dari source hello world ini:
https://github.com/libsdl-org/SDL_helloworld/blob/main/main.c
Selanjutnya edit build.gradle.kts (Module :app), tambahkan
prefab = true
dan
implementation(files("libs/SDL3-3.4.0.aar"))
Struktur kode gradle-nya:
...
android {
...
buildFeatures {
...
prefab = true
}
}
...
dependencies {
...
implementation(files("libs/SDL3-3.4.0.aar"))
}
Lanjutkan dengan sinkronisasi (sync) dan jalankan aplikasinya.