该API主要供那些没有太多Java组件的应用程序使用,以实现简单的实现。
在一些情况下,如果一个应用程序只是通过JNI将相机图像缓冲区传递到本地代码中,则性能可能会略微提高,但从Java android.media.Image对象访问直接ByteBuffer的开销并不高。但是设置大量Java代码来执行此操作可能很麻烦;例如,OpenCV可以直接在其Android相机包装器中使用NDK,而不是过去OpenCV使用的私有(不保证稳定)本机接口。
它还可用作其他本地系统组件获取相机数据的稳定接口,主要用于各种OEM扩展。
与Java API不同,NDK API仅支持LIMITED或更好的相机设备;对于LEGACY设备,没有兼容性支持。 它还不支持重新处理,这在NDK API更合理的连续处理应用程序类型中较少使用。
/system/libs/libcamera2ndk.so
。我的问题是是否可能为带有Marshmallow的Nexus 5X构建此库。 - Alex Cohn