Mẹo nhỏ: Để tìm kiếm chính xác các bài viết của Vuihecungchocopie.vn, hãy search trên Google với cú pháp: "Từ khóa" + "vuihecungchocopie". (Ví dụ: công thức giải rubik 3x3 vuihecungchocopie). Tìm kiếm ngay
215 lượt xem

Android NDK: Giới thiệu và hướng dẫn sử dụng Kotlin với C/C++

Bạn đang quan tâm đến Android NDK: Giới thiệu và hướng dẫn sử dụng Kotlin với C/C++ phải không? Nào hãy cùng Vuihecungchocopie đón xem bài viết này ngay sau đây nhé, vì nó vô cùng thú vị và hay đấy!

XEM VIDEO Android NDK: Giới thiệu và hướng dẫn sử dụng Kotlin với C/C++ tại đây.

Chào mọi người, bài viết này mình sẽ chia sẻ cách để Kotlin làm việc cùng với Android NDK dành cho những bạn mới bắt đầu. Hãy cùng tìm hiểu nhé!

Android NDK

Native Development Kit (NDK) là một bộ công cụ giúp ta sử dụng code C/C++ trong Android, cung cấp các thư viện giúp chúng ta có thể sử dụng để quản lý các hoạt động của thiết bị, truy nhập vào các bộ phận vật lý của máy như các cảm biến sensors, màn hình cảm ứng, …

CMake, JNI là gì?

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

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

Thực tế ta đã biết các ngôn ngữ được viết bằng C/C++ có tốc độ chạy rất cao, nhờ đó giúp cho tốc độ của ứng dụng được cải thiện đáng kể. Việc sử dụng NDK giúp cải thiện được hiệu năng của ứng dụng nhờ vào 3 lý do sau:

  1. 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 khi đó Java code sẽ được chuyển thành Java byte-code và chạy trên máy ảo Java (JVM)
  2. Native code cho phép 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ì không thể
  3. Có thể để cải thiện các đoạn mã ở mức assembly
  4. Rất nhiều các thư viện ví dụ như ffmpeg được viết bằng ngôn ngữ C/C++, và ta có thể sử dụng thư viện này nhờ vào NDK
XEM THÊM:  hr là viết tắt của từ gì

Bắt đầu nào

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

  1. Tạo 1 folder là jni bên trong src/main 1ab4797f 4811 46f0 a9be 4a7c83e41000
  2. Trong folder jni tạo 1 file vuihecungchocopie.vn với nội dung như sau:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := keys LOCAL_SRC_FILES := keys.c include $(BUILD_SHARED_LIBRARY)

  • LOCAL_MODULE = “keys” là tên bạn muốn sử dụng để truy nhập từ Java code
  • LOCAL_SRC_FILES = “keys.c” là file native code chứa mã nguồn mà bạn sẽ viết.
  1. Tạo file vuihecungchocopie.vn bên trong folder jni với nội dung sau:

APP_ABI := all

  1. Tạo C/C++ file “keys.c” trong folder jni với nội dung sau:

#include <jni.h> JNIEXPORT jstring JNICALL Java_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 đoạn Java code với package name là vuihecungchocopie.vnoapplication với Activity là MainActivity là nơi sẽ gọi hàm native này với tên static method là getStringHello

  • Cây thư mục sẽ như sau: 1ab4797f 4811 46f0 a9be 4a7c83e41000
  1. Ở bên trong Activity MainActivity ta sẽ tạo một static block và để load thư viện và declare các vừa viết trong file C/C++
  • Nếu sử dụng Java ta sẽ viết như sau:

static { vuihecungchocopie.vnLibrary(“keys”); } public native String getStringHello();

  • Với Kotlin

init { vuihecungchocopie.vnLibrary(“keys”) } external fun getStringHello(): String

  1. Giờ ta có thể gọi được rồi đó, ví dụ ta sẽ hiển thị ra log:

Log.d(“Debug”, “Result: ” + getStringHello())

  1. Bước cuối cùng, ta cần thêm vào file gradle để có thể build được app qua NDK
XEM THÊM:  Vải phi là gì và những điều cần biết về vải phi – in Đăng Quang

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 nào, hãy chắc chắn rằng các file của bạn đặt đúng tên là đường dẫn tới NDK là đúng trong module settings nhé! Chúc các bạn thành công!

Tham khảo: vuihecungchocopie.vn/android-ndk-interaction-of-kotlin-and-c-c-5e19e35bac74

Công khai: VUIHECUNGCHOCOPIE.VN là trang web Tổng hợp Ẩm Thực - Game hay và Thủ Thuật hàng đầu VN, thuộc Chocopie Vietnam. Mời thính giả đón xem.

Chúng tôi trân trọng cảm ơn quý độc giả luôn ủng hộ và tin tưởng!

Trả lời

Email của bạn sẽ không được hiển thị công khai.