cuốn sách gpt4 ai đã làm

Android - JNI 指南

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 11:41:36 28 4
mua khóa gpt4 Nike

Tôi muốn kết hợp một trình phân tích cú pháp dựa trên C nhỏ gọn và tiện dụng vào dự án Android của mình. Trước đây tôi đã thực hiện lập trình JNI nhưng chưa thực hiện bất kỳ loại phát triển gốc (C) nào trên Android. Kế hoạch của tôi là biên dịch lib C thành SO và tạo một trình bao bọc JNI xung quanh nó mà tôi sẽ sử dụng trong ứng dụng của mình. Đây có phải là cách điều này có thể/nên được thực hiện? Câu hỏi thứ hai và quan trọng nhất - làm cách nào để đưa .so vào APK của tôi? Nó sẽ đi đâu?

câu trả lời hay nhất

Nó phụ thuộc vào lượng dữ liệu bạn truyền và tần suất tôi thực sự nghi ngờ Java/JNI/C sẽ hoạt động nhanh hơn so với việc triển khai Java nguyên gốc.

Việc chuyển bất kỳ thứ gì khác ngoài "Java Int" sang "C long" đều gọi các quy trình chuyển đổi dữ liệu JNI, không hề nhỏ gọn.

Vì vậy, trừ khi thói quen JNI của bạn tuân theo mẫu:

  • Truyền một lượng nhỏ dữ liệu.
  • Thực hiện rất nhiều công việc trong C.
  • Trả về một tập kết quả nhỏ.

Bạn sẽ chậm hơn nhiều so với việc triển khai java gốc. Nếu bạn sử dụng các kiểu dữ liệu "C" "gốc" cơ bản (int, char, String), như các phép toán java (+, -, *, ==, >) và tránh các thư viện ưa thích, Java có thể hoạt động nhanh gần như C.

Vấn đề còn lại với hiệu năng Java là thời gian cần thiết để khởi động JVM và khiến mọi thứ chạy bình thường, nhưng khi bạn bắt đầu với một chương trình Java thì đây không phải là vấn đề.

Một lý do khác khiến hiệu suất Java "chậm" là do mọi người khăng khăng sử dụng các nhà máy, vùng chứa, hạt xml không cần thiết, v.v. trong khi các phương thức đơn giản, thông thường sẽ hoạt động tốt hơn.

Về Android - Hướng dẫn JNI, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1541884/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress