Bagaimana Cara Menambahkan Kode C dan C++ ke Project ?

Anda dapat menambahkan kode C dan C++ ke project Android dengan menempatkan kode ke direktori cpp di modul project Anda. Ketika mem-build project, kode ini dikompilasi ke library native yang dapat dipaketkan Gradle dengan APK Anda. Kode Java atau Kotlin Anda kemudian dapat memanggil fungsi-fungsi dalam library native melalui Java Native Interface (JNI). Untuk mempelajari penggunaan kerangka kerja JNI selengkapnya, baca tips JNI untuk Android.
Android Studio mendukung CMake, yang bagus untuk project lintas platform, dan ndk-build, yang bisa lebih cepat dari CMake, tetapi hanya mendukung Android. Penggunaan CMake dan ndk-build dalam modul yang sama saat ini tidak didukung.
Jika Anda ingin mengimpor library ndk-build yang ada ke project Android Studio, pelajari cara menautkan Gradle ke project library native Anda.
Halaman ini menunjukkan cara menyiapkan Android Studio dengan fitur build yang diperlukan, membuat project baru dengan dukungan C/C++, dan menambahkan file C/C++ baru ke project Anda.
Jika Anda ingin menambahkan kode native ke project yang ada, Anda harus mengikuti langkah-langkah berikut:
  1. Buat file sumber native baru, lalu tambahkan ke project Android Studio Anda.
    • Langkah ini dapat dilewati jika Anda sudah memiliki kode native atau ingin mengimpor library native bawaan.
  2. Konfigurasikan CMake untuk mem-build kode sumber native Anda ke library. Anda juga memerlukan skrip build ini jika mengimpor dan menautkan ke library platform atau bawaan.
    • Jika Anda memiliki library native yang sudah berisi skrip build CMakeLists.txt, atau menggunakan ndk-build dan menyertakan skrip build Android.mk, Anda dapat melewati langkah ini.
  3. Konfigurasikan Gradle dengan menyediakan lokasi file skrip CMake atau ndk-build Anda. Gradle menggunakan skrip build untuk mengimpor kode sumber ke project Android Studio dan memaketkan library native (file SO) ke APK.
Setelah mengonfigurasi project, Anda dapat mengakses fungsi native dari kode Java atau Kotlin menggunakan kerangka kerja JNI. Untuk mem-build dan menjalankan aplikasi Anda, cukup klik Run jalankan kemudian jalankan aplikasi dari panel menu.
Catatan: Jika project yang sudah ada menggunakan fitur ndkCompile yang tidak digunakan lagi, Anda harus melakukan migrasi agar dapat menggunakan CMake atau ndk-build. Untuk mempelajari lebih lanjut, buka bagian tentang cara Melakukan migrasi dari ndkCompile.
Perhatian bagi pengguna Gradle versi eksperimental: Pertimbangkan untuk melakukan migrasi ke plugin versi 2.2.0 atau yang lebih tinggi, dan menggunakan CMake atau ndk-build untuk mem-build library native jika salah satu dari hal-hal berikut berlaku bagi Anda: Project native Anda sudah menggunakan CMake atau ndk-build; Anda lebih suka menggunakan sistem build Gradle versi stabil; atau Anda menginginkan dukungan untuk fitur tambahan, seperti CCache. Jika tidak, Anda dapat terus menggunakan versi eksperimental Gradle dan plugin Android.

Mendownload NDK dan Fitur Build

Untuk mengompilasi dan men-debug kode native aplikasi, Anda membutuhkan komponen berikut:
  • Android Native Development Kit (NDK): seperangkat fitur yang memungkinkan Anda menggunakan kode C dan C++ bersama Android, dan menyediakan library platform yang memungkinkan Anda mengelola aktivitas dan mengakses komponen perangkat fisik, misalnya sensor dan input sentuh.
  • CMake: fitur build eksternal yang bekerja bersama Gradle untuk mem-build library native. Anda tidak memerlukan komponen ini jika hanya berencana menggunakan ndk-build.
  • LLDB: debugger yang digunakan Android Studio untuk men-debug kode native.
