您的位置:首页 > 理论基础 > 数据结构算法

camera2中的CameraCharacteristics的原理

2017-03-17 10:51 309 查看

前言

在看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代码,这里希望我有空完成吧,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 数据结构