Android ndk là gì

Share:

Chào hầu như bạn, bài viết này bản thân đã share phương pháp để Kotlin làm việc cùng rất Android NDK dành riêng cho hầu như chúng ta bắt đầu bước đầu. Hãy cùng tò mò nhé!

Android NDK

Native sầu Development Kit (NDK) là một trong cỗ phương tiện đỡ đần ta áp dụng code C/C++ vào Android, cung cấp các thư viện giúp bạn cũng có thể áp dụng nhằm làm chủ các hoạt động của sản phẩm, truy tìm nhập vào các phần tử đồ vật lý của máy như các cảm biến sensors, screen chạm màn hình, ...

Bạn đang đọc: Android ndk là gì

CMake, JNI là gì?

CMake, JNI(Java Native Interface) đã cách xử lý những công việc liên quan mang đến hệ trọng giữa native code cùng Java. Nó là 1 trong những cầu nối thân Java, áp dụng cùng các thư viện được viết sống những ngữ điệu không giống nhau.

Vì sao ta đề xuất áp dụng NDK?

Thực tế ta đã biết các ngữ điệu được viết bởi C/C++ bao gồm vận tốc chạy rất cao, nhờ vào đó giúp cho tốc độ của vận dụng được cải thiện đáng kể.

Xem thêm: Rubik 4X4 Và Các Trường Hợp Đặc Biệt Của Rubik 4X4X4, Rubik 4ࡪ: Solution

Việc áp dụng NDK giúp nâng cấp được hiệu năng của vận dụng phụ thuộc 3 nguyên nhân sau:

Navite code được biên dịch thẳng ra binary code cùng chạy trực tiếp bên trên OS, trong lúc đó Java code sẽ tiến hành đưa thành Java byte-code và chạy trên thứ ảo Java (JVM)Native sầu code chất nhận được developer rất có thể áp dụng một số trong những các tài năng của bộ xử lý trong những lúc Android SDK thì không thểcũng có thể để nâng cấp những đoạn mã ở tầm mức assemblyRất nhiều các thư viện ví như ffmpeg được viết bởi ngôn ngữ C/C++, cùng ta rất có thể áp dụng thư viện này dựa vào NDKBắt đầu nào

Ở bài viết này bản thân vẫn lí giải chúng ta liên kết áp dụng của mình cùng với NDK thực hiện jni, nghỉ ngơi lớp C vẫn viết 1 hàm trả về 1 đoạn string, và ta đã Call hàm kia với mang ra đoạn string trả về trường đoản cú lớp Java.

Tạo 1 thư mục là jni phía bên trong src/main
*
Trong thư mục jni sản xuất 1 tệp tin Android.mk cùng với nội dung như sau:

LOCAL_PATH := $(điện thoại tư vấn my-dir)include $(CLEAR_VARS)LOCAL_MODULE := keysLOCAL_SRC_FILES := keys.cinclude $(BUILD_SHARED_LIBRARY)LOCAL_MODULE = “keys” là tên gọi bạn muốn sử dụng nhằm truy nã nhập từ Java codeLOCAL_SRC_FILES = “keys.c” là file native code chứa mã mối cung cấp cơ mà bạn sẽ viết.Tạo file Application.mk bên phía trong folder jni với nội dung sau:APP_ABI := allTạo C/C++ file "keys.c" vào thư mục jni cùng với ngôn từ sau:#include JNIEXPORT jstring JNICALLJava_com_hungnt_helloapplication_MainActivity_getStringHello(JNIEnv *env, jobject instance) return (*env)-> NewStringUTF(env, "Hello from nativeLib");Java_com_hungnt_helloapplication_MainActivity_getStringHello Thể hiện tại đoạn Java code với package name là com.hungnt.helloapplication cùng với Activity là MainActivity là vị trí đang hotline hàm native sầu này cùng với tên static method là getStringHello

Cây tlỗi mục đang nlỗi sau:
*
Ở phía bên trong Activity MainActivity ta sẽ tạo nên một static blochồng và để load thỏng viện và declare những vừa viết trong tệp tin C/C++Nếu áp dụng Java ta đang viết nhỏng sau:

static System.loadLibrary("keys"); public native sầu String getStringHello();Với Kotlin init System.loadLibrary("keys") external fun getStringHello(): StringGiờ ta có thể hotline được rồi kia, ví dụ ta vẫn hiển thị ra log:Log.d("Debug", "Result: " + getStringHello())Bước sau cuối, ta bắt buộc tiếp tế file gradle để rất có thể build được ứng dụng qua NDKgame android ..... buildTypes ..... externalNativeBuild ndkBuild path "src/main/jni/Android.mk" Giờ ta hãy sync vào build lại project và chạy thử thôi làm sao, hãy chắc chắn là rằng những tệp tin của người sử dụng đặt đúng tên là đường truyền tới NDK là đúng trong các module settings nhé!Chúc chúng ta thành công!

Tđắm đuối khảo: https://proandroiddev.com/android-ndk-interaction-of-kotlin-and-c-c-5e19e35bac74

Bài viết liên quan