java usb camera_Android usb camera设备添加

最近要在我们的某Android设备上添加USB Camera,之前没有神马经验。加上以前做过这个的同事很忙,也不好相处,问了十句话才给我回复一句话这样子的情况,我很郁闷,就把添加的过程全部写出来

本菜鸟也是刚接触Android的开发。所以写的尽量简单明了。、

其实Camera的开发各个书上或者博客上都有写,但是没有写具体如何做。笨鸟我也晃了几天没什么进展。

以下摘抄自我桌上的一本 王石磊等编著:

Android的Camera系统包括了Camera驱动程序层、Camera硬件抽象层、AudioService、Camera本地库、Camera的Java框架类和Java应用层对Camera系统的调用。

图我就不贴了,网上到处都是。

我当时要做的工作就是  需求:

在我们的Android平台上 插上一个USB Camera设备(UVC),系统能够使用(拍照)。

挺简单的功能,各个手机都支持拍照,可是我是菜鸟啊,我不会。

根据上面那本书的描述,我们就一步步的来:

1.硬件驱动

因为USB camera设备驱动都会在linux系统中集成,所以只需要重新配置linux kernel使其支持uvc设备

linux目录

make menuconfig->

Device Drivers  --->

Multimedia support  --->

[*]   Video capture adapters  --->

[*]   V4L USB devices  --->

  USB Video Class (UVC)

[*]     UVC input events device support

选中最后两个模块就好了。

重新编译kernel。载入我们的设备

然后需要手动加载驱动:

insmod /system/lib/modules/current/kernel/drivers/media/video/uvc/uvcvideo.ko

就会出现/dev/video0 设备

ps:我遇到一个问题,在ll /dev/video0 时候,video0设备是0600属性。

在HAL层open这个设备时候permission deny。不知道为什么,而且在HAL层使用chmod函数也会出错。

但是通过串口可以改变设备权限 chmod 0666 /dev/video0,这样open没有问题

2.硬件抽象层

可以参考:

Android_src_code\development\tools\emulator\system\camera中的camera HAL实现

这个原始的东东编译出来会到/system/lib/hw/下生成一个camera.goldfish.so,我们修改后,生成自己设备的so.

camera.vendor.so,我当时是adb 到我们的设备把goldfish删掉了,这个push进去才生效的。

因为我们这边在IceCream上实现过了,在JellyBean下就直接用了我们的项目没有做任何修改,这方面我也没有多看。

3.AudioService、Camera本地库、Camera的Java框架类和Java应用层对Camera系统的调用

这部分Android都做好了,所以实际上我也没做什么。

直接把驱动和HAL层实现,就可以用android自带的camera apk拍照了。

完结:

很简单的功能,完成起来也算顺利,因为有一点前人的经验。也许真完全自己做起来也要一个月。

本菜鸟开始学习Android开发了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值