做驱动的话,需要的知识体系比较杂,相对难学一些,学习的过程是个先难后易的过程。核心的东西一般变化很小,所以驱动的知识体系不容易被淘汰,比如说之前我是做纯 linux 电子书驱动的,后来做 android 驱动,这两个东西用的都是 linux 内核,驱动其实没区别,另外,megoo 系统也是用的 linux 内核。当然,要是做 windows phone 的话,代码构架上、理念上是两个体系,驱动构架、理念要另外学的。就我经验而言,理工科/计算机系的做驱动的比较多一些,存软件的做上层多些。
Android 上层分几部分的,有做纯应用的,有做 framework 的,兼而有之的也有,不过都差不多。Android 上层容易学,容易掌握。现在也是应用为王的时代,前景也挺广阔的。也正是这个容易学,所以做这方面的人也可能比较多一些。如果能做出牛B的应用,前景无限!做纯应用,若是有好的想法,可以几个人出来单干,团队不用很大!
从工资来看,做 android 驱动 和做 android 应用,我所在公司目前来说都差不多,估计其他公司差别也不大,基本是看工作年限给工资。
前景好不好不敢说,这事说不准的,三十年河东,三十年河西,看运气,也不是每个人一定就会在这一行一直干下去的。仅就目前来说,这一行的工资在中国算是高的。
这里给个建议,具体怎么选择,要根据自己的情况,希望对你有帮助。