在Android中从Java调用C++库

Call C++ library from Java in Android

本文关键字:C++ 调用 Java Android 中从      更新时间:2023-10-16

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

我对Android编程没有任何经验(尽管有一些Java编程经验),但我仍然想知道这是否可能。考虑到大量优秀的C++库,如果不能从Android应用程序调用C++库,我会感到惊讶。

您需要编写一个Java本机接口(JNI),以便能够从Android Java代码中调用本机(c/c++)库
层次结构如下:

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

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

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

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

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

可以。正如前面的海报所提到的,您使用NDK构建C++库,并使用JNI从Java 调用它

如果你计划让几个C++类可以访问,你可以使用SWIG为你的自动生成JNI层

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

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