`
bk_lin
  • 浏览: 323039 次
社区版块
存档分类
最新评论

Android开发从入门到精通(4)

阅读更多

第四章 浏览Android SDK

浏览Android SDK - 第四章(1

关键技能和观念 
—使用Android SDK文档 
—使用Android 工具 
—使用sample应用程序 
—学习Android程序的生命周期 
    现在,你已经建立了开发环境,准备去浏览Android SDK了,它包含了很多的文件和特别的工具,可以帮助你设计并开发运行在Android平台上的应用程序。这些工具设计的非常的好,而且可以帮助你制作一些难以置信的应用程序。在开始编程之前你真的需要熟悉Android SDK和它所带的工具。 

Android SDK还包含了一些可以让应用程序进入Android特性的库,比如和电话功能关联的(呼出和接电话),GPS功能,和短消息。这些库组成了SDK的核心而且会是你经常会使用到的,所以,有一些时间来学习所有关于核心的库。 
    这一章包括了所有这些在Android SDK重要的条款,在本章的结尾,在你自己熟悉了Android SDK内容之后,你会足够舒适的开始写你的应用程序。总之,任何的事物都是这样,在你开始练习之前,你必须熟悉这些内容和指示。 

注意: 
我不会去介绍Android SDK的每一个细节,谷歌已经在SDK内做了非常好的文档。为了避开花费不必要的时间来讨论如何工作,我已经尽量少的做一些简要的说明。我只是会讨论一些重要的话题和条款,然后按照你自己的步伐去探索更深的层次。

Android SDK是什么 第四章(2  

 

Android SDK下载后会是一个简单的ZIP文件压缩包。Android SDK的主体是一些文件,连续性的文档,可编程的API,工具,例子和其它。本部分详细的说明这个Android SDK到底有些什么。

    提示:

第三章建议你解压缩Android SDK到程序文件的文件夹,所以容易被找到。如果你找不到SDK,因为你使用解压缩的缺省设定,应当在下面的文件夹/%downloadfolder%/android-sdk_m5-rc14_windows/android-sdk_m5-rc14_windows.(译者注:根据下载的文件名不同,这个文件夹也会不同哦).

    找到解压后的Android SDK的文件夹,然后可以在文件夹内浏览。在根目录会有几个文件,像android.jar(一个编译过的,包含核心SDK库和api的Java应用程序)并且一些发布笔记,剩下的Android SDK被分成3个主要的文件夹:

● Docs 包括所有的Android文档

注意:

这些文档同样也可以在Android开发网站上找到 http://code.google.com/android .

● Samples 可以在Eclipse内编译和测试的6个应用程序例子

● Tools 包含所有在开发过程中需要的开发和调试工具

下面的部分会讨论更多关于在每一个文件夹内的内容。每一个API示例被编译过并且可插入至Android。在后续学习如何在windows和Linux中使用命令行选项创建和编译应用程序的章节中会讨论更多的工具。

Android 文档 第四章(3

 

   Android文档被放在Android SDK内的Docs的文件夹内。文档内提供了如何下载和安装SDK的每一个步骤,“Getting Started”开发应用程序的快速步骤和软件包定义。文档是HTML格式并且有一个documentation.html在SDK的根目录可以进入整个文档。下面的插图(略)就是Android SDK文档的主页。

    你可以从documentation.html上提供的链接导航到Android SDK内包含的文档。

注意:

当你浏览Android SDK时,你可能想到一些页面是一些错误的链接或者丢失了。因为当你点击某些链接时,屏幕右边可能会显示空白,不过,如果你再往下滚动页面你将会明白页面只是没有被排列好。

    在这个Android SDK内,我已经发现有一些部分比其他的部分更重要。对于我来说最重要的Android SDK文档如下(它们会出现在导航条上): 
● Reference Information 
● Class Index 
● List of Permissions 
● List of Resource Types 
● FAQs 
● Troubleshooting 
    当你开始开发,Troubleshooting 文档的分类部分将会特别有作用。当你深入本书并且开始开发你自己的应用程序,你会发现文档的Reference Information 部分会更有帮组。例如,List of Permissions 分类部分将会非常的有帮助,当你跟着本书创建更复杂的应用程序时。虽然这个现在对你用处不大。花些时间熟悉一下Android文档吧。

Android示例 第四章(4

Android示例在SDK/SAMPLES内,包含了6个示例可以很好的描述Android的一些功能: 
● API Demos 
● Hello, Activity! 
● Lunar Lander 
● Note Pad 
● Skeleton App 
● Snake

    这些示例由谷歌提供来给你一个快速的印象,那就是如何快速的开发Android的应用程序。每一个应用程序描述Android不同功能的一块。你可以用Eclipse打开并且运行这些应用程序。下面是对于每一个示例的简要描述。

API Demos 
这个API示例应用程序说明在一个单独的Activity内如何展示多个API功能的示例。

提示:

一个Activity是一个Android的应用程序。Activities会在后续的章节中深入展开。

如下图(略)所示的,这个API示例应用程序包括了很多的,小的不同的Android功能的例子。这些例子包含3-D图形变换,列表,过程对话框和一个手指-画图示例。

运行API样本示例应用程序

使用Eclipse,装载API示例应用现场作为一个Android项目。要做到这个,在Eclipse菜单选择文件|新建|项目,一个新的Android项目向导会启动。现在不用担心向导页面上的一些选项。只是选择从现有的项目中创建项目就好了,并且浏览到API示例所在的目录,点击这个示例。当项目装载好了,选择运行,在Android模拟器中来查看。用你自己的方式去查看超过40个示例吧,使用每一个示例去熟悉这些术语和功能。

Android的几个示例 第四章(5

Hello, Activity应用程序,是一个简单的Hello World!风格的应用程序。虽然设计简单,但是它展示了平台的能力。在下一章,你会创建自己的Hello World风格的程序。

Lunar Lander月球登陆 
Lunar Lander, 是一个在Android模拟器上玩的游戏。这个游戏一个2-D的游戏在Android上工作是多么的简单。控制非常的简单,而且游戏不是非常的复杂。总之,对游戏开发来说是一个良好的开始。

月球登陆执行一个简单控制方案(上,下,左,右)。游戏同时显示相关的非固定的图形并且对平台来说,令人印象深刻。复杂游戏的理论如冲突检出是以一个简单的方式使用的。虽然本书没有包含Android平台游戏编程的内容,加入你有兴趣来做这个,你或许可以从月球登陆中获得某些启发。

Note Pad写字板 
Note Pad, 允许你打开,创建并且编辑小的笔记。写字板不是一个全功能的字符编辑器,所以不要期待是和Windows Mobile中word的竞争对手。但是,作为一个演示工具,使用非常少的代码就能实现这个效果已经非常的棒了。

Skeleton App框架应用 
Skeleton App, 这是一个基本的程序展示了几个不同的应用程序的功能。如字体,按钮,图形和表格。如果你想自己运行Skeleton App,真的不应当把它排除在外,参考Skelete App,它会提供不少关于如何执行特定的条款。

Snake 蛇

最后一个在Android SDK的示例就是这个蛇了。这是一个小的SNAFU风格游戏,比月球登陆复杂。

注意:

如果你打开每一个示例应用程序的文件夹,你会看到一个文件夹命名为src。这个是给出示例源代码的文件夹。你可以为其他任何的应用程序来查看,编辑并且重新编译这些代码。利用这些源代码来学一些Android平台技巧和提示。

Android工具 第四章(6

Android SDK提供给开发者一系列功能强大并且有用的工具。在本书内,你会直接使用它们。本部分对其中的一些工具做一个快速的查看,而在后续的章节中会更加深入的进行,那就是在命令行开发中。

注意:

对于Android SDK中包含的更多的工具,请查看Android文档。

emulator.exe

Android SDk中一个最重要的工具就是这个emulator.exe。emulator.exe启动Android模拟器。Android模拟器被用来在一个假的Android环境中运行你的应用程序。在本书写作时,还没有发布Android平台可用的硬件,emulator.exe将会是唯一的方法作为测试应用程序的平台。

    你可以从Eclipse或者命令行中来运行emulator.exe。在本书中,通常会使用Eclipse启动Android模拟器环境。总之,为了给你所有信息关于在Eclipse之外用Android SDK编程。在第六章里会介绍emulator.exe的命令行使用来创建Hello World应用程序。

    当使用Android模拟器来测试你的应用程序,有两个选择可以导航到用户界面。第一,带按钮的模拟器。你可以使用这些导航按钮来导航Android和任何的你为这个平台开发的应用程序。

提示:

电源 On/Off,声音的大小按钮被隐藏在虚拟设备的旁边。当你用鼠标移过它们时,会被自动识别。

很多的高端手机现在都包含了触摸屏,第二个输入选项就是这个模拟的触摸屏。使用你的鼠标作为一个尖笔。模拟器屏幕上的对象可以相应鼠标的动作。

adb.exe 
当你使用命令行编辑器时另外一个工具会变得非常的有用,它就是Android 调试桥,或者adb.exe。这个工具允许你发出命令到模拟器工具。当你在命令行环境下工作时,这个adb工具允许你做下列工作。

● 开始并且停止服务 
● 安装和卸载应用程序 
● 移动文件至模拟器或者从那里移动 
MKSDCARD.exe

MKSDCARD.exe 是一个非常有用的工具,当你测试一个应用程序,而这个程序需要读取或者写入文件到一个插入到移动设备的SD储存卡中。MKSDCARD.exe在你的驱动器中创建一个小的驱动并且会保留测试文件。然后模拟器会把这个小的部分当成一个SD储存卡。

DX.exe 
DX.exe 是Android SDK的编译器。当运行你的Java文件,DX.exe将创建一个带有.dex后缀—Dalvik可执行格式的文件。这些会被Android设备正确的理解和运行。

注意:

Android可执行文件是叫做Dalvik可执行文件,Dalvik虚拟机器以自己脉络来运行每一个应用程序,而且程序的优先权和Android核心程序一致。

activityCreator(.bat 或者 .pn)

activityCreator 是一个简单的命令行工具被用来设定基本的开发环境。当从命令行运行时,activityCreator将设置一个需要的基本Android应用程序所需的壳文件。有了这些壳文件是非常有用的,特别是你不使用Eclipse。当你创建一个新项目时,Android plugin for Eclipse 通过呼叫activityCreator来设置这些壳文件。依据你运行的是哪一种环境类型,你会看到不同的activityCreator的脚本文件。如果你使用Windows环境,这个就会是.bat文件,否则就是python(.pn)脚本。简单的执行这些脚本,就会依次的使用正确的参数来呼叫真正的activityCreator过程。

Android APIs - 第四章(7

    APIs或者叫做应用程序编程接口,是Android SDK的核心。一个API是应用程序开发者在特定平台上创建程序的功能,方法,属性,类别和库的集合。Android API包含所有你创建与Android为基础程序交互的特定信息。

    Android SDk同样包含2套api,—谷歌的API和可选的API.后续的章节中将重点放在这些API上,因为你将利用它们写程序。现在,让我们快速的说明一下它们包含哪些你熟悉的使用。

谷歌 api 

    谷歌API含在Android SDK中并且包含编程参考允许你绑定你的程序到现有的谷歌服务中。假如你写一个应用程序允许你的用户通过你的程序进入到谷歌提供的服务中,你需要包含谷歌的API.

    找到android.jar文件,谷歌的API包含在com.google.*包装中。只有很少的包含了谷歌的API.一些包装随着API一起发布包含了图形,移动性,联系人和日历等工具。总之,我们会把本书中把重点放在谷歌地图上。

    使用com.google.android.maps包装,这个包含了谷歌的地图,你可以创建一个应用程序无缝的和熟悉的谷歌地图界面对接。这个包装打开了一个等待着被开发的整个有用的应用程序世界。

    谷歌api还包含了一套有用的包装,来允许你利用由Jabber开放源码社区开发的最新的Extensible Messaging和Presence Protocl(XMPP)。使用XMPP,应用程序可以快速知道户主在场或者是否可用(从信息和通信中)。如果你要利用电话的短信功能来创建一个聊天类的程序,这个处理XMPP的API是非常有用的。

可选的api

    Android SDK包含了一些可选的api,它包括了一些标准Android api未包含的内容。说它们是可选的api意味着这些功能在手持设备上可能出现也可能不出现。也就是说一些为Android平台创建的设备可能包含升级或者一些特性而其他的没有。当利用在你的应用程序中利用这些可选的API时,包含了你的编程选项。

    其中的一个可选特性(本书的后面会使用)就叫做电话基础的GPS.Android LBS(位置基础的服务)api需要接受并利用设备上GPS单元的信息。如果结合Android LBS api和谷歌地图api,你或许有一个非常有用的应用程序会实时的显示你的位置。

其它可选的api包含利用蓝牙,Wi-Fi,播放MP3,进入并激活3-D-OpenGL硬件等。

应用程序生命周期 - 第四章(8)

    如果你有相当好的编程经验的话,你对应用程序的生命周期这一概念应该熟悉。一个应用程序的生命周期,由一些应用程序由开始执行到终止的步骤组成。每一个应用程序,不管是哪一种语言所写,都有一定的生命周期。Android应用程序也没有例外。本部分会仔细对比ASP应用程序和Android的应用程序的生命周期。

标准ASP程序应用程序生命周期

    标准ASP应用程序的生命周期和一个Android的程序生命周期非常的类似。ASP应用程序从开始到结束有5个步骤。这些步骤对所有的ASP程序是一致的。并且界定了ASP程序是什么。这些步骤按照次序如下:
1. Application_Start(程序开始)
2. Event(事件)
3. HTTPApplication.Init
4. Disposal
5. Application_End
提示:

有些ASP的参考材料考虑Disposal和Application_End在生命周期中成为一个步骤。但是,Disposal呼叫可以到达Application_End之前被打断。这个可以允许程序在真正结束之前执行特定的功能。 

    当应用程序被从服务器要求执行,开始呼叫Application_Start。这个过程依次的通向过程处理。当所有相关的应用程序模块被装载,HTTPApplicaation.Init被呼叫。程序执行事件,并且当用户试图去关闭它,Dispose被呼叫。Dispose然后转移过程到Application_End过程,来关闭程序。

    这是一个相当标准的应用程序生命周期。大多数的程序是这个生命周期:一个应用程序被创建,装载,拥有事件,并且被关闭。下面说明和Android应用程序生命周期的对比。

    Android应用程序生命周期是唯一一个系统控制多的应用程序生命周期。所有的Android应用程序,或者Actiities都运行在自有的过程中。所用的运行过程都被Android观察,并且取决于活动是如何运行的(就是说,一个前台活动,一个后台活动)Android可能选择去结束一个消耗系统资源的活动。

注意:

当决定是否关闭一个活动时,Android会考虑一些因素,如用户输入,内存使用和过程时间。一个Android或者的生命周期以一些特定的方式被称呼:

● onCreate
● onStart
● Process-specific events (for example: launching activities or accessing a database)
● onStop
● onDestroy

与其它程序的逻辑一样,一个Android应用程序被创建,过程开始,事件被执行,过程停止,并且应用程序结束。虽然有一些不同,很多的程序开发者应该不会对这样的生命周期感到别扭。

问专家:
Q: 谷歌会升级Android SDK吗?

A:是的。从我开始写这本书的时候,谷歌已经升级了Android SDK很多次了.谷歌会在Android的网站上发布最新的版本。
Q: 会有任何API试用版出现在最终产品中吗?
A: 或许不会。API试用版创建出来是为了炫耀产品能力的。虽然它们可能是核心解除的包含一些在API试用版里元素的应用程序,我们应该看不到月球登陆这个游戏出现在最终产品中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics