一直以来,都有不少的小伙伴,会咨询到Android Camera该如何学习,有没学习路线之类的问题,今天这篇文章就来和大家一起探讨一下。说法仅代表个人观点,不一定对,仅供大家参考。
首先,从目前市场的招聘需求来看,Android Camera相关的岗位主要有下面这些:
大家可以看到,camera相关的岗位相对来说还是挺多的,上面列出来的岗位里面,实际岗位负责的内容要视不同的公司而定。
大公司,各个岗位会分的比较细,上面的岗位基本都有。也有相当一部分的公司,是把 Camera系统开发、Camera Hal开发、Camera驱动开发合并为一个岗位,也就是Camera Bsp开发。
针对某个模块内容的学习,我一般的建议都是对整个大体有一个了解,然后再基于自己目前的岗位内容,去进行一个扩展的学习。
比如你现在是从事App开发的,如果之前没有对camera有特别深入的学习,现在想往Camera这个方向发展,我的建议就是先熟悉掌握Camera App开发的基本要求点,然后再根据自己个人的喜好,往Camera更底层的模块去学习。
同样的道理,如果你现在从事的是驱动相关的工作,想往Camera模块去深入学习,那我的建议也是先从Camera 驱动模块去入手,后续再往上层去扩展。
其实学习路线也是非常的简单,要么从上到下去学,要么从下往上学,都是结合你当前的一个优势来进行选择,至少编程语言是你现在比较熟悉的先。
下面我们来简单看下,每个对应的岗位需要哪些基础和技能,这里只列一些比较有代表性的。
一、Camera App开发
App开发需要Java语言基础,现在Google比较推荐Kotlin,所以很多公司同时会有Kotlin的要求。开发IDE当然就是Google配套的Android Studio。
上面列出来的点,只是和Camera相关的一些点,实际情况下,你去面试的时候,并不是满足这些要求就可以的了。Android App开发相关的内容都还是需要懂的,只是要求需要对Camera模块更加熟悉一点。
专门的Camera App开发岗位,一般是手机厂或者一些安防领域的公司有需求。
Camera App的进阶,就需要去学习OpenGl和JNI开发相关内容,会涉及到在应用层叠加滤镜、算法等内容。
二、Camera Bsp开发
Camera系统开发、Camera Hal开发、Camera驱动开发的内容,就放到一起讲了,毕竟很多公司针对Camera 开发的岗位,可能就是一个app和驱动的区分。
系统开发层,开发语言主要是java和c++,Hal层和驱动这边,基本是c++。然后都是需要对Camera的框架有了解,很大部分基于已有的框架上去做一些修改,当然,很多厂商内部会加有自己的一些框架。
性能、功耗和稳定性,每个模块都是重点,如果在某一块有特长,目前也是能拿到比较不错的offer。
Camera bringup这块,就需要能看懂简单的电路图,然后芯片手册最好也是能看懂的。bringup 这块,现在很多会有FAE支持,如果FAE给力,那点亮摄像头的压力也会相对小一些。
对了,这里还漏了Camera Fae的岗位,一些Sensor原厂会有这类招聘的需求。
三、Camera Tuning工程师
效果调试,也是很多小伙伴比较喜欢的岗位。我个人感觉也是一个很好的切入到Camera领域的一个岗位选择。
Tuning会分3A和ISP的调试,如果对Af或者ISP比较擅长,也是能在手机厂拿到不错的offer的。
不同平台的调试工具是不一样的,所以需要熟悉不同平台的调试工具。
四、Camera器件工程师
器件工程师,主要是负责sensor的选型等Camera相关的硬件工作。这个就需要对sensor硬件有了解。
五、Camera测试工程师
这里的Camera测试工程师,更多的是针对Camera效果测试。
Camera效果会有各个场景,各个场景的效果都需要进行验证,就是靠我们的测试工程师去拍照,然后拍回来,再进行一个初步的分析,有问题,再提bug。
写在最后
如果大家想学某个模块,又不知道该学哪些内容,我还推荐一个方法,就是去看招聘网站,多看几个,基本就能清楚招聘方的一些要求。然后自己就针对性的去学就好。
好了,就简单说这么多了,希望大家都能找到自己的感兴趣的方向,同时找到心仪的岗位。
推荐阅读:
深圳上班,
从事Android Camera相关软件开发工作,
公众号记录生活和工作的点滴。
《Android Camera开发入门》视频课程已经上架了,可以加我微信咨询,目前针对星球成员免费开放,也欢迎加入“小驰成长圈”星球
觉得不错,点个赞呗