近期遇到很多朋友问及想从事Android开发,有些是大四的学生,有些是已经工作了,从事J2EE或者C++、C#等开发工作。对他们为什么要从事Android我不是很深入的了解,不过Android确实是一个近两年很火爆的热词儿,招聘职位很多,机会多、平均薪水比其他岗位要高一些。移动互联网是未来的一个趋势,越来越多的人开始使用智能手机,Android系统在智能手机领域里虽然用户体验不如IPhone,但价格还是令大多用户可以接受的。国内Android手机的使用者也非常多。希望未来从事Android开发,眼光还是不错的。     

      Android开发分三类:

      1) 驱动开发

      2) Android系统开发

      3) Android应用开发

      每个类别需要的能力是不同的,对于驱动开发,需要熟悉Linux和C语言,了解嵌入式开发相关知识。最好有驱动开发经验;对于Android系统开发,一般是基于Android系统的源码进行修改,修复bug或者对系统进行深度定制,重新设计并实现用户交互,主要是修改Android java层框架和Android系统自带的应用。需要应聘者熟练掌握JAVA语言,有移动开发经验或者J2ME开发经验。前两类的工作一般是手机硬件制造商或者手机设计公司提供这些职位,例如华为、中兴、魅族、联想Lephone。最后一个,Android应用开发这个职位,大部分PC软件或互联网公司已经或正在做Android平台的支持。

      做驱动开发,普遍来说待遇比后两类要高些;系统开发,除了魅族、联想这样的公司,如果是做运营商定制的公司,基本上很少对系统层进行深度定制,主要是修改bug。如果没有处理bug的经验,做这一块不只会积累对Android系统层的经验,而且也会积累很多分析问题、解决问题的经验,对于应届生还是很不错的。因为我的需求点不在这个地方,所以我个人并不很喜欢这类的工作,打个比方,我现在的状态,并不希望把一个病人变成正常人,而是希望把一个普通人变成一个明星或者超人,所以我选择系统深度定制或者应用开发。(谷歌开源的Android系统,每个版本都有大量的bug,需要大量的人力去修改bug才能保证正常运行)

      入行Android,有两类同学,一类是应届毕业生,没有工作经验的,一类是已经工作一段时间的。因为提问题的大多数同学都是想要从事Android应用开发,我就针对这一类同学给一些建议。

      对于应届生和没有JAVA工作经验的人来说而言,我的建议是,首先掌握J2SE,然后再去学Android的应用开发。

学习的方法:看书不如看视频,看视频不如找到好的老师上培训课程,无论看书、看视频、上培训班最重要的都是练习。

学习资料推荐:

      J2SE方面,看书的话可以参考的《JAVA就业培训教程》、视频有很多了,如果经济条件和时间都允许的话可以去培训班学习,培训学校我就不推荐了,一是有做广告嫌疑,二是大家分布在不同的城市。去找当地口碑较好的吧。再重复一遍,对于大多数人来讲,编程是一项技能,要重复练习。高手拥有的不是高超的技巧,而是扎实的基本功。成功者重复基本动作。

      掌握了J2SE方面知识后,可以开始学习Android应用开发了。Android应用开发的书籍推荐《Google Android开发入门与实战》、《Google Android SDK开发范例大全》这两本书,也是高焕堂老师推荐的。有很多人也推荐《Android应用开发揭秘》这本书,实际上是偏游戏的,不知为什么取名是应用,如果你想做游戏开发可以参考。我去年有幸参加高焕堂老师的培训,真是如醍醐灌顶,大开眼界,原来做技术的还可以这样。以后有机会跟大家分享下高老师的一些观点。

      Android视频方面,网上很多了,我以后也会录制一些视频发给大家看,现在网上的基础讲解已经很多,我不会重复,我会选择一些大家需要而网上较少或者讲解不深入的来讲。

Android培训目前做得好的不多,培训界较有名的传智播客虽然也有,但从大纲上看,还是偏网络方面的多,Android系统本身的特性讲得不是很多很深入。     

      做Android应用,尤其对没有经验的同学来说,一个企业为什么选择你而不是别人呢?你要制造与其他人的差异,比如你深入的了解某个领域,做出一个应用,面试时带着作品去给面试官演示一下,分享一下做这个项目的经验,但是遇到了哪些问题,怎么解决的,我想在其他方面同等条件下,你胜出的几率高了很多。像我以前面试员工的时候,首先注重的是JAVA基础,分析解决问题的能力,然后是才是Android经验,如果前两方面表现很好的话,Android掌握一般也没关系,我有办法让一个基础好的同学在短时间内快速上手Android。不过这应该是说前两年的情况,以后懂Android的越来越多,门槛也会越来越高。

      对于有工作经验的人来说,已经有了编程的感觉,尤其是从事J2EE或J2ME的,转到Android相对容易一些,起码Java语言基础已经有了。只要学习一下Android平台相关知识即可。

      Android的语法使用的是Java5.0,是它的一个子集,同时增加了一些apache的包。Android跟J2SE更接近,功能跟J2SE一样强大,与J2ME的差距还是比较大的。只是国内做J2SE的人较少,从J2SE转到Android是最轻松的,因为J2SE中的Swing与Android通过代码来编写UI的方式是很接近的。Swing比Android的UI更复杂,如果你从事Swing或Eclipse RCP或者插件开发等J2SE开发,那么恭喜你,因为谷歌的安卓,你又多了一个选择。