AndroidCamera的基本流程及框架
在前面简单介绍了一下camera的硬件成像流程,从传感器成像到屏幕显示还要经过Android的多层架构的处理来实现最终显示,一般来说可以分为Kernel、HAL、Framework、APP层。在有部分资料中将Framework又细分为JAVA Framework和native C/C++Libraries及Runtime等多层,其实本质上没有区别,只是在Framework的理解上有不同见解而已。下面简单介绍下各层功能及各版本差异。
Application
Application层:可以理解为内置在Android系统的app,APP应用层在Android上表现为直接调用SDK API开发的一个Camera 应用APK包。我们可以像调用Java API Framework层一样直接调用系统app。我们也可以自己编写System app,但是要注意系统应用的权限比较特殊,直接写在manifest里面是不行的,需要做特别的处理。一般的第三方APP获取不到多摄权限,手机的多摄功能仅提供给内置相机APP使用(在选择手机时就需要对自己的拍照需求有所衡量,如自拍常用美颜第三方APP就可以对多摄没有太大需求)。我们这里说的AndroidCamera目前仅讨论基本的预览拍照录像,不涉及广角,长焦等内置相机特异性功能。
对于相机APP开发者来说目前有两种APK包供开发调用,即API1和API2。Android5.0之后API1就被弃用了,但是由于很多设备仍然依赖相机 API1,因此之后的版本仍支持该模块。</