Android Ndk Là Gì

     

Chào hồ hết người, nội dung bài viết này mình sẽ phân tách sẻ cách để Kotlin thao tác làm việc cùng với android NDK dành cho những các bạn mới bắt đầu. Hãy cùng khám phá nhé!

Android NDK

Native Development Kit (NDK) là một trong bộ dụng cụ giúp ta áp dụng code C/C++ trong Android, cung cấp các tủ sách giúp bạn cũng có thể sử dụng để quản lý các hoạt động vui chơi của thiết bị, truy vấn nhập vào các bộ phận vật lý của máy như các cảm ứng sensors, màn hình cảm ứng, ...Bạn vẫn xem: android ndk là gì

CMake, JNI là gì?

CMake, JNI(Java Native Interface) sẽ cách xử lý các các bước liên quan đến tương tác giữa native code cùng Java. Nó là 1 cầu nối giữa Java, áp dụng và các thư viện được viết ở những ngôn ngữ không giống nhau.

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

Ở bài viết này mình đã hướng dẫn các bạn liên kết ứng dụng của bản thân với NDK sử dụng jni, sinh hoạt lớp C vẫn viết 1 hàm trả về 1 đoạn string, và ta sẽ gọi hàm đó và kéo ra đoạn string trả về từ lớp Java.

Tạo 1 folder là jni bên trong src/main


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

*



Xem thêm: 3 Cách Khắc Phục Tóc Nhuộm Không Đều Màu Tóc Nhuộm Quá Sáng Đơn Giản Tại Nhà

Trong thư mục jni sản xuất 1 tệp tin Android.mk với câu chữ như sau:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := keysLOCAL_SRC_FILES := keys.cinclude $(BUILD_SHARED_LIBRARY)LOCAL_MODULE = “keys” là tên bạn có nhu cầu sử dụng để truy nhập từ Java codeLOCAL_SRC_FILES = “keys.c” là tệp tin native code chứa mã mối cung cấp mà các bạn sẽ viết.Tạo tệp tin Application.mk bên trong folder jni với nội dung sau:APP_ABI := allTạo C/C++ file "keys.c" trong folder jni với nội dung 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 diễn đạt đoạn Java code cùng với package name là com.hungnt.helloapplication với Activity là MainActivity là chỗ sẽ call hàm native này với tên static method là getStringHello

Cây thư mục đã như sau:


Xem thêm: Hướng Dẫn Cách Kiểm Tra Tài Khoản Atm Trên Điện Thoại, Cách Kiểm Tra Tài Khoản Trên Điện Thoại

*

Ở bên phía trong Activity MainActivity ta sẽ tạo nên một static block cùng để load thư viện với declare các vừa viết trong tệp tin C/C++Nếu áp dụng Java ta vẫn viết như sau:

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

Tham khảo: https://proandroiddev.com/android-ndk-interaction-of-kotlin-and-c-c-5e19e35bac74