NDK自带的c/c++库

1.官方文档

  https://developer.android.google.cn/ndk/guides/stable_apis

  https://developer.android.google.cn/ndk/reference

2.简表

libc/libm/libdl C 库 -  
libc++_shared.so/libc++_static.a c++库,前者动态,后者静态。支持c++17 C++ 库支持
liblog android 日志 3 日志记录
libz Zlib 压缩库。 3  Zlib 压缩库
libGLESv1_CM/libGLESv2/libGLESv3/ OpenGL ES

OpenGL ES 1.0  -  4

OpenGL ES 2.0  -  5 

OpenGL ES 3.0  -  18

OpenGL ES 3.1  -  21

OpenGL ES 3.2  -  24

 
libEGL   9 EGL 原生平台接口
libvulkan 高性能三维图形渲染库,低开销、跨平台  24

Vulkan Graphics API 指南

VulkanSamples

android-vulkan-tutorials 

libjnigraphics 访问 Java Bitmap 库 8 位图 API 参考文档
libsync 同步api 26 同步 API 参考文档
libcamera2ndk 原生相机 API 24 相机 API 参考文档
libmediandk 媒体 API  - 媒体 API 参考文档
libOpenMAXAL 基于 Khronos Group OpenMAX AL 1.0.1 API 14  
libandroid

android平台api,支持的操作如下:

 -  Android NDK API 参考文档
libnativewindow 原生窗口功能 -  Android NDK API 参考文档
<android/hardware_buffer.h> 硬件缓冲区 API -  
libaaudio 原生音频 API 26 AAudio API 指南
libOpenSLES 另一个原生音频库,从api9开始支持pcm 9 面向 Android 的 OpenSL ES 指南
libneuralnetworks 设备端机器学习库  27  神经网络指南

位置在 android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/目录下

3.添加方法

3.1 include相应的头文件

3.2 ndk-build

  将库添加到 Android.mk 中的 LOCAL_LDLIBS,需要将前导 lib 替换为 -l 如:

 LOCAL_LDLIBS := -lz

  链接的是libz

3.3 CMake

 https://developer.android.google.cn/ndk/guides/cmake

 https://developer.android.google.cn/studio/projects/configure-cmake

 在CMakeLists.txt里设置,以liblog为例。

第1步:查找 liblog 

1     find_library( # Defines the name of the path variable that stores the
2               # location of the NDK library.
3               log-lib
4 
5               # Specifies the name of the NDK library that
6               # CMake needs to locate.
7               log )
  • 第7行是库的名字,不用以lib开头
  • 第3行 给liblog 指定个引用名

第2步:链接

1   # Links your native library against one or more other native libraries.
2   target_link_libraries( # Specifies the target library.
3                        native-lib
4 
5                        # Links the log library to the target library.
6                        ${log-lib} )
  • 第3行是本jni库的名字
  • 第6行是链接到liblog的引用名(上1步中指定的) 

 

posted @ 2021-04-04 21:01  f9q  阅读(1296)  评论(0编辑  收藏  举报