LZ在一家不大不小的公司做驱动,但其实只是简单的移植和修修改改。虽然还有很多东西可以去学,但不知道是继续学习驱动,还是适当的学习些上层的东西,比如Native层的一些library。
如果说驱动都由 IC 厂做好了,不需要修改了。那么上层又有多少东西需要修改的?
不少做Java上层的同事都想学习底层驱动,他们都觉得上层太简单了,刚毕业的应届生学几个月就会了,他们很有危机感。
可是,从我的角度看,做驱动虽然有难度,但招聘驱动开发的职位远远没有招聘Android上层Java开发的多,差了好几倍。
做驱动开发,或许,去 IC 厂是最好的选择。
我的一个观点是:需求决定市场。
当企业做一个产品,一个项目,为了迎合市场需求,需要在产品的某些方面做些修改和创新,因此也需要人来做这方面的开发。如果涉及硬件的改动,就可能会涉及到驱动开发。如果只需要修改应用,那就不涉及驱动。
无论是个人还是企业,都没有能力左右市场需求,也很难准确的预测市场需求。因此,对个人来说,学习什么技术,确实没有明确的参考坐标。四、五年前,当年android刚刚火起来的时候,很多公司开出一万多的高薪来招聘android开发人员,都抢不到人。谁能想到android手机普及的那么快,android开发人员也迅速多了起来,近几年android开发的工资已经趋于平稳。我想,说不定现在大学里的软件专业,都少不了android的课程吧。现在做android开发的工资真心不算高,相比之下,很多其他行业才是暴利,比如房地产和金融。上51job一看,一大片都是招聘android上层开发,java、客户端等关键词,基本表明这个职位与驱动无关。或许,现在真的是互联网时代,每个公司都想给自己做个App,就像当年每个公司都想给自己做个网站一样。当年很火的.Net, ASP, JSP,现在也听不到声音了,因为网站该做的都做好了,剩下的就是维护了。还因为曾经人们都是坐在电脑前上网,而现在都在用手机上网。据说做J2ME的人很容易转到Android的Java开发,因为很相似,可是做驱动的人想转到Java开发确实要从头开始。
就LZ个人而言,对Java层并不感兴趣。虽然对Native层的C++和一些开源库Library感兴趣,可是往往因为代码量太大而觉得力不从心。android中包含了很多开源库,那些开源项目动辄几十万行代码,想想就烦躁。即使去看,也要投入很多时间和精力的。
那么问题来了,LZ是应该继续深入学习驱动,还是投入时间和精力去学习Native层及各种开源库Library?
9 个解决方案
个人认为两者并不矛盾,只要lz有精力学的,完全可以两者兼顾,驱动的活不在IC厂商的话并不算多,整天都是熟悉内核架构,移植、修修补补,学Native Library和Hal也能拓宽就业面,和驱动相比跨的不大,完全可以两者兼顾
楼上说的很对,两者并不矛盾的,学习Android系统要懂一些Linux底层驱动方面的知识,同时要想真正做产品,图形系统又是必要的,也就是Android层面的设计也不可少,建议楼主找一块合适的开发板练练手不,推荐4412的板子,可以流畅跑Android,资料也比较齐全了
无论是驱动还是android的native层,都是只有在IC厂家才活多,其他做具体产品的公司,只能呵呵了。。。
具体选择做什么,看自己的兴趣,最主要的就是做好准备,多关注相关的工作机会。。。