Menambahkan kode C dan C++ ke project Anda

Tambahkan kode C dan C++ ke project Android Anda dengan menempatkan kode ke direktori cpp dalam modul project Anda. Ketika mem-build project, kode ini dikompilasi ke library native yang dapat dipaketkan Gradle dengan aplikasi Anda. Kode Java atau Kotlin Anda kemudian dapat memanggil fungsi di library native melalui Java Native Interface (JNI). Untuk mempelajari penggunaan framework JNI lebih lanjut, baca Tips JNI untuk Android.

Android Studio mendukung CMake, yang berguna untuk project lintas platform. Android Studio juga mendukung ndk-build, yang dapat lebih cepat dari CMake, tetapi hanya mendukung Android. Penggunaan CMake dan ndk-build dalam modul yang sama saat ini tidak didukung.

Untuk mengimpor library ndk-build yang ada ke project Android Studio Anda, pelajari cara menautkan Gradle ke project library native.

Halaman ini menunjukkan cara menyiapkan Android Studio dengan alat build yang diperlukan, membuat project baru dengan dukungan C/C++, dan menambahkan file C/C++ baru ke project.

Jika Anda ingin menambahkan kode native ke project yang ada, ikuti langkah-langkah berikut:

  1. Buat file sumber native baru, lalu tambahkan file ke project Android Studio Anda.
    • Lewati langkah ini jika Anda sudah memiliki kode native atau ingin mengimpor library native bawaan.
  2. Konfigurasikan CMake agar mem-build kode sumber native ke dalam library. Skrip build ini diperlukan jika Anda mengimpor dan menautkan ke library platform atau bawaan.
    • Jika Anda sudah memiliki library native yang sudah memiliki skrip build CMakeLists.txt atau menggunakan ndk-build dan menyertakan skrip build Android.mk, lewati langkah ini.
  3. Konfigurasikan Gradle dengan menyediakan jalur ke file skrip CMake atau ndk-build. Gradle menggunakan skrip build untuk mengimpor kode sumber ke project Android Studio dan memaketkan library native ke dalam aplikasi.

Setelah mengonfigurasi project, akses fungsi native dari kode Java atau Kotlin menggunakan framework JNI. Untuk membuat dan menjalankan aplikasi Anda, klik Run jalankan kemudian jalankan aplikasi dari panel menu.

Catatan: Jika project Anda yang sudah ada menggunakan alat ndkCompile yang tidak digunakan lagi, migrasikan untuk menggunakan CMake atau ndk-build.

Mendownload NDK dan alat build

Untuk mengompilasi dan men-debug kode native aplikasi, Anda memerlukan komponen berikut:

  • Android Native Development Kit (NDK): kumpulan alat yang memungkinkan Anda menggunakan kode C dan C++ dengan Android. NDK menyediakan library platform yang memungkinkan Anda mengelola aktivitas native dan mengakses komponen perangkat fisik, seperti sensor dan input sentuh.
  • CMake: alat build eksternal yang bekerja bersama Gradle untuk mem-build library native. Anda tidak memerlukan komponen ini jika hanya berencana menggunakan ndk-build.
  • LLDB: debugger di Android Studio yang men-debug kode native.

Untuk mengetahui informasi tentang cara menginstal komponen ini, lihat Menginstal dan mengonfigurasi NDK dan CMake.

Membuat project baru dengan dukungan C/C++

Untuk membuat project baru dengan dukungan kode native, prosesnya mirip dengan membuat project Android Studio lainnya, tetapi dengan langkah tambahan:

  1. Di bagian Choose your project di wizard, pilih jenis project Native C++.
  2. Klik Berikutnya.
  3. Lengkapi semua bidang lainnya di bagian wizard berikutnya.
  4. Klik Berikutnya.
  5. Di bagian Customize C++ Support di wizard, Anda dapat menyesuaikan project dengan kolom C++ Standard.
    • Gunakan menu drop-down untuk memilih standardisasi C++ yang ingin digunakan. Memilih Toolchain Default akan menggunakan setelan CMake default.
  6. Klik Finish.

Setelah Android Studio menyelesaikan pembuatan project baru, buka panel Project dari sisi kiri IDE, lalu pilih tampilan Android dari menu. Seperti ditampilkan dalam gambar 1, Android Studio akan menambahkan grup cpp:

Gambar 1. Kelompok tampilan Android untuk sumber native dan skrip build eksternal.

