Android Ndk C++ Compiler

5 min read Jun 28, 2024
Android Ndk C++ Compiler

Android NDK C++ Compiler: Panduan untuk Pengembang

Android NDK (Native Development Kit) memungkinkan pengembang untuk menulis kode native (C dan C++) untuk aplikasi Android mereka. Ini memberikan beberapa keuntungan, termasuk:

  • Performa yang lebih baik: Kode native dapat berjalan lebih cepat daripada kode Java, terutama untuk tugas-tugas yang intensif komputasi.
  • Akses ke fitur perangkat keras: NDK memungkinkan Anda untuk mengakses fitur perangkat keras yang tidak tersedia melalui API Java, seperti sensor dan hardware-specific APIs.
  • Penggunaan kode yang sudah ada: Jika Anda memiliki kode C atau C++ yang sudah ada, Anda dapat menggunakannya kembali dalam aplikasi Android Anda.

Untuk menggunakan NDK, Anda perlu memahami cara mengkompilasi kode C++ Anda untuk Android. Ini melibatkan beberapa langkah:

1. Instalasi Android NDK

Anda dapat mengunduh dan menginstal NDK dari halaman pengembang Android:

2. Membuat Project Android Studio

Buat sebuah project baru di Android Studio dan tambahkan modul C++ ke project Anda.

3. Menulis Kode C++

Tulis kode C++ Anda di file .cpp yang terletak di folder "jni" dalam project Anda.

4. Menentukan File Build

Buat file Android.mk di folder "jni" untuk menentukan bagaimana kode C++ Anda akan dikompilasi. File ini berisi instruksi untuk compiler, seperti:

  • Nama modul: Nama modul C++ Anda.
  • Sumber file: Daftar semua file .cpp yang akan dikompilasi.
  • Library: Library tambahan yang diperlukan.

5. Menjalankan ndk-build

Gunakan command ndk-build di terminal untuk membangun kode C++ Anda. Ini akan menghasilkan file library .so (shared object) yang dapat digunakan dalam aplikasi Android Anda.

6. Memanggil Kode Native dari Java

Gunakan System.loadLibrary() untuk memuat library .so Anda dalam kode Java Anda. Setelah library dimuat, Anda dapat mengakses fungsi C++ dari kode Java Anda menggunakan JNI (Java Native Interface).

Contoh sederhana

Berikut ini adalah contoh sederhana untuk memahami cara memanggil fungsi C++ dari kode Java:

File: native-lib.cpp

#include 
#include 

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
        JNIEnv* env,
        jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}

File: Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := native-lib
LOCAL_SRC_FILES := native-lib.cpp

include $(BUILD_SHARED_LIBRARY)

File: MainActivity.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

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

        // Example of a call to a native method
        TextView tv = findViewById(R.id.sample_text);
        tv.setText(stringFromJNI());
    }

    /**
     * A native method that is implemented by the 'native-lib' native library,
     * which is packaged with this application.
     */
    public native String stringFromJNI();

    // Load the library on application startup.
    static {
        System.loadLibrary("native-lib");
    }
}

Catatan:

  • Anda perlu menambahkan native-lib sebagai modul native dalam build.gradle dan menyinkronkan project.
  • Anda perlu menambahkan dependency NDK di build.gradle:
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.0"
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
//Dependency NDK
implementation 'com.android.tools.build:gradle:7.4.2'

Ini adalah pengenalan singkat tentang cara menggunakan Android NDK dan compiler C++. Anda dapat menemukan lebih banyak informasi tentang NDK dan JNI di dokumentasi resmi Android.

Latest Posts