在Android中从Java调用C ++库

时间:2012-01-25 18:00:20

标签: java android c++

是否可以从Android应用程序调用C ++库?如果是,怎么样?

我在Android编程方面没有经验(虽然有些Java编程经验),但我仍然想知道这是否可行。鉴于有很多优秀的C ++库,如果无法从Android应用程序调用C ++库,我会感到惊讶。

4 个答案:

答案 0 :(得分:11)

您需要编写Java Native Interface(JNI)才能从Android Java代码调用本机(c / c ++)库。
层次结构如下:

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


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


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


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

答案 1 :(得分:7)

是的,这是可能的。您需要使用Android NDK构建C ++库。 新链接https://developer.android.com/ndk/index.html

答案 2 :(得分:1)

是的,你可以。如前所述,您提到使用NDK构建C ++库并使用JNI从Java调用它

如果您计划访问多个C ++类,可以使用SWIG为您自动生成JNI层

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

答案 3 :(得分:0)

我不知道它在Android中是否完全相同,但这是一个很棒的教程,帮助我在纯Java中集成c ++ http://www.javaworld.com/javaworld/javatips/jw-javatip17.html