华清远见教研总监,作者:温尚书。资深讲师
题目为《Android开发的入门之路》那篇文章中,之前曾经写过一篇文章。对于Android市场情况谈了谈自己的看法,也对如何学习Android开发提了一些建议。限于篇幅,上次的文章中,对Android具体学习过程和相关经验没有做太多的说明,今天就这个话题,结合华清远见3G学院(www.3g-edu.org3GAndroid系统开发班”就业培训课程再展开谈谈,希望能够给更多朋友以协助和建议,欢迎拍砖。
先来关心一下从上篇文章到现在2个多月近3个月时间内和Android相关的2条重要新闻。讨论Android学习之前。

A ndroid行业新动态
从重要性来说,最近和Android相关的新闻。当然就是Android4IceCreamSandwich发布。这个全新的平台中,Android不再将手机和平板分成2个分支,而是将其合二为一。这对于开发者来说,无疑是非常有利的同时这也充分说明了移动开发领域的发展趋势和日益广阔的应用领域。另外,沟通和共享、多媒体支持、网络连接能力、UI组件等方面都有令人兴奋的更新。另外,就是Googl终于又宣布Android4将重新开源。
搭载Android4.0GalaxiNexus
虽然很轰动,A ndroid业内另一件大事。但很多人并没有将它跟Android联系起来,那就是Amazon9月28日推出自己的平板电脑—KindlFire一款基于Android深度定制的平板电脑。苹果和乔布斯的光芒掩盖之下,估计很多人对此并不以为然。但是别忘了这是一家怎么样的公司:2010年的收入比Googl还多20亿美元,而且,更重要的经过多年的发展,已经建立起了世界上最庞大的网络电影和电视商店以及电子书库、拥有仅次于苹果的线音乐商店,并且,有自己的Android应用顺序商店,拥有超越一万款付费应用。现在推出了自己的硬件,其令人惊讶和骄人的业绩是KindlFire发布的第五天,其预定人数已经超越25万!这和iPad2推出时的情形非常类似,这意味着什么,想大家应该都能想到一个类似于苹果的基于Android生态系统正在形成,而这对于我开发者来说,无疑也是非常有利的

A mazonKindlFire
进入正题,聊完最近的一些Android市场动态信息。接着上次的文章谈谈如何学习Android开发。
如何做好Android学习前的准备?
那么,如果你已经确定了学习Android目标。应该提前做好哪些工作、先打下哪些基础呢?
最好先熟悉一门编程语言,首先。现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它如果没有学过,无妨也提前学习一下,可以参考清华大学出版社出版的谭浩强老师的C语言顺序设计》推荐这本书的原因,一是已经经过了多年的考验,应该说还是比拟严谨的其次就是大部分的高校所开设的C语言使用的教材都是用它作为教材,因此无论是购买还是借阅,都容易找到另外,华清远见网站上也有一些这方面的教学视频(http://www.embedu.org/courses/basic.htm可以结合来看。
如果你后续有志于游戏方面的开发,其次。最好具备一定的数据结构和算法基础知识。这一点是华清远见的讲台上,给学员们坚持强调的虽然现代的高级编程语言中,其类库中已经帮我实现了大部分的数据结构,一般情况下,直接使用即可。但如果你能对其原理有所了解,当你需要在这些数据结构和算法中间的时候,可以能更加的清楚到底应该选择那个数据结构或者算法。另外,图形图像处置上面,线性代数的作用也非常重要,如果能掌握一点这方面的基础知识,无疑也会在后续的学习中如虎添翼。举个例子,Android中,有一个用于图形变换的类Matrix用起来稍有点难。其实它理论基础就是线性代数中的矩阵,如果你解矩阵的基本算法,这个类的使用可以说就易如反掌了
因为Android应用的开发语言用的Java语言,并且在Android中也用到Java核心类库的大量的类,因此,学习Android开发之前,可以先把Java基本语法和JavaSE基础类库好好学习一下,例如:Java中的IO网络、线程、ListMapTree等数据结构。现在大学里也有不少的院系开设了Java课程,教材和图书也非常丰富,如果你所在院系没有开设,也可以从其他开设了这个专业的院系同学那里借阅一下,并认真完成他所布置的作业,争取自己能动手编写出一些简单的Java应用。如果自己购买图书,可以购买《Java核心技术,第三。卷1原书第8版)这本图书来学习。
因为在Android中,第四。会用到数据库来存储数据,因此,也可以提前对数据库知识做相关的储藏。Android所使用的SQLite中,其语法是遵循规范的SQL-92语法的当然和企业级数据库如Oracl等比较,功能上要弱很多)有条件的话,最好也能装置一个数据库来进行实际的操作。从易用性和资料完备性来说,建议大家使用MicrosoftSQLServer或者MySQL就可以了都是学习数据库的好平台。另外,如果曾经学习过数据库原理或者关系代数,那么,学习数据库的过程中,也可以再好好地复习一下这些基础知识,对我理解数据库大有裨益。
A ndroid开发学习方法
结合华清远见3G学院(www.3g-edu.org3GAndroid系统开发就业培训班课程体系”来谈谈Android开发的学习方法。最后。

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