写在前面
这是一篇回忆型文章,用于记录当时的工作内容,写与2017年5月7日,以后应该随时写。
到一家新的创业公司,第一个项目就是研究未知领域的项目,研究安卓手机用otg线读取单反照相机sd卡里的照片。结果研究了三周多还是没有攻克。
当时心里很沮丧,浪费了三周多的时间不说,没有给公司带来任何收益。
不过现在想起来,那段时间并不是一无所获,写些文件记录一下,鼓励自己。
0、反编译
直接反编译竞品程序,发现是用H5写的。。。看日志猜测应该是调用了定制手机上的shell脚本来实现Linux系统直接通过otg连接单反(竞品只能在它的定制机上跑)。
1、熟悉了AndroidStudio的环境
虽然之前做过1年的Android开发,但是用的是Eclipse,而一些细节,如manifest文件如何配置,layout布局都有啥,Adapter是干啥用的等等,基本忘的一干二净。这次直接用AndroidStudio,熟悉了这些内容在AS如何使用。整体感觉,果然比Eclipse好用多了,缺什么内容或者插件,Gradle直接提示你下载,不像Eclipse还得一个错一个错的去排查,有时候要搞半天。
2、无线调试
这个项目要用Android手机连接otg线做测试,所以就不能连接在电脑上有线看log了,只能用ADB命令无线调试。
3、用otg读取MassStorage
在GitHub上找到个demo,成功读取了U盘或者移动硬盘上的内容,但是为了测试,搞坏了公司的U盘和自己的移动硬盘,血的教训啊。
4、JNI
想用一些C的库,就必须使用JNI,自己写了一个demo,用JNI调用openCV的方法,把一张照片变成了黑白照片。(参考)
5、PTP,MTP协议
后来发现,单反相机连接到Mac上能读出里面的照片,并且单反还可以继续拍照,是因为电脑连接单反走的是MTP协议(PTP协议的升级版),而不能把单反作为大容量存储,这样会使相机无法机型拍照。找到一个demo,可以调用相机的拍照,调焦等功能。离真像已经不远了!
最后
经过翻阅各种百度,Google的资料,问便所有懂研发的亲朋好友,还是没有人研究过这个问题,终于停止了对这个问题的钻研。很多事情,付出不一定有结果,但是也许有很多以外的收获。
网友评论