ndk-build

Skrip ndk-build membuat project yang menggunakan sistem build berbasis Make NDK. Tersedia dokumentasi yang lebih spesifik untuk konfigurasi Android.mk dan Application.mk yang digunakan oleh ndk-build.

Internal

Menjalankan skrip ndk-build setara dengan menjalankan perintah berikut:

    $GNUMAKE -f <ndk>/build/core/build-local.mk
    <parameters>
    

$GNUMAKE mengarah ke GNU Make 3.81 atau yang lebih baru, dan <ndk> mengarah ke direktori penginstalan NDK Anda. Anda dapat menggunakan informasi ini untuk memanggil ndk-build dari skrip shell lain, atau bahkan membuat file Anda sendiri.

Memanggil dari Command Line

Skrip ndk-build berada di direktori penginstalan NDK level teratas. Untuk menjalankannya dari command line, panggil skrip ini selagi berada di atau dalam direktori project aplikasi Anda. Contoh:

    $ cd <project>
    $ <ndk>/ndk-build
    

Dalam contoh ini, <project> mengarah ke direktori utama project Anda, dan <ndk> adalah direktori tempat Anda menginstal NDK.

Opsi

Semua parameter ke ndk-build diteruskan langsung ke perintah GNU make sumber yang menjalankan skrip build NDK. Gabungkan ndk-build dan opsi dalam format ndk-build <option>. Contoh:

    $ ndk-build clean
    

Opsi berikut tersedia:

clean
Menghapus biner yang dibuat sebelumnya.

Catatan: Di Mac OS X, menjalankan ndk-build clean dengan banyak eksekusi paralel dapat menghasilkan error build yang mencakup pesan berikut:

    rm: fts_read: No such file or directory
    

Untuk menghindari masalah ini, pertimbangkan untuk tidak menggunakan modifier -jN atau memilih nilai yang lebih kecil untuk N, seperti 2.

V=1
Meluncurkan build dan menampilkan perintah build.
-B
Memaksa rebuild lengkap.
-B V=1
Memaksa rebuild lengkap, dan menampilkan perintah build.
NDK_LOG=1
Menampilkan pesan log NDK internal (yang digunakan untuk men-debug NDK itu sendiri).
NDK_DEBUG=1
Memaksa build yang dapat di-debug (lihat tabel 1).
NDK_DEBUG=0
Memaksa build rilis (lihat tabel 1).
NDK_HOST_32BIT=1
Selalu menggunakan toolchain dalam mode 32 bit (lihat Toolchain 64 bit dan 32 bit).
NDK_APPLICATION_MK=<file>
Membuat project, menggunakan file Application.mk spesifik yang ditunjuk oleh variabel NDK_APPLICATION_MK.
-C <project>
Membuat kode native untuk jalur project yang terletak di <project>. Berguna jika Anda tidak ingin melakukan cd di terminal Anda.

Build Debug vs build Rilis

Gunakan opsi NDK_DEBUG dan, dalam kasus tertentu, AndroidManifest.xml untuk menentukan build debug atau build rilis, perilaku terkait pengoptimalan, dan penyertaan simbol. Tabel 1 menunjukkan hasil dari setiap kombinasi setelan yang mungkin.

Tabel 1. Hasil dari kombinasi NDK_DEBUG (command line) dan android:debuggable (manifes).

Setelan ManifesNDK_DEBUG=0NDK_DEBUG=1NDK_DEBUG tidak ditetapkan
android:debuggable="true" Debug; Simbol; Dioptimalkan*1Debug; Simbol; Tidak dioptimalkan*2(sama dengan NDK_DEBUG=1)
android:debuggable="false"Rilis; Simbol; DioptimalkanRilis; Simbol; Tidak dioptimalkanRilis; Tanpa simbol; Dioptimalkan*3

*1: Berguna untuk membuat profil.
*2: Default untuk menjalankan ndk-gdb.
*3: Mode default.

Catatan: NDK_DEBUG=0 setara dengan APP_OPTIM=release, dan menjalankan kompilasi dengan -O2. NDK_DEBUG=1 setara dengan APP_OPTIM=debug dalam Application.mk, dan menjalankan kompilasi dengan -O0. Untuk informasi selengkapnya tentang APP_OPTIM, lihat Application.mk.

Sintaks pada command line, misalnya:

    $ ndk-build NDK_DEBUG=1
    

Toolchain 64-Bit dan 32-Bit

Beberapa toolchain disertai dengan versi 64 bit dan 32 bit. Misalnya, direktori <ndk>/toolchain/<name>/prebuilt/ dan <ndk>/prebuilt/ dapat memuat folder linux-x86 sekaligus linux-x86_64 untuk alat Linux dalam mode, berturut-turut, 32 bit dan 64 bit. Skrip ndk-build otomatis memilih versi toolchain 64 bit jika OS host mendukungnya. Anda dapat memaksakan penggunaan toolchain 32 bit menggunakan NDK_HOST_32BIT=1 baik di lingkungan Anda atau di command line ndk-build.

Perhatikan bahwa alat 64 bit lebih baik dalam menggunakan resource host (misalnya, alat ini lebih cepat dan mampu menangani program yang lebih besar), dan tetap dapat menghasilkan biner 32 bit untuk Android.

Persyaratan

Anda memerlukan GNU Make 3.81 atau yang lebih baru untuk menggunakan ndk-build atau NDK secara umum. Skrip build akan mendeteksi alat yang tidak sesuai dengan Make, dan menghasilkan pesan error.

Jika Anda telah menginstal GNU Make 3.81, tetapi perintah make default tidak menjalankannya, tentukan GNUMAKE di lingkungan Anda agar mengarah ke sana sebelum menjalankan ndk-build. Misalnya:

    $ export GNUMAKE=/usr/local/bin/gmake
    $ ndk-build
    

Anda dapat mengganti alat bawaan host lainnya di $NDK/prebuilt/<OS>/bin/ dengan variabel lingkungan berikut:

    $ export NDK_HOST_AWK=<path-to-awk>
    $ export NDK_HOST_ECHO=<path-to-echo>
    $ export NDK_HOST_CMP=<path-to-cmp>