C++ library for android
C++ library for android
我使用SDK在Eclipse中编写了多个应用程序。我以前也曾与C 合作过。现在,我被要求安排将一些旧的C 代码包裹到Java库中,或者至少具有Java界面,以便其他Android程序员(不了解C )可以在其代码中使用它。
我已经看到了各种示例和讨论将C 代码制作到完整独立应用程序中的讨论,但从来没有库。
如果使用我的库的Android程序员甚至不需要知道或安装NDK本身,那就更好了。
有人可以确认我要做的事情甚至有可能。如果是这样,如何?
有一种方法可以用eclipse(adt):
您可以创建一个Android库项目,并拥有开发人员 将图书馆项目添加到他们的主要项目中。任何本地库 如果该项目有 已经内置在其LIB目录中。这不是一个整洁的 罐子,但这是我们为常规Android库做的方式 导出Java代码和资源的项目。
对于AndroidStudio,包装有些不同,请参阅此讨论。请注意,当前移动的目标也是如此;我们所有人都希望它将在NDK官方之前得到体面的支持。
您需要编写JNI(Java本机接口)代码才能访问库。在您的Java课程中,您将有一种方法:
private native final int doStuff();
将与NDK编译的.cpp文件中的函数相对应。当调用Java方法时,将调用此C 函数。
看这篇文章:http://mobile.tutsplus.com/tutorials/android/android/ndk-tutorial/
这是一个开源项目,我正在做这件事:https://github.com/svenoaks/soundtouch-android。查看soundtouch-jni.cpp文件及其与soundtouch.java文件中的呼叫相对应的方式。
编写适当的方法后,您可以将C 库和JNI代码编译为二进制.SO文件,因此用户不需要对NDK了解任何信息。然后可以像常规的Android库项目一样使用该项目。
如果要针对X86设备以及ARM架构,则需要在应用程序中启用X86构建它。文章/创建基于ndk的and-ndk android-apps-for-ia#lust-x86-ndk-toolset
- Android Java USB for native cpp
- Compile bzip2 for Android?
- Qt QML for Android bugs
- Android Studio 3.1.2 - 无法运行C++子例程"No implementation found for Java.lang.String..."
- TensorFlow C++ example for Android
- 在 Centos 7 上交叉编译 protobuf 2.5.0 for Android
- 如何构建和安装 OpenCV+contrib .so 库 for Android
- 使用 NDK for Android 编写 OpenGL 代码
- 在 OpenGL ES for Android 中运行时创建大型纹理的最有效方法
- Compiling C++ gRPC for Android
- Qt for Android:Jni - 不幸的是,应用程序已停止
- 如何使用 jni.h for Android
- Building dlib for android ndk
- Tensorflow Quantized Graph for Android
- Googletest for Android NDK
- openCV for Android - NOT opencv-android-sdk
- C++ library for android
- 如何在 Qt/QML for Android 中创建网页的缩略图
- 我需要解释 JNI for Android 的代码行
- 在windows平台上使用libVLC for Android