http://blog.csdn.net/ldinvicible/article/details/7800588
整个调用过程: 1)首先将camera的service注册到ServiceManager里面。在 framework/av/media/mediaserver/main_mediaserver.cpp里可注册媒体服务。在 framework/av/services/camera/libcameraservice/CameraService.h中对该类不存在 instantiate()的函数,这实际上是由其一个父类BinderService提供。BInderService类在 framework/native/include/binder/BinderService.h下定义。 2)在packages/apps/LegacyCamera/src/com/android/camera/Camera.java中有一个打开 camera模块的线程mCameraOpenThread.start()。JNI函数里面,我们找到Camera C/S架构 的客户端了,它调用connect函数向服务器发送连接请求。JNICameraContext这个类是一个监 听类,用于处理底层Camera回调函数传来的数据和消息。 3)初始化HAL层接口 4)通过HAL层操作camera驱动 Android中Camera的调用流程可分为以下几个层次: >Camera Driver |
|