Anda dapat menginstal komponen tersebut menggunakan SDK Manager:
  1. Dari project yang dibuka, pilih Tools > SDK Manager dari panel menu.
  2. Klik tab SDK Tools.
  3. Centang kotak di sebelah LLDBCMake, dan NDK, seperti ditunjukkan dalam gambar 1.
    Gambar 1. Menginstal LLDB, CMake, dan NDK dari SDK Manager.
  4. Klik Apply, lalu klik OK dalam dialog pop-up.
  5. Setelah penginstalan selesai, klik Finish, lalu klik OK.

Menggunakan CMake 3.6.0 atau 3.10.2

SDK Manager menyertakan CMake versi fork 3.6.0 dan versi 3.10.2. Project yang tidak menetapkan versi CMake tertentu di build.gradle di-build menggunakan CMake 3.6.0. Untuk menggunakan versi yang disertakan nanti, tentukan CMake versi 3.10.2 dalam file build.gradle modul Anda:
    android {
        ...
        externalNativeBuild {
            cmake {
                ...
                version "3.10.2"
            }
        }
    }
    
Meskipun bukan praktik terbaik, Anda dapat menentukan versi CMake sebagai versi minimum dengan menambahkan tanda + di akhir entri build.gradle, seperti 3.10+ atau 3+.

Menggunakan versi CMake kustom

Jika Anda ingin menggunakan CMake versi 3.7 atau lebih tinggi yang tidak disertakan oleh SDK Manager, ikuti langkah-langkah berikut:
  1. Download dan instal CMake 3.7 atau yang lebih tinggi dari situs web resmi CMake.
  2. Tentukan versi CMake yang Anda inginkan untuk digunakan oleh Gradle dalam file build.gradle modul Anda:
        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "cmake-version"
                }
            }
        }
        
  3. Tambahkan lokasi penginstalan CMake ke variabel lingkungan PATH Anda atau sertakan dalam file local.properties project Anda, seperti yang ditunjukkan di bawah ini. Jika Gradle tidak dapat menemukan versi CMake yang ditentukan dalam file build.gradle, build akan mengalami error.
        # If you set this property, Gradle no longer uses PATH to find CMake.
        cmake.dir="path-to-cmake"
        
  4. Jika belum menginstal sistem build Ninja di workstation Anda, buka situs web Ninja resmi, lalu download dan instal versi Ninja terbaru yang tersedia untuk OS Anda. Pastikan juga untuk menambahkan lokasi penginstalan Ninja ke variabel lingkungan PATH Anda.

Membuat project baru dengan dukungan C/C++

Membuat project baru dengan dukungan untuk kode native mirip dengan membuat project Android Studio lainnya, tetapi ada langkah tambahan:
  1. Di bagian Choose your project di wizard, pilih jenis project Native C++.
  2. Klik Next.
  3. Lengkapi semua bidang lainnya di bagian wizard berikutnya.
  4. Klik Next.
  5. Di bagian Customize C++ Support di wizard, Anda dapat menyesuaikan project dengan bidang C++ Standard. Gunakan menu drop-down untuk memilih standardisasi C++ yang ingin Anda gunakan. Memilih Toolchain Default berarti menggunakan setelan CMake default.
  6. Klik Finish.
