Tập lệnh ndk-build

Tập lệnh ndk-build tạo dự án dùng hệ thống xây dựng dựa trên Make của NDK. Chúng tôi có tài liệu cụ thể hơn cho cấu hình Android.mkApplication.mkndk-build sử dụng.

Nội bộ

Việc chạy tập lệnh ndk-build tương đương với chạy lệnh sau:

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

$GNUMAKE trỏ đến GNU Make 3.81 trở lên và <ndk> trỏ tới thư mục cài đặt NDK. Bạn có thể sử dụng thông tin này để gọi ndk-build từ các tập lệnh shell khác hoặc thậm chí là tệp tạo (make) của riêng bạn.

Gọi từ dòng lệnh

Tập lệnh ndk-build nằm trong thư mục cài đặt NDK cấp cao nhất. Để chạy tập lệnh đó từ dòng lệnh, hãy gọi tập lệnh khi đang ở trong thư mục dự án ứng dụng. Ví dụ:

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

Trong ví dụ này, <project> trỏ đến thư mục gốc của dự án, còn <ndk> là thư mục mà bạn đã cài đặt NDK.

Tuỳ chọn

Tất cả tham số gửi đến ndk-build sẽ được truyền trực tiếp đến lệnh make GNU cơ bản chạy các tập lệnh bản dựng NDK. Kết hợp ndk-build và các tuỳ chọn trong biểu mẫu ndk-build <option>. Ví dụ:

$ ndk-build clean

Hiện có các tuỳ chọn sau:

clean
Xoá mọi tệp nhị phân đã tạo trước đó.

Lưu ý: Trên Mac OS X, việc chạy ndk-build cleansố lượt thực thi song song ở mức cao có thể dẫn đến lỗi bản dựng bao gồm thông báo sau:

rm: fts_read: No such file or directory

Để tránh vấn đề này, hãy cân nhắc không sử dụng công cụ sửa đổi -jN hoặc chọn một giá trị nhỏ hơn cho N, chẳng hạn như 2.

V=1
Chạy bản dựng và hiển thị lệnh tạo.
-B
Buộc tạo lại toàn bộ.
-B V=1
Buộc tạo lại toàn bộ và hiển thị lệnh tạo.
NDK_LOG=1
Hiển thị thông điệp nhật ký NDK nội bộ (dùng để gỡ lỗi cho chính NDK).
NDK_DEBUG=1
Buộc một bản dựng có thể gỡ lỗi (xem bảng 1).
NDK_DEBUG=0
Buộc một bản phát hành (xem bảng 1).
NDK_HOST_32BIT=1
Luôn sử dụng chuỗi công cụ ở chế độ 32 bit.
NDK_APPLICATION_MK=<file>
Tạo bằng cách sử dụng một tệp Application.mk cụ thể được biến NDK_APPLICATION_MK trỏ đến.
-C <project>
Tạo mã gốc cho đường dẫn dự án tại <project>. Hữu ích nếu bạn không muốn cd sang vị trí đó trong thiết bị đầu cuối của mình.

Bản dựng có thể gỡ lỗi và bản phát hành

Sử dụng tuỳ chọn NDK_DEBUGAndroidManifest.xml trong một số trường hợp nhất định để chỉ định bản gỡ lỗi hoặc bản phát hành, hành vi liên quan đến tối ưu hoá và thêm ký hiệu. Bảng 1 cho thấy kết quả của mỗi tổ hợp chế độ cài đặt có thể áp dụng.

Bảng 1. Kết quả cho tổ hợp NDK_DEBUG (dòng lệnh) và android:debuggable (tệp kê khai).

Cài đặt tệp kê khaiNDK_DEBUG=0 NDK_DEBUG=1NDK_DEBUG chưa được chỉ định
android:debuggable="true" Gỡ lỗi; Ký hiệu; Được tối ưu hoá*1 Gỡ lỗi; Ký hiệu; Không được tối ưu hoá*2 (tương tự như NDK_DEBUG=1)
android:debuggable="false"Bản phát hành; Ký hiệu; Được tối ưu hoá Bản phát hành; Ký hiệu; Không được tối ưu hoáBản phát hành; Không có ký hiệu; Được tối ưu hoá*3
*1: Hữu ích khi lập cấu hình.
*2: Mặc định để chạy ndk-gdb.
*3: Chế độ mặc định.

Lưu ý: `NDK_DEBUG=0` là giá trị tương đương của `APP_OPTIM=release` và biên dịch bằng `-O2`. `NDK_DEBUG=1` là giá trị tương đương của `APP_OPTIM=debug` trong `Application.mk` và biên dịch bằng `-O0`. Để biết thêm thông tin về `APP_OPTIM`, hãy xem Application.mk.

Ví dụ về cú pháp trên dòng lệnh như sau:

$ ndk-build NDK_DEBUG=1

Yêu cầu

Bạn cần GNU Make 4 để sử dụng ndk-build hoặc NDK nói chung. NDK đi kèm bản sao GNU Make riêng và sẽ sử dụng bản sao đó trừ khi bạn đã đặt biến môi trường $GNUMAKE để trỏ đến một công cụ tạo (make) không phù hợp.

Cơ sở dữ liệu biên dịch JSON

Trong NDK r18 trở lên, ndk-build có thể tạo cơ sở dữ liệu biên dịch JSON.

Bạn có thể sử dụng ndk-build compile_commands.json để tạo cơ sở dữ liệu mà không cần tạo mã hoặc sử dụng ndk-build GEN_COMPILE_COMMANDS_DB=true nếu muốn xây dựng và tạo cơ sở dữ liệu dưới dạng hiệu ứng phụ.