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 | |
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步中指定的)
分类:
常用功能查寻
, Android NDK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2016-04-04 Android内存管理(14)*使用开源库LeakCanary检查内存泄漏
2016-04-04 Android内存管理(13)常见产生内存泄漏的原因