Android开发入门之路

Android开发入门之路(初学者必读)

作者:温老师,华清远见3G学院讲师

针对华清远见3G学院(www.3g-edu.org)很多学员在咨询过程中经常会问到的一些问题,我抽时间整理了一下,希望可以对大家在Android开发入门学习的阶段有所帮助,更希望可以帮助更多的朋友进一步了解所学的行业,明确职业发展的方向。

关于Android

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

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?

相对于其他移动开发平台,因为Android的(应用)开发采用了Java语言,所以, 它的学习曲线相对比较平缓。对于那些有一些编程语言(如C/C++/Java等)训练的学生,都可以考虑学习Android应用开发。当然,如果你希望从 事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开发入门之路(续篇)

作者:温老师,华清远见3G学院讲师

上次写了一篇文章,谈了谈《Android开发的入门之路》。在那篇文章中,对Android的市场情况谈了谈自己的看法,也对如何学习Android开发提了一些建议。限于篇幅,上次的文章中,对Android的学习没有做太多的说明,今天就这个话题,结合华清远见的“3G Android系统开发就业班”课程再展开谈谈。

在讨论Android学习之前,我们先来关心一下从上篇文章到现在2个多月近3个月时间内和Android相关的2条重要新闻。

Android行业新动态

最近和Android相关的新闻,从重要性来说,当然就是Android 4(Ice Cream Sandwich)的 发布。在这个全新的平台中,Android不再将手机和平板分成2个分支,而是将其合二为一。这对于开发者来说,无疑是非常有利的。另外,它在沟通和共 享、多媒体支持、网络连接能力、UI组件等方面都有令人兴奋的更新。另外,就是Google终于又宣布Android4将重新开源。

Android开发入门之路
搭载Android 4.0的Galaxy Nexus

Android业内另一件大事,虽然很轰动,但很多人并没有将它跟Android联系起来,那就是Amazon在9月28日推出自己的平板电脑—— Kindle Fire,它是一款基于Android的深度定制的平板电脑。在苹果和乔布斯的光芒掩盖之下,估计很多人对此并不以为然。但是别忘了,这是一家怎么样的公 司:它2010年的收入比Google还多20亿美元,而且,更重要的是,经过多年的发展,他已经建立起了世界上最庞大的网络电影和电视商店以及电子书 库、拥有仅次于苹果的在线音乐商店,并且,它有自己的Android应用程序商店,拥有超过一万款付费应用。现在它推出了自己的硬件,其令人吃惊和骄人的 业绩是,在Kindle Fire发布的第五天,其预定人数已经超过25万!这和iPad 2推出时的情形非常类似,这意味着什么,我想大家应该都能想到——一个类似于苹果的、基于Android的生态系统正在形成,而这对于我们开发者来说,无 疑也是非常有利的。

Android开发入门之路
Amazon Kindle Fire

聊完最近的一些Android市场动态信息,我们进入正题,接着上次的文章谈谈如何学习Android开发

如何做好Android学习前的准备?

如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作、先打下哪些基础呢?

首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习, 如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它。如果没有学过,不妨 也提前学习一下,可以参考清华大学出版社出版的谭浩强老师的《C语言程序设计》,推荐这本书的原因一是它已经经过了多年的考验,应该说还是比较严谨的;其 次就是大部分的高校所开设的C语言使用的教材都是用它作为教材,因此无论是购买还是借阅,都容易找到。另外,华清远见网站上也有一些列C语言教学视频,可以结合来看。

其次,如果你后续有志于游戏方面的开发, 你最好具备一定的数据结构和算法基础知识。虽然现代的高级编程语言中,其类库中已经帮我们实现了大部分的数据结构,一般情况下,我们直接使用即可。但如果 你能对其原理有所了解,当你需要在这些数据结构和算法中间的时候,你可以能更加的清楚到底应该选择那个数据结构或者算法。另外,在图形图像处理上面,线性 代数的作用也非常重要,如果能掌握一点这方面的基础知识,无疑也会在后续的学习中如虎添翼。举个例子,在Android中,有一个用于图形变换的类Matrix,用起来稍有点难。其实它的理论基础就是线性代数中的矩阵,如果你了解矩阵的基本算法,这个类的使用可以说就易如反掌了。

第三,因为Android的应用的开发语言用的是Java语言,并且在Android中也用到了Java核心类库的大量的类,因此,在学习 Android开发之前,可以先把Java基本语法和Java SE的基础类库好好学习一下,例如:Java中的IO、网络、线程、List、Map、Tree等数据结构。现在的大学里也有不少的院系开设了Java课 程,教材和图书也非常丰富,如果你所在的院系没有开设,也可以从其他开设了这个专业的院系同学那里借阅一下,并认真完成他们所布置的作业,争取自己能动手 编写出一些简单的Java应用。如果自己购买图书,可以购买《Java核心技术,卷1(原书第8版)》这本图书来学习。

第四,因为在Android中,会用到数据库来存储数据,因此,也可以提前对数据库知识做相关的储备。在Android所使用的SQLite中,其 语法是遵循标准的SQL-92语法的(当然和企业级数据库如Oracle等比较,功能上要弱很多),有条件的话,最好也能安装一个数据库来进行实际的操 作。从易用性和资料完备性来说,建议大家使用Microsoft SQL Server或者MySQL就可以了。它们都是我们学习数据库的好平台。另外,如果曾经学习过数据库原理或者关系代数,那么,在学习数据库的过程中,也可 以再好好地复习一下这些基础知识,对我们理解数据库大有裨益。

Android开发学习方法

最后,我们结合华清远见“3G Android系统开发班课程体系”来谈谈Android开发的学习方法。

Android开发入门之路

Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大。因此,一个好的学习方法对我们学习 Android开发很重要。在此建议各位同学采取循序渐进、将大目标分解成多个小目标,逐步达成对Android开发的全面掌握。例如,可以先从 Android的应用开发开始,等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码,然后再渐渐往下去了解Android的JNI、Libraries、Dalvik虚拟机、HAL层、硬件驱动、Linux内核、 ARM技术体系架构等,虽然近期Intel宣称要让Intel芯片支持Android系统,但在可预见的时期内,在移动设备上,ARM的优势应该还是不可 撼动的。具体来说,可以先通过在开发板上构建一个自己的Android系统,了解Android系统的整体架构和启动过程,由此先对Android有一个 初步的了解;接下来,学习Android的应用开发,在这里可以先学习Android的几个主要组件、UI组件,先对Android应用开发有一个感性认 识。在能够熟练搭建用户界面后,再逐渐来丰富应用的功能,例如:加上事件处理,使其能够和用户互动;加上数据存储功能;加上联网功能等等。在学完应用后, 在此基础上来学习游戏编程,先了解游戏设计的基本思路,然后开始从小的游戏、小的模块开始做起,到最后能完成一个类似于现在热门的《捕鱼达人》这样的游 戏。在掌握了这些应用层级的内容后,可以去了解如何在Android应用中通过JNI去调用C/C++的接口,再往下学习Linux的内核和驱动开发如字 符设备驱动、Flash设备驱动、网络设备驱动等等;再在此基础上,去学习Android驱动开发、HAL(硬件抽象层)开发、 ARM体系架构和指令等等内容,这样,Android开发的整个体系就都贯穿起来了。当然,因为时间有限,而底层部分的内容比较庞杂,因此,在真正去做这 部分工作之前,我们只需要对其基本原理有所了解,做好相关知识的储备,能够根据老师的指导来完成相关的实验。这样在后续的工作中,就可以方便的往这方面发 展,让自己的事业更上一层楼。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值