Setelah Android Studio menyelesaikan pembuatan project baru, buka panel Project dari sisi kiri IDE, lalau pilih tampilan Android. Seperti ditunjukkan dalam gambar 2, Android Studio akan menambahkan grup cpp:
Gambar 2. Grup tampilan Android untuk sumber native dan skrip build eksternal.
Catatan: Tampilan ini tidak mencerminkan hierarki file sesungguhnya di disk, melainkan mengelompokkan file yang serupa untuk menyederhanakan navigasi project Anda.
Grup cpp adalah tempat Anda dapat menemukan semua file sumber native, header, skrip build untuk CMake atau ndk-build, dan library bawaan yang merupakan bagian dari project Anda. Untuk project baru, Android Studio akan membuat contoh file sumber C++, native-lib.cpp, dan menempatkannya dalam direktori src/main/cpp/ pada modul aplikasi Anda. Kode sampel tersebut menyediakan fungsi C++ sederhana, stringFromJNI(), yang menampilkan string "Hello from C++". Anda dapat mempelajari cara menambahkan file sumber tambahan ke project di bagian tentang cara Membuat file sumber native baru.
Mirip dengan cara file build.gradle memberi tahu Gradle mengenai cara mem-build aplikasi Anda, 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 dalam direktori utama modul Anda. Untuk mempelajari konten skrip build ini selengkapnya, baca Mengonfigurasi CMake.

Mem-build dan menjalankan aplikasi contoh

Jika Anda mengklik Run jalankan kemudian jalankan aplikasi dari panel menu, Android Studio akan mem-build dan meluncurkan aplikasi yang menampilkan teks “Hello from C++” pada perangkat Android atau emulator Anda. Ringkasan berikut menjelaskan peristiwa yang berlangsung untuk mem-build 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, ke library objek bersama dan menamainya libnative-lib.so, yang kemudian dipaketkan Gradle ke APK.
  3. Selama waktu proses, MainActivity aplikasi akan memuat library native menggunakanSystem.loadLibrary(). Fungsi native library, stringFromJNI(), kini tersedia untuk aplikasi.
  4. MainActivity.onCreate() memanggil stringFromJNI(), yang menampilkan “Hello from C++”, dan menggunakannya untuk mengupdate TextView.
Catatan: Instant Run tidak kompatibel dengan komponen project Anda yang ditulis dalam kode native.
Jika Anda ingin memverifikasi apakah Gradle memaketkan library native dalam APK, Anda dapat menggunakan Penganalisis APK:
  1. Pilih Build > Build Bundles(s) / APK(s) > Build APK(s)
  2. Pilih Build > Analyze APK.
  3. Pilih APK dari direktori app/build/outputs/apk/, lalu klik OK.
  4. Seperti ditunjukkan dalam gambar 3, Anda dapat melihat libnative-lib.so di jendela Penganalisis APK di bawah lib/<ABI>/.
    Gambar 3. Menemukan library native menggunakan Penganalisis APK.
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/ di kumpulan sumber utama aplikasi, buat dengan mengikuti langkah berikut:
    1. Buka panel Project dari sisi kiri IDE, lalu pilih tampilan Project dari menu drop-down.
    2. Arahkan ke your-module > src, klik kanan pada direktori main, lalu pilih New > Directory.
    3. Masukkan cpp sebagai nama direktori, lalu klik OK.
  2. Klik kanan pada direktori cpp/, lalu pilih New > C/C++ Source File.
  3. Masukkan nama untuk file sumber Anda, misalnya native-lib.
  4. Dari menu drop-down Type, pilih ekstensi file untuk file sumber Anda, misalnya .cpp.
    • Anda dapat menambahkan jenis file lainnya ke menu drop-down, misalnya .cxx atau .hxx, dengan mengklik Edit File Type . Dalam kotak dialog C/C++ yang muncul, pilih ekstensi file lain dari menu drop-down Source Extension dan Header Extension, lalu klik OK.
  5. Jika Anda juga ingin membuat file header, centang kotak Create an associated header.
  6. Klik OK.
Setelah menambahkan file C/C++ baru ke project, Anda masih perlu mengonfigurasi CMake untuk menyertakannya di library native Anda.

Referensi lainnya

Untuk mempelajari kode C/C++ pendukung di aplikasi Anda selengkapnya, coba referensi berikut.

Codelab


Was this page helpful?

sumber: https://developer.android.com/studio/projects/add-native-code

Komentar

Postingan Populer