本人一直致力于嵌入式相关知识和技术在中国大陆地区的技术传播及嵌入式产品及移动设备的系统和应用程序开发,近两年主要专注于3G技术领域,重点是研究Android应用开发及系统核心代码及Android开发人才培养体系的建设。作为华清远见3G学院(www.3g-edu.org)的职业讲师,我在面试学员的过程中经常会被反复问到一些问题,这些问题可能是大部分Android开发初学者想了解的,所以抽时间整理了一下,短文一篇,希望可以对大家在Android开发入门学习的阶段有所帮助,更希望可以帮助更多的朋友进一步了解所学的行业,明确职业发展的方向,欢迎拍砖。

  关于Android

  相信大家对Android的发展历史多少都有一些了解, Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞速发展的道路。经过这几年的发展,它已经发展成了一个平台、一个生态体系。现在Android在移动领域已经得到了广泛的应用。根据Google于2011年6月份公布的数字,现在每天激活的Android设备高达50万台,比5月份的数据增加了10万台!Google还透露目前已经与36家OEM厂商和215家运营商合作,共激活了超过1亿台Android设备。

  相比于Symbian的日落西山,以及苹果的封闭、Windows Phone的前途未卜,Android无疑代表了当前行业发展的主流趋势:开放平台取代了封闭平台。让参与者均能通过自己的努力而获益。

  从2008年9月公布1.0版本以来,经过近三年的跨越式发展,现在Android已经发展到了3.x版本,这是一个针对平板电脑而做了大量优化的版本,包括对更大屏幕的支持的类库、多任务优化等。目前市场上占主流的还是2.2版本,当然,相信随着时间的推移,2.3及后续版本会得到越来越多的设备的支持。

  学习Android有前途么?

  由于Android是近几年才开始起步的,所以有很多朋友在关注华清远见3G Android系统开发课程时,也总是会有这样的疑问。我一直跟带着这种疑问的朋友说,回答这个问题,有几个关键点:第一、这个市场是否足够大(或者能发展到足够大),这点我相信大家对于移动设备的现状有足够的了解,对其未来的发展不会有什么异议;其次是你所从事的领域是否处于上升通道上?身处一个上升的通道,个人只要付出一定的努力,这个行业都会带着你往上走,相反,如果处于一个没落的行业,个人再努力,可能都赶不上整个行业坠落的速度。Android这几年的发展可谓有目共睹,就像前面所说,每天的设备激活数目就达到了50万台;其三,是否有足够多的大公司参与其中,或者是否成就了一些公司。行业的发展,离不开业内大公司的支持,或者,是否有公司在该领域得到了长足的发展。处于这个行业的大公司,除了Google本身外,也成就了一些公司,例如Motorola移动、HTC,前者借Android咸鱼翻身,后者借Android成了市值超越Nokia的公司。行业的发展如此红火,那么作为开发者,是否可以从中获益呢?我们可以从“Android工程师一年经验月薪8000元:http://www.3g-edu.org/news/3G-45.htm”这则新闻来看这个行业的开发者的情况,由此可以看出,这个行业的从业人员现在有多抢手。

  目前国内Android开发行业市场现状如何?

  目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以及游戏开发(放到Android Market或者其他App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。下图是开发者提交的应用和游戏的数目所占的比例图,从中也可以看出应用开发数目远超游戏开发。(数据来源:创新工厂)

  什么样的人可以学Android?相对于其他移动开发平台,因为Android的(应用)开发采用了Java语言,所以,它的学习曲线相对比较平缓。对于那些有一些编程语言(如C/C++/Java等)训练的学生,都可以考虑学习Android应用开发。当然,如果你希望从事Android游戏开发,那么,最好能在高数、离散数学甚至计算机图形学等方面有比较扎实的基础。如果后续想往底层开发如系统移植、驱动开发等方向发展,或者为了更好地理解Android应用架构体系,那么,具备一定的操作系统知识是必要的,当然,并不需要你对操作系统有多精通,而是对其基本原理有一定了解即可。

  如何学习Android开发?

  

  上面是Android的体系架构图,自上而下分别为应用层、应用框架、类库和Alvik运行时环境以及Linux内核。一般来说,我们想从事Android开发,可以从应用开发作为切入点,逐渐熟悉其整个体系,并慢慢往其底层渗透,从而能做到软硬兼备,华清远见3G学院(www.3g-edu.org)的Android系统开发班的课程设置就充分考虑到了这一点,既涉及到应用开发的透彻掌握,又帮助大家在系统开发层面上做好充分的准备。而从学习的路线图上来说,先熟悉Java SE编程,能比较熟练的使用Java语言进行编程,熟悉Java语言语法特点,熟悉Java IO、Java线程、网络编程、XML处理等。另外,因为很多的Android应用在运行时都需要去访问网站服务器,因此,熟悉一种网络编程语言也是必要的。无论是从学习的方便性还是市场占有情况来说,使用JSP/Servlet都是不二的选择,另外,在这个阶段也顺便学习一下SQL语法和熟悉一种SQL数据库,以方便后续Android开发中进行SQLite数据库开发。学习完这些课程后,就可以开始进行Android的应用开发的学习,例如Android中的UI组件、基本组件、数据存储、传感器、图形图像处理、多媒体处理、游戏开发等。为了更好地进行应用编程,可以有选择的对其Lib类库进行分析,以加深对其工作机制的理解。再往下,就是操作系统层级了,这里应该要对Linux操作系统进行学习,熟悉其内核和运行原理,熟悉ARM体系架构以及常用指令,并熟悉驱动的编写方式,掌握其移植方法等。

移动互联网淘金 Android开发职业发展浅析相关推荐

  1. Android开发-创建安卓工程项目+安卓程序的运行

    文章目录 前言 一.为什么学习Android 1.1.什么是Android 1.2.Android的特点 1.3.Android开发的前景 二.Android studio 三.创建安卓工程项目 四. ...

  2. 三维GIS开发的发展路线以及需要掌握的技能

    什么是三维gis? ​ 三维GIS在WebGIS的基础上,增加了对地球表面的第三维度,即高度或深度. 相比于二维层面的WebGIS,三维GIS能够更好的分析和处理地理空间数据,使用准确的三维地理模型可 ...

  3. Android 开发从入门到实战

    第1章 Android开发环境搭建 本章介绍了如何在个人电脑上搭建Android开发环境,主要包括:Android开发的发展历史是怎样的. Android Studio的开发环境是如何搭建的.如何创建 ...

  4. 聊聊 Android 开发的现状和思考

    最近和一些跳槽的 "老 Androd" 闲(mo)聊(yu)后颇有感触,从事 Android 开发这么多年,大家都开始重新思考未来的发展,或多或少都在为职业生涯的"瓶颈& ...

  5. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第一章:Android开发环境搭建

    第 1 章 Android开发环境搭建 本章介绍了如何在个人电脑上搭建Android开发环境,主要包括:Android开发的发展历史是怎样的.Android Studio的开发环境是如何搭建的.如何创 ...

  6. Android移动开发程序员的职业发展之路

    写在前面: 又是一个阴雨的周末,也不知道是不是在江南待的太久的缘故,每逢阴雨的周末,兴奋的连懒觉都睡不了.看着窗外的细雨,回想起这一路走来的点点滴滴,些许感慨!光阴似箭,岁月蹉跎,未来的路在何方,明年 ...

  7. 剖析Android移动开发程序员的职业发展之路

    剖析Android移动开发程序员的职业发展之路 做Android移动开发已经有三年时间,其中甘苦自知,对Android开发和对Android程序员的职业发展有一些自己的感悟,在这里愿与大家分享和讨论. ...

  8. 深度?广度?浅析技术人员的职业发展之路

    深度?广度?浅析技术人员的职业发展之路 发表于2015-08-31 16:19| 6104次阅读| 来源CSDN| 3 条评论| 作者蒲婧 CTOCTO俱乐部CTO讲堂职场管理实践职业发展 width ...

  9. 论创新工场、职业发展、offer如何比较选择、移动互联网(全文完)

    转自:http://bbs.byr.cn/wForum/disparticle.php?boardName=Job&ID=1067453 首先声明:忙,保证持续更新不保证结束时间,估计一周左右 ...

最新文章

  1. 【青少年编程】【四级】用逗号分隔列表
  2. selenium python自动化文件下载_selenium+python自动化79-文件下载(SendKeys)【转载】...
  3. springboot扫描组件_SpringBoot入口类和@SpringBootApplication详解
  4. 进阶学习(3.5) Singleton Pattern 单例模式
  5. IDEA修改module的名字
  6. PostGIS容器运行
  7. linux的基础知识——CS模型流程图
  8. git add 所有修改文件_Git管理修改、撤销和删除文件
  9. java merge_java – OptimisticLockException当使用JPA merge()
  10. Sql Server 的基本增删改查语句
  11. matlab数字图像处理-找不同
  12. 如何基于TwinCAT3实现伺服电机控制(一)
  13. 【MM32F5270开发板试用】+RFID门禁
  14. 阿里云商标注册怎么样?附上申请步骤流程
  15. PCM和G711A(PCMA)声音播放器和采集器
  16. 杭州卧兔全球首发2022海外网红营销白皮书
  17. 深夜一个考研女生:“我焦虑症犯了”
  18. uipath发送邮件 —— Send Outlook Mail Message
  19. 使用volley进行网络请求
  20. 电影在放映前是如何分发到全国各地的影院的?

热门文章

  1. 全球安全资讯和学习站点分享
  2. 70佳精美的 PSD 素材免费下载(上篇)
  3. 2-3-4树对应红黑树的实现,红黑树的融会贯通
  4. Web前端三大主流框架是什么?它们的优点和缺点试什么?
  5. SQLserver 远程过程调用失败
  6. js将当前日期或指定日期转时间戳超详细
  7. 如何使用NFC手机的支付功能
  8. glusterfs+heketi为k8s提供共享存储
  9. mysql数据导入很慢_解决mysql导入数据文件过慢的问题
  10. px4无人机常识介绍(固件,px4等)