Android camera系统开发之总括

最近在从事有关Android Camera开发相关的工作,发现这一块还是比较复杂,从网络上也得到很多相关资料,但是都比较分散,对于出现的问题很难有个全面地了解与定位。

   根据我自己的习惯,我比较喜欢把整个框架先大概了解一下,再针对某个部件进行认真分析,这样在出现问题的时候就可以做到有的放矢。

   

 

  

发现系统无法上传我的图片,可能是我本地加密的原因 ,只能这样凑合了

 

Camera Java application  packages/apps/Camera/src/com/android/camera/camera.java

Camera Java API  frameworks/base/core/java/android/hardware/Camera.java

JVM

Camera Native API frameworks/base/core/jni/android_hardware_Camera.cpp

Camera Base API  frameworks/base/libs/ui/Camera.cpp

Camera Base API  frameworks/base/libs/ui/Icamera.cpp

Camera Base API  frameworks/base/libs/ui/ICameraService.cpp 

Binder

Camera Service  frameworks/base/camera/libcameraservice/CameraService.cpp

 

Camera HAL(CameraHardwareInterface) Camerahal.cpp

                         

Linux system call

V4L2 for Camera driver

Camera Sensor driver

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,很高兴回答你关于Android开发中的相机(Camera)学习问题。在Android开发中,相机是一个非常常见的模块,因此学习如何使用相机是非常重要的一部分。 首先,你需要在AndroidManifest.xml中声明相机权限: ```xml <uses-permission android:name="android.permission.CAMERA" /> ``` 接着,在你的Activity中,你需要获取相机的实例并启动预览: ```java private Camera mCamera; private void startCameraPreview() { try { mCamera = Camera.open(); Camera.Parameters parameters = mCamera.getParameters(); // 设置相关参数 mCamera.setParameters(parameters); // 设置预览SurfaceView mCamera.setPreviewDisplay(mSurfaceView.getHolder()); // 开启预览 mCamera.startPreview(); } catch (IOException e) { Log.e(TAG, "Error while setting camera preview", e); } } ``` 上面的代码中,我们首先获取系统相机的实例,然后获取相机参数,并设置相关参数。接着,我们将预览SurfaceView和相机绑定,最后开启预览。 当你完成相机预览后,你就可以使用相机拍照了。以下是拍照的示例代码: ```java private void takePicture() { mCamera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // 处理拍照后的数据 } }); } ``` 当你调用`takePicture()`方法时,相机会拍摄一张照片,并通过PictureCallback返回照片的数据。你可以将数据保存到文件中,或者进行进一步的处理,比如将照片显示在ImageView中。 以上就是Android开发中相机的基本使用方法。当然,相机的功能还有很多,你可以尝试更多的参数设置和拍照处理,来发掘相机的更多特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值