本章主要是建立对Android的一个直观认识。
1.1 Android 是什么
Android一词的本义指“机器人”,在此是指美国搜索引擎公司Google在2007年11月5日公布的基于Linux平台的开源智能手机操作系统名称。该平台由操作系统、中间件和应用程序组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用了软件栈(software stack)的架构,底层以Linux核心为基础,只提供基本功能,其他的应用软件则由各公司自行开发。另外,为了推广此技术,Google和其它几十个手机领军公司建立了开放手机联盟(Open Handset Alliance)。
需要说明的是:Android不开放中间件源码。除此以外,它开放了移动电话开发所需的所有软件。
Android的系统框架见第一章中的“系统框架”一节。
1.2 Android 可能的不足
基于Android平台开发应用软件应该是一件轻松、愉快的事情。但是,选择Android平台存在以下问题:
1. 不开放中间件的源码
Google目前只开放了SDK,即应用软件的开发接口,没有开放中间件的源代码。
在没有源代码的情况下,也可以把Android移植到兼容的开发板(CPU核采用ARMv5指令集)上,但因为不能定制而无法将其用于实际产品。Google现在没有明确什么时候发布中间件的源代码。其实Google也没有明确说过将发布中间件的源代码。Google说Android是“the first complete, open, and free mobile platform”。在英文中“free”既可以解释成“自由”,也可以解释成“免费”。如何解释完全在于Google。我觉得Google最想抓住的是 应用软件的开发者,即希望公司和个人都学习它的SDK,为它的平台开发应用软件。Google肯定会和厂家合作,开发支持Android平台的手机。但 Google是否会在网络上完全开放中间件代码,还是个未知数。如果Google完全开放这个平台,那么与J2ME类似,各公司肯定会在这个平台上添加自己的扩展,使各平台不能完全兼容。所以,Google很可能用商业手段来保证Android平台的一致性。
2. Android的设计很漂亮,但是否实用还有待实践检验。
3. Java速度的限制
Android使用Java既可以利用Java的平台无关性,又可以降低应用软件的开发难度。但无论怎么优化,Java程序的速度是肯定不如原生代码的。Google的Mash-up的思想虽然不算新颖,但在嵌入式环境中投入实用,也是一个新的尝试。设计总有取舍,Google的选择是否合理,还需要实践检验。
1.3 Android 用什么语言开发的
Android的中间件以下(包括内核和驱动)采用C语言开发;
Android的SDK采用Java开发;
1.4 Android 支持哪些开发环境
1. Eclipse IDE
Eclipse 3.3 (Europa), 3.4 (Ganymede)
Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers
Eclipse JDT plugin (included in most Eclipse IDE packages)
Eclipse Classic IDE package is not supported.
JDK 5 or JDK 6 (JRE alone is not sufficient)
Android Development Tools plugin (optional)
Not compatible with Gnu Compiler for Java (gcj)
2. Other development environments or IDEs
JDK 5 or JDK 6 (JRE alone is not sufficient) ;
Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows ;
Not compatible with Gnu Compiler for Java (gcj) ;
1.5 Android 模拟器是用什么开发的?
Android的核心是Java虚拟机,为了高效,目前来看,google是不会支持其它语言的开发的。不过,android的模拟器是用qeum 开发的,它的镜像文件分成4部分放在tools目录下,如果我们将qeum修改一下,说不定能玩一下它的linux系统。
1.6 怎么进行Android 开发?
Android支持在模拟器上运行和调试应用软件,有兴趣的朋友可以下载他的SDK(software development kit)来了解android的界面;然后应该学习android的基本框架和应用程序的构成;最后就可以试着在sdk的API Demo的基础上开发自己的application了。
希望刚刚了解软件开发的朋友不要着急,一步一个脚印,一定会茁壮成长,开发优秀的application的。
1.7 有哪些好的网络资源可供Android 学习者用的呢?
首先,最好的最基本的学习资料无疑是SDK的文档了,它循序渐进的介绍了Android的各个方面:http://androidappdocs.appspot.com/sdk/index.html
其次,大家可能有对android文档不太理解的地方,或者自己的想法等等,完全可以通过下面的groups进行咨询和交流:
Ø Android Beginner http://groups.google.com/group/android-beginners?lnk =
Ø Developper Groups http://groups.google.com/group/android-developers
Ø Android Internals http://groups.google.com/group/android-internals?lnk =
Ø Android Porting http://groups.google.com/group/android-porting?lnk =
最后,就是一些推荐书籍了:
《新版Android开发教程+笔记》:提供入门;
《从入门到精通》:IBM android技术文档;
《Google Android开发入门与实践》
《Google Android SDK开发范例大全》
《Professional Android Application Development》:据说包含部分驱动介绍;
1.8 除了Android外,还有哪些常见的Linux手机平台?
较常见的Linux手机平台有:Maemo、Android、LIMO、OpenMOKO、GPE^2、ALP和QTopia Phone Edition。有兴趣的可以网上搜索下相关资料。