英语原文共 336 页,剩余内容已隐藏,支付完成后下载完整资料
第1章:什么是Android?
可以说,一段时间以来,传统的桌面应用程序开发人员已经被宠坏了。这并不是说传统的桌面应用程序开发比其他形式的开发更容易。但是,作为传统的桌面应用程序开发人员,我们有能力创建几乎任何我们能想象到的应用程序。我将自己包括在这个分组中,因为我开始了桌面编程。使桌面编程更易于访问的一个方面是,我们有能力与桌面操作系统进行交互,并与任何底层硬件进行交互,非常自由(或至少只有极少的例外)。然而,这种自主编程的自由从来没有真正用于敢于冒险进入手机开发的黑暗水域的一小撮程序员。
注意
在本次讨论中,我指的是两种不同类型的开发者:传统桌面应用程序开发人员几乎用任何语言工作,其最终产品应用程序都可以在任何Windows操作系统上运行;以及为Android平台开发的Android开发人员,Java开发人员。这不是为了说一个人比其他人更好或更差。相反,这种区分是为了将桌面操作系统环境的开发风格和工具与移动操作系统环境Android进行比较。
嵌入式设备编程简史
很长一段时间,手机开发者组成了一小部分被称为嵌入式设备开发者的开发人员小组。由于嵌入式设备制造商在功能支持方面非常吝啬,因此从桌面到后来的网页开发,嵌入式设备的开发通常是只有硬件和操作系统功能的代名词。嵌入式设备制造商通常需要密切保护他们硬件的秘密,因此他们在为特定设备进行交互时向嵌入式设备开发人员提供了几个库来调用。
嵌入式设备与台式机的不同之处在于嵌入式设备通常是“在芯片上的计算机”。例如,想一下你的标准电视遥控器;它不被认为是真正的技术十分复杂的成果。当按下任何按钮时,芯片将以一种方式解释已经编入设备的信号。这样,设备就能知道输入设备(键盘)会发生什么,以及如何响应这些命令(例如,打开电视机)。这是嵌入式设备编程的一种简单形式。然而,不管你信不信,这些简单的设备肯定与早期的手机设备和开发的根源有关。
大多数嵌入式设备运行(并且在某些情况下仍运行)专用操作系统。选择创建专用操作系统而不是使用任何消费者系统的原因实际上是必需品。简单的设备不需要非常强大和优化的操作系统。
作为设备进化的产物,大约五年前,许多更复杂的嵌入式设备(如早期的PDA,家庭安全系统和GPS)转向了标准化的操作系统平台。诸如Linux之类的小尺寸操作系统,甚至嵌入式Microsoft Windows,在许多嵌入式设备上变得越来越流行。在设备进化的这段时间,手机从其他嵌入式设备分支到自己的路径。当你检查他们的架构时,这种分支很明显。
自从诞生以来,手机一直是附带设备,它们运行在由制造商拥有和控制的专用软件上,这些软件几乎总是被认为是“封闭”系统。制造商使用专有操作系统的做法比任何其他原因都更加重要。也就是说,手机制造商通常使用完全由内部开发的硬件,或者至少是专门为运行手机设备而开发的硬件。因此,没有公开可用的现成软件包或解决方案可以可靠地与其硬件进行交互。由于制造商也希望非常密切地保护他们的硬件商业秘密,其中一些可以通过访问设备的软件级别来揭示,但通常的做法是,并且在大多数情况下仍然是使用完全专用和封闭的软件运行他们的设备。这样做的缺点是,任何想要开发手机应用程序的人都需要深入了解其所运行的专有环境。解决方案是直接从制造商购买昂贵的开发工具。这打击了许多“自制”开发者。
注意
越来越多的自制软件开发者已经开始进行手机应用程序开发。术语“自制”是指这些开发者通常不为手机开发公司工作,并且通常在他们自己的时间生产小型的一次性产品。
另一个更加严重的“必要性”使得手机开发不再是制造商的手中,那就是硬件制造商需要“内存需求”的解决方案。直到最近,手机也没有什么比拨打和接听电话更重要,查找你的联系人,可能发送和接收一些短消息;不是当今技术中的“瑞士军刀”。即使到2002年,带相机的手机在消费者手中也不常见。
到1997年,计算器和游戏等小型应用程序(例如Tetris)悄然进入手机,但主要的功能仍然是电话本身的功能。手机还没有成为他们今天的多用途,多功能的个人工具。还没有人看到互联网浏览,MP3播放或我们习惯使用的众多需求中的任何一种。或许1997年的手机制造商没有充分认识到消费者对于一体机设备的需求。但是,即使存在这种需求,设备内存和存储容量的不足也是很大的障碍。越来越多的人可能希望他们的设备成为一体化工具,但制造商仍然需要爬过内存障碍。
简单地说,这需要内存来存储和运行任何设备上的应用程序,包括手机。直到最近,作为设备的手机没有足够的可用内存,这将阻碍添加“额外”程序。在过去两年内,内存价格已经达到非常低的水平。设备制造商现在有能力以更低的价格提供更多的内存。现在许多手机比90年代中期的普通PC拥有更多的标准内存。所以,现在我们有了这个需求和内存,我们都可以加入并开发适用于全球手机的超酷应用程序,对吧?不完全是。
设备制造商仍然密切保护在其设备上运行的操作系统。尽管有一些设备制造商已经开放,允许一些基于Java的应用在手机的小型环境中运行,但多数设备并不允许这样做。即使一些系统允许Java应用程序运行,但是这些系统也不允许对标准桌面开发人员习惯的“核心”系统进行访问。
打开手机联盟和Android
2007年11月,当谷歌在开放手机联盟下发布Android时,应用程序开发的阻碍开始崩溃。开放手机联盟是包括谷歌,NTT DoCoMo,Sprint Nextel和HTC在内的一些硬件和软件开发商,其目标是创造一个更加开放的手机环境。在联盟下发布的第一款产品就是移动设备操作系统Android。
随着Android的发布,谷歌提供了大量开发工具和教程,用来帮助潜在开发人员加入新系统。帮助文件,平台软件开发工具包(SDK)甚至开发人员社区都可以在谷歌的Android网站http://code.google.com/android上找到。这个网站应该是你的出发点,我强烈建议你访问该网站。
注意
谷歌在推广新的Android操作系统方面甚至举办了了一次价值1000万美元的“寻找新的令人兴奋的Android应用程序”竞赛。
虽然运行Linux,Windows甚至PalmOS的手机很容易找到,但在撰写本文时,并没有宣布任何硬件平台可供Android使用。HTC,LG电子,摩托罗拉和三星是开放手机联盟的成员,Android已经发布,所以我们只能希望他们有在不久的将来能够推出一些基于Android的设备的计划。随着2007年11月发布,该系统本身仍处于软件测试阶段。这对开发人员来说是个好消息,因为它让我们对未来的系统有一个难得的发展前景,并有机会开始开发一旦硬件发布就会运行的应用程序。
注意
这一战略显然赋予了开放手机联盟相对于其他手机操作系统开发商的巨大优势,因为可能有不计其数的应用程序数量立即可以用在第一批运行Android的设备。
Android简介
Android作为一个系统,是一个基于Java的操作系统,运行在Linux 2.6内核上。该系统非常轻巧,功能齐全。图1-1显示了未修改的Android主屏幕。
Android应用程序使用Java开发,可以轻松移植到新平台。如果你还没有下载Java或不确定你需要哪个版本,我将在第2章详细介绍开发环境的安装。Android的其他功能包括加速的3-D图形引擎(基于硬件支持),通过SQLite支持的数据库支持和一个集成的Web浏览器。
如果你熟悉Java编程或者是任何类型的OOP开发人员,那么你可能习惯于编程式用户界面(UI)开发——也就是直接在程序代码中处理的UI布局。Android在识别和允许编程式UI开发的同时,也支持更新的基于XML的UI布局。对于普通桌面开发人员来说,XML UI布局是一个相当新的概念。我将在本书的支持章节中介绍XML UI布局和编程式UI开发。
Android的一个更令人兴奋和引人注目的特性是,由于其体系结构,第三方应用程序(包括那些“本土成长”的应用程序)和被核心系统捆绑在一起的系统优先级相同。这是大多数系统的主要背离,它使嵌入式系统应用程序的执行优先级高于第三方开发人员创建的应用程序可用的线程优先级。另外,每个应用程序都使用非常轻量级的虚拟机在其自己的线程内执行。
除了非常大量的SDK和可供我们开发的格式良好的库之外,Android开发人员最感兴趣的特性是我们现在可以访问任何操作系统可以访问的内容。换句话说,如果你想创建一个拨打电话的应用程序,你可以访问电话的拨号程序;如果你想创建利用手机内部GPS(如果配备)的应用程序,则可以访问该应用程序。现在,开发人员创建动态和有趣的应用程序的潜力已经敞开。
除了Android方面的所有功能之外,谷歌已经引入了一些非常诱人的功能。Android应用程序的开发者将能够将他们的应用程序绑定到现有的谷歌产品中,例如Google Maps和无所不在的Google Search。比如你想编写一个应用程序,该应用程序可以在来电时通过Google地图来知道来电来自哪里,或者你希望能够将常见搜索结果存储在你的联系人中;Android的可能性的大门已经被打开了
第2章开始你的Android开发之旅。你将了解使用特定开发环境或集成开发环境(IDE)的方式和习惯,而且你将下载并安装Java IDE Eclipse。
第2章:下载和安装Eclipse
Android应用程序是用Java开发的。Android本身不是一种语言,而是一种运行应用程序的环境。因此,理论上可以使用你可以随意使用的任何你拥有的分发或集成开发环境(IDE)来开始你的开发。实际上,你可以选择不使用IDE。
贴士
在本书后面的章节中,我将向你介绍如何在不使用IDE的情况下开发Android应用程序——或者“在命令行界面(CLI)中”。虽然本书不包括所有使用此技术的例子,但是你将了解如何在CLI中开发的基础知识。
如果你比其他任何Java IDE更适合使用Java IDE,例如Borland的JBuilder或开放源代码NetBeans,请随时使用它。具有中等水平的经验,你仍应该能够遵循本书中的大多数示例。然而,开放手机联盟和谷歌公司赞同其中一个Java IDE:Eclipse。
注意
如果你选择在不使用Eclipse的情况下遵循本书中的示例,则需要检查IDE的文档以编译和测试Android应用程序。本书中的示例只给出了在Eclipse中编译和测试的说明,使用Eclipse的Android插件。
本章简要概述了下载和安装Eclipse以及所需的Java运行时环境(JRE)的步骤。很多时候,安装指南和教程都会有技术高超的读者阅读,但他们往往会跳过这样的简单步骤。我发现跳过这些较小步骤的文本经常会忽略重要的内容。出于这个原因,我将在本章中讲解包括所有下载和安装步骤。
为什么是Eclipse?
为什么Eclipse是Android应用程序推荐的IDE?这种特殊认可有几个原因:
为了与开放手机联盟真正打开移动开发市场的主题保持一致,Eclipse是目前功能最全面,免费的Java IDE之一。Eclipse也非常易于使用,并且具有最小的学习曲线。这使得Eclipse成为一个非常有吸引力的IDE,用于实现开放的Java开发。
开放手机联盟已经发布了Eclipse的Android插件,允许你创建特定于Android的项目,编译它们,并使用Android Emulator运行和调试它们。当你创建你的第一个Android应用程序时,这些工具和能力将提供很大的帮助。你仍然可以在其他IDE中创建Android应用程序,但Eclipse的Android插件会为你创建某些设置元素(如文件和编译器设置)。Android插件提供的Eclipse帮助为你节省宝贵的开发时间,并大大减少了学习曲线,这意味着你可以花更多时间创建令人难以置信的应用程序。
注意
Eclipse在Mac和Linux上也可以运行。在众多操作系统上拥有更高的可用性意味着几乎任何人都可以在任何计算机上开发Android应用程序。但是,本书中的示例和屏幕截图均来自Eclipse的Microsoft Windows版本。如果你在非Microsoft环境中使用Eclipse,请记住这一点;你的界面可能与屏幕截图略有不同,但整体功能不会改变。如果在Linux下Eclipse的操作发生重大变化,我将列举包含这种变化的一个例子。我将在Linux环境中提供几个示例。这些示例中的大多数将来自Linux/Android命令行环境。
下载并安装JRE
在开始下载和安装Eclipse之前,你必须确保已经下载并安装了Java运行时环境(JRE)。因为Eclipse作为应用程序是用Java编写的,所以它需要JRE来保证运行。如果未安装JRE或未检测到JRE,如果尝试打开Eclipse环境,则会看到错误。
如果你是现有的Java开发人员并且你的计算机上已经安装了Java,那么你仍然需要遵循此处,以确保你安装了正确版本的JRE。
注意
大多数使用Web或基于Web的应用程序的用户都安装了JRE。JRE允许你运行基于Java的应用程序,但它不允许你创建它们。要创建Java应用程序,你需要下载并安装Java D
全文共6561字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[13872],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。