Android ndk là gì

Chào đa số người, nội dung bài viết này mình vẫn chia sẻ phương pháp để Kotlin thao tác cùng rất Android NDK dành riêng cho mọi các bạn mới bước đầu. Hãy cùng khám phá nhé!

Android NDK

Native Development Kit (NDK) là 1 trong những cỗ nguyên lý giúp ta sử dụng code C/C++ trong Android, cung cấp các thỏng viện giúp chúng ta có thể áp dụng nhằm quản lý những buổi giao lưu của sản phẩm, truy nhtràn vào các phần tử đồ dùng lý của dòng sản phẩm nlỗi những cảm biến sensors, màn hình hiển thị chạm màn hình, ...

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

CMake, JNI là gì?

CMake, JNI(Java Native Interface) sẽ xử trí các công việc liên quan mang đến liên hệ thân native sầu code cùng Java. Nó là 1 trong những cầu nối thân Java, ứng dụng cùng các tlỗi viện được viết ngơi nghỉ các ngữ điệu khác nhau.

Vì sao ta nên sử dụng NDK?

Thực tế ta đang biết các ngôn từ được viết bằng C/C++ tất cả tốc độ chạy rất cao, dựa vào kia giúp cho tốc độ của ứng dụng được nâng cấp đáng kể.

Xem thêm: Tìm Việc 365: Hbr Là Gì - Những Điều Có Thể Bạn Chưa Biết Về Hbr



Xem thêm: Hack Game Nhập Vai Online - Hack Archer'S Tale (Mod Money)

Việc áp dụng NDK giúp cải thiện được hiệu năng của ứng dụng dựa vào 3 nguyên nhân sau:

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

Ở bài viết này mình đã giải đáp chúng ta links áp dụng của chính mình với NDK áp dụng jni, sinh hoạt lớp C đã viết 1 hàm trả về 1 đoạn string, và ta đã Call hàm kia và 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 folder jni tạo nên 1 file Android.mk cùng với nội dung nhỏng 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 gọi bạn muốn sử dụng nhằm truy tìm nhập từ Java codeLOCAL_SRC_FILES = “keys.c” là tệp tin native sầu code đựng mã nguồn nhưng mà bạn sẽ viết.Tạo tệp tin Application.mk bên phía trong folder jni với nội dung sau:APP_ABI := allTạo C/C++ tệp tin "keys.c" trong thư mục jni cùng 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 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í sẽ Hotline hàm native này cùng với tên static method là getStringHello

Cây thư mục sẽ nlỗi sau:
*
Tại phía bên trong Activity MainActivity ta sẽ tạo nên một static blochồng cùng để load thỏng viện cùng declare những vừa viết trong tệp tin C/C++Nếu áp dụng Java ta đang viết nlỗi 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 đã hiển thị ra log:Log.d("Debug", "Result: " + getStringHello())Cách sau cùng, ta yêu cầu tiếp tế file gradle nhằm có thể build được app qua NDKgame android ..... buildTypes ..... externalNativeBuild ndkBuild path "src/main/jni/Android.mk" Giờ ta hãy sync vào build lại project với chạy thử thôi làm sao, hãy chắc chắn rằng rằng các file của bạn đặt đúng tên là băng thông cho tới NDK là đúng trong module settings nhé!Chúc các bạn thành công!

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


Chuyên mục: Công Nghệ