2012-01-25 33 views
12

Có thể gọi thư viện C++ từ ứng dụng Android không? Nếu có, làm thế nào?Gọi thư viện C++ từ Java trong Android

Tôi chưa có kinh nghiệm về lập trình Android (một số trải nghiệm lập trình Java) nhưng tôi vẫn muốn biết nếu điều này là có thể. Với số lượng lớn các thư viện C++ trên mạng, tôi sẽ ngạc nhiên nếu nó không thể gọi một thư viện C++ từ một ứng dụng Android.

Trả lời

7

Có, đó là khả thi. Bạn cần phải xây dựng thư viện C++ của bạn bằng cách sử dụng NDK của Android. Liên kết mới https://developer.android.com/ndk/index.html

+3

Điều gì sẽ xảy ra nếu thư viện C++ của tôi là thư viện chỉ dành cho tiêu đề? (nghĩa là không có gì để xây dựng)? – Ela782

11

Bạn cần viết giao diện Java Native (JNI) để có thể gọi các thư viện gốc (c/C++) từ mã Java Android.
Các hệ thống cấp bậc giống như:

+++++++++++++++++++++++++++++++++++   
|  Android Application   |   
+++++++++++++++++++++++++++++++++++   


+++++++++++++++++++++++++++++++++++ 
| Android Application Framework | 
+++++++++++++++++++++++++++++++++++ 


+++++++++++++++++++++++++++++++++++  
|  Java Native Interface  | 
+++++++++++++++++++++++++++++++++++ 


+++++++++++++++++++++++++++++++++++ 
|  C/C++ Native Libraries  | 
+++++++++++++++++++++++++++++++++++ 
1

Có thể. Như poster trước đó đề cập bạn xây dựng C++ thư viện sử dụng NDK và sử dụng JNI để gọi nó từ Java

Nếu bạn đang lập kế hoạch để thực hiện một số lớp học C++ truy cập, bạn có thể sử dụng SWIG để tự động tạo ra các lớp JNI cho bạn

http://www.swig.org/index.php