Catatan: Tampilan ini tidak mencerminkan hierarki file sesungguhnya di disk, tetapi mengelompokkan file yang serupa untuk menyederhanakan navigasi project Anda.

Dalam grup cpp, Anda dapat menemukan semua file sumber native, header, skrip build untuk CMake atau ndk-build, dan library bawaan yang merupakan bagian dari project. Untuk project baru, Android Studio membuat file sumber C++ contoh, native-lib.cpp, dan menempatkannya di direktori src/main/cpp/ modul aplikasi. Kode contoh ini menyediakan fungsi C++ sederhana, stringFromJNI(), yang menampilkan string "Hello from C++". Pelajari cara menambahkan file sumber tambahan ke project di bagian tentang cara membuat file sumber native baru.

Mirip dengan cara file build.gradle menginstruksikan Gradle cara mem-build aplikasi, CMake dan ndk-build memerlukan skrip build untuk mengetahui cara mem-build library native. Untuk project baru, Android Studio membuat skrip build CMake, CMakeLists.txt, dan menempatkannya di direktori utama modul. Untuk mempelajari konten skrip build ini lebih lanjut, baca Mengonfigurasi CMake.

Mem-build dan menjalankan aplikasi contoh

Saat Anda mengklik Run jalankan kemudian jalankan aplikasi dari panel menu, Android Studio akan mem-build dan meluncurkan aplikasi yang menampilkan teks “Hello from C++” di perangkat Android atau emulator. Ringkasan berikut menjelaskan peristiwa yang terjadi untuk membangun dan menjalankan aplikasi contoh:

  1. Gradle memanggil skrip build eksternal Anda, CMakeLists.txt.
  2. CMake mengikuti perintah dalam skrip build untuk mengompilasi file sumber C++, native-lib.cpp, menjadi library objek bersama dan menamainya dengan libnative-lib.so. Gradle kemudian memaketkannya ke dalam aplikasi.
  3. Selama runtime, MainActivity aplikasi akan memuat library native menggunakan System.loadLibrary(). Fungsi native library, stringFromJNI(), kini tersedia untuk aplikasi.
  4. MainActivity.onCreate() memanggil stringFromJNI(), yang menampilkan "Hello from C++" dan menggunakannya untuk mengupdate TextView.

Untuk memverifikasi apakah Gradle memaketkan library native dalam aplikasi, gunakan APK Analyzer:

  1. Pilih Build > Build Bundles(s) / APK(s) > Build APK(s).
  2. Pilih Build > Analyze APK.
  3. Pilih APK atau AAB dari direktori app/build/outputs/, lalu klik OK.
  4. Seperti ditunjukkan dalam gambar 2, Anda dapat melihat libnative-lib.so di jendela APK Analyzer di bagian lib/<ABI>/.

    Gambar 2. Menemukan library native menggunakan APK Analyzer.

Tips: Jika Anda ingin bereksperimen dengan aplikasi Android lainnya yang menggunakan kode native, klik File > New > Import Sample, lalu pilih project contoh dari daftar Ndk.

Membuat file sumber C/C++ yang baru

Untuk menambahkan file sumber C/C++ baru ke project yang ada, lakukan langkah berikut:

  1. Jika Anda belum memiliki direktori cpp/ dalam set sumber utama aplikasi, buat dengan cara berikut:
    1. Buka panel Project di sebelah kiri IDE, lalu pilih tampilan Project dari menu.
    2. Buka your-module > src.
    3. Klik kanan direktori main, lalu pilih New > Directory.
    4. Masukkan cpp sebagai nama direktori dan klik OK.

  2. Klik kanan direktori cpp/, lalu pilih New > C/C++ Source File.
  3. Masukkan nama untuk file sumber Anda, misalnya native-lib.
  4. Dari menu Type, pilih ekstensi file untuk file sumber, seperti .cpp.
    • Klik Edit File Types untuk menambahkan jenis file lain ke menu, seperti .cxx atau .hxx. Dalam kotak dialog New File Extensions yang muncul, pilih ekstensi file lainnya dari menu Source Extension dan Header Extension lalu klik OK.
  5. Untuk membuat file header, pilih kotak centang Create an associated header.
  6. Klik OK.

Setelah menambahkan file C/C++ baru ke project, Anda masih harus mengonfigurasi CMake untuk menyertakan file di library native.

Referensi lainnya

Untuk mempelajari kode C/C++ pendukung di aplikasi lebih lanjut, coba lihat referensi berikut.

Codelab