一.应用层
Camera 的应用层在Android 上表现为直接调用SDK API 开发的一个Camera 应用APK 包。代码在/android/packages/apps/Camera 下。主要对 android.hardware.Camera(在Framework中) 类的调用,并且实现Camera 应用的业务逻辑和UI 显示。一个Android 应用中若要使用这个android.hardware.Camera类,需要在Manifest 文件声明Camera 的权限,另外还 需要添加一些<uses-feature> 元素来声明应用中的Camera 特性,如自动对焦等。 具体做法可如下:
<uses-permission android:name = "android.permission.CAMERA" />
<uses-feature android:name = "android.hardware.camera" />
<uses-feature android:name = "android.hardware.camera.autofocus" />
二.Framework层
1.android.hardware.Camera:代码位置/android/frameworks/base/core/java/android/hardware/Camera.java
这部分目标是framework.jar。这是是Android 提供给app层调用的java接口。这个类用来连接或断开一个Camera 服务,设置拍摄参数,开始、停止预览,拍照等。
2.android.hardware.Camera这个类是和JNI中定义的类是一个,有些方法通过J

本文深入探讨了Android Camera服务的架构,从应用层到硬件驱动层。应用层通过SDK API与Framework层交互,Camera框架包括JNI接口和Binder机制实现客户端和服务端通信。硬件抽象层(HAL)继承CameraHardwareInterface并实现硬件接口,而Driver层则涉及Linux内核的设备驱动,遵循V4l2规范。整个架构使得上层代码独立,底层开发主要集中在HAL和内核驱动上。
最低0.47元/天 解锁文章
2629

被折叠的 条评论
为什么被折叠?



