camera2中的CameraCharacteristics的原理

来源:互联网 发布:淘宝查不到以前的订单 编辑:程序博客网 时间:2024/05/15 00:06

前言

在看Android中camera2的时候,忽然遇到一个camera的配置的数据类型,总是感觉好奇怪,这个东西比较简单但是如果不细看,貌似确实还是比较复杂,这里稍微解释下吧,并且发一篇博客

正文

这个特奇怪,特别是关于数据结构,总是让人比较迷茫,搞得自己特难受,这里好好分析下,CameraCharacteristics这个仅仅是一个native的封装,里面封装了什么呢?我们很容易找到几个接口。

public <T> T get(Key<T> key) {    return mProperties.get(key);}

因为这个是对native的封装,我们应该知道这些参数都是从c++层上来的,所以里面的set 方法都是从底层设置的,这里我们不用关系,那么我们之关系这个key 是什么,这个东西看到源代码后,也是很简单的一个一个native的封装,我们很容易知道这个是一个泛型,在底层构造的时候,也传递一个类型,这里当然是对应一个cpp层的模板类,这里我还是不要找cpp代码,最近只要研究一下Java代码就好了,这里仅仅是可以创建几种类型,这里举几个例子,

    public static final Key<Integer> LENS_FACING =            new Key<Integer>("android.lens.facing", int.class);    public static final Key<float[]> LENS_POSE_ROTATION =            new Key<float[]>("android.lens.poseRotation", float[].class);

很简单对吧,其实这些东西,完全类似一个map,但是map对应的值只是一种特定的值,这里实现了两次封装后,我们可以通过一个特定的key找到唯一对应的一种特定类型的值,

后记

我去,这个竟然搞定了,有机会我在研究下底层的cpp代码,这里希望我有空完成吧,

0 0