0 前言
本文重点分析Android-P的CameraManager、CameraService实现和使用。
验证:Goldfish模拟器
1 CameraManager
CameraManager其实是第2节“media.camera”服务的封装,用于打开相机等,其源码路径如下:
frameworks/base/core/java/android/hardware/camera2/CameraManager.java
1.1 注册
final class SystemServiceRegistry {
static {
...
registerService(Context.CAMERA_SERVICE/*="camera"*/, CameraManager.class,
new CachedServiceFetcher<CameraManager>() {
@Override
public CameraManager createService(ContextImpl ctx) {
return new CameraManager(ctx);
}});
...
}
...
}
// @file: frameworks/base/core/java/android/app/SystemServiceRegistry.java
1.2 访问
可通过Context.getSystemService()访问上述服务:
class AndroidCamera2AgentImpl