Camera2.0首先启动的是CameraActivity,而它继承自QuickActivity,在代码中你会发现没有重写OnCreate等生命 周期方法,因为此处采用的是模板方法的设计模式,在QuickActivity中的onCreate方法调用的是onCreateTasks等方法,所以 要看onCreate方法就只须看onCreateTasks方法即可:
//packages/apps/Camera2/src/com/android/camera/CameraActivity.java
1、初始化OneCameraOpener对象
mOneCameraOpener = OneCameraModule.provideOneCameraOpener(
mFeatureConfig,
mAppContext,
mActiveCameraDeviceTracker,
ResolutionUtil.getDisplayMetrics(this));
mOneCameraManager = OneCameraModule.provideOneCameraManager();
//获取OneCameraManager对象
2、建立模块信息
mModuleManager = new ModuleManagerImpl();
ModulesInfo.setupModules(mAppContext, mModuleManager, mFeatureConfig);
3、进行初始化
mCurrentModule.init(this, isSecureCamera(), isCaptureIntent());
1、OneCameraModule.java /packages/apps/Camera2/src/com/android/camera/one
public static OneCameraOpener provideOneCameraOpener(
//创建OneCameraOpener对象
Optional manager =Camera2OneCameraOpenerImpl.create(
featureConfig,
context,
activeCameraDeviceTracker,
displayMetrics);
调用Camera2OneCameraOpenerImpl的create方法来获得一个OneCameraOpener对象,以供CameraActivity之后的操作使用
Camera2OneCameraOpenerImpl.java
/packages/apps/Camera