Android Ndk Là Gì

  -  

Chào đầy đủ người, nội dung bài viết này bản thân sẽ chia sẻ cách để Kotlin làm việc cùng với game android NDK dành cho những chúng ta mới bắt đầu. Hãy cùng tò mò nhé!

Android NDK

Native Development Kit (NDK) là 1 trong những bộ cách thức giúp ta thực hiện code C/C++ vào Android, cung ứng các tủ sách giúp bạn có thể sử dụng để thống trị các hoạt động vui chơi của thiết bị, truy tìm nhập vào các bộ phận vật lý của sản phẩm như các cảm ứng sensors, screen cảm ứng, ...

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

CMake, JNI là gì?

CMake, JNI(Java Native Interface) sẽ xử lý các công việc liên quan tiền đến liên tưởng giữa native code và 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 áp dụng NDK?

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

Xem thêm: New 40+ Trò Chơi Trong Tiệc Tất Niên Cuối Năm Công Ty, 9 Ý Tưởng Trò Chơi Year End Party Độc Đáo



Xem thêm: Những Game Online Hay Trên Pc Hay Và Đáng Chơi Nhất 2021, Trò Chơi Miễn Phí Hàng Đầu

Việc áp dụng NDK giúp nâng cấp được tính năng của ứng dụng phụ thuộc vào 3 tại sao sau:

Navite code được biên dịch trực tiếp ra binary code với chạy trực tiếp bên 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 có thể chấp nhận được developer có thể sử dụng một số các tính năng của bộ xử lý trong khi Android SDK thì ko thểCó thể để nâng cao các đoạn mã ở tại mức assemblyRất nhiều các thư viện ví như ffmpeg được viết bằng ngữ điệu C/C++, và ta có thể sử dụng thư viện này phụ thuộc NDKBắt đầu nào

Ở nội dung bài viết này mình sẽ hướng dẫn chúng ta liên kết ứng dụng của bản thân mình với NDK thực hiện jni, làm việc lớp C sẽ viết 1 hàm trả về 1 đoạn string, và ta sẽ điện thoại tư vấn hàm kia và mang ra đoạn string trả về tự lớp Java.

Tạo 1 thư mục là jni phía bên trong src/main
*
Trong folder jni chế tạo 1 file Android.mk với nội dung 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 muốn sử dụng để truy nhập từ bỏ Java codeLOCAL_SRC_FILES = “keys.c” là tệp tin native code đựng mã nguồn mà bạn sẽ viết.Tạo tệp tin Application.mk phía bên trong folder jni với câu chữ sau:APP_ABI := allTạo C/C++ file "keys.c" trong folder jni 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 miêu tả đoạn Java code với package name là com.hungnt.helloapplication với Activity là MainActivity là nơi sẽ hotline hàm native này với tên static method là getStringHello

Cây thư mục sẽ như sau:
*
Ở bên phía trong Activity MainActivity ta sẽ tạo một static block và để load thư viện cùng declare các vừa viết trong file C/C++Nếu thực hiện Java ta đang viết như sau:

static System.loadLibrary("keys"); public native String getStringHello();Với Kotlin init System.loadLibrary("keys") external fun getStringHello(): StringGiờ ta hoàn toàn có thể gọi được rồi đó, lấy ví dụ ta đã hiển thị ra log:Log.d("Debug", "Result: " + getStringHello())Bước cuối cùng, ta buộc phải thêm vào file gradle để có thể build được app qua NDKandroid ..... BuildTypes ..... externalNativeBuild ndkBuild path "src/main/jni/Android.mk" Giờ ta hãy sync vào build lại project và test thôi nào, hãy chắc hẳn rằng rằng những file của công ty đặ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!

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