最近连续几天和硬件打交道,让我深深的感受到了硬件里面的一些“奇特”的事情,觉得记录下来方便大家以后遇到同样的问题可以看这个为大家提供解决问题的思路。
通常,Android人员开发硬件的过程:第一步,先拿到一套硬件设备;第二步,和硬件厂家要一些开发资料(比如sdk、通讯协议、demo安装包等)研究;第三步,先用厂家提供的demo在设备上面运行一下了解功能使用和性能,然后运行sdk代码确保sdk的demo是正常运行;第四步,自己先仿照着 厂家的demo自己根据自己的项目需求写一个demo(最好不要直接写入项目,那样不方便调试;而且一旦开发完后可以使用这个demo来检测是软件问题还是硬件问题);第五步,自己写好的dmeo开发好后再把封装好的类放入项目里面使用
作为一个已经开发过硬件两年经验的人,很顺利的把读卡器,超声感应这些功能依次做完添加到项目后,整体测试的时候出现了一个神奇的问题:好好的超声感应变得不准确了,信号上报报错;称重的重量不断变化;运动传感也不准确了,,,,,,我马上把这个问题给硬件技术人员反馈了一下。硬件技术人员很平淡的说:肯定是那个读卡器影响了其他硬件。
我听到他的话,我把读卡器的线拔了不让它工作,这个时候其他硬件正常运行了!!!问题确认了,真的是读卡器的工作影响了其他硬件工作。但是发现了这个问题还是得想想怎么解决啊,发现了问题只是成功了一半,,,,然后我就联系了这个读卡器的厂商,厂商给我了两个方法:把这些设备做一些屏蔽,设备间距放远一些或者降低读卡器的功率。
第一种方法的确是最有效果,但是做架构的大哥已经把设备安装好了,来不及拆卸。只能在软件上面处理了,我把功率设置为一半后果然其他硬件收到的影响几乎没有了,但是接受信息的距离却缩短了。还好满足项目需求的距离,不然得让结构的大哥加班拆卸设备做隔离了。
通过这个事情,我认识到硬件和硬件之间是有影响的,一定要做好屏蔽。
除了硬件和硬件之间有问题以外,硬件本身也有一些问题:比如有一个需求是 开发视频录制功能,但是需要切换摄像头,根据不同场景来使用不同的摄像头录制:
录制完后查看视频发现有快进的效果。原因是:硬件的系统分辨率太低了,需要升级才能解决
切换摄像头总有一个摄像头失败率很高,原因是:那个摄像头的线相比其他的细,质量差不是同一批的