Android NDK 开发加载本地库 LOCAL_LDLIBS

示例:

LOCAL_LDLIBS := -llog -lz

android-3

C库

C库包含多线程支持,所以不需要指定 -lpthread,也不需要指定 -lrt

注意:内核头文件还没有稳定下来(今后可能变动),这些头文件是 <linux/*.h><asm/*.h>

数学库

LOCAL_LDLIBS += -lm

C++库

不需要指定 -lstdc++,是自动链接的

Android log

Android系统的log功能

LOCAL_LDLIBS += -llog

头文件:<android/log.h>

zlib库

LOCAL_LDLIBS += -lz

头文件:<zlib.h><zconf.h>
库路径:/system/lib/libz.so,详见:http://www.zlib.net/manual.html

动态连接器库

LOCAL_LDLIBS += -ldl

头文件:<dlfcn.h>
库路径:/system/lib/libdl.so,该库提供的函数例如:dlopen()/dlsym()/dlclose()

android-4

OpenGL ES 1.x

LOCAL_LDLIBS += -lGLESv1_CM.so

头文件:<GLES/gl.h><GLES/glext.h>
库路径:/system/lib/libGLESv1_CM.so

android-5

OpenGL ES 2.0

LOCAL_LDLIBS += -lGLESv2.so

头文件:<GLES2/gl2.h><GLES2/gl2ext.h>
库路径:/system/lib/libGLESv2.so

注意:目前模拟器还不支持这个库

android-8

jnigraphics 库

一个小型的C语言库,提供对Java中的 bitmap 对象的操作。

LOCAL_LDLIBS += -ljnigraphics

头文件:<android/bitmap.h>

典型用法:

  • a) 用 AndroidBitmap_getInfo() 函数从位图句柄(从JNI得到)获得信息(宽度、高度、像素格式)
  • b) 用 AndroidBitmap_lockPixels() 对像素缓存上锁,即获得该缓存的指针。
  • c) 用C/C++ 对这个缓冲区进行读写
  • d) 用 AndroidBitmap_unlockPixels() 解锁

android-9

OpenSL ES 本地音频库

LOCAL_LDLIBS += -lOpenSLES

头文件:<SLES/OpenSLES.h><SLES/OpenSLES_Platform.h>

Android共享库

LOCAL_LDLIBS += -landroid -lz -lm

从android-9 开始,就可以完全使用C/C++来编写Android程序了(完全脱离Java)。但是,仍然没有脱离java虚拟机,许多东西还是需要通过jni来访问。

1、活动(Activity)生命期的管理

头文件:<android/native_activity.h>

2、监听事件和传感器

头文件:<android/looper.h> <android/input.h> <android/keycodes.h> <android/sensor.h>

3、窗口管理(包括对像素缓存加锁、解锁)

头文件:<android/rect.h> <android/window.h> <android/native_window.h> <android/native_window_jni.h>

4、资源管理

头文件:<android/configuration.h> <android/asset_manager.h> <android/storage_manager.h> <android/obb.h>

注:<android/obb.h>对嵌入 apk中的资源(或OBB文件)进行只读的、直接访问。OBB(Opaque Binary Blob)文件,新特性,允许把较大的数据放在apk之外(对于游戏程序有用)

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/12/android-ndk-development-loads-local-library-local-ldlibs/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android NDK 开发加载本地库 LOCAL_LDLIBS
示例: LOCAL_LDLIBS := -llog -lz android-3 C库 C库包含多线程支持,所以不需要指定 -lpthread,也不需要指定 -lrt 注意:内核头文件还没有稳定下来(今后……
<<上一篇
下一篇>>
文章目录
关闭
目 录