用Eclipse开发Android应用程序.docx
《用Eclipse开发Android应用程序.docx》由会员分享,可在线阅读,更多相关《用Eclipse开发Android应用程序.docx(32页珍藏版)》请在冰豆网上搜索。
用Eclipse开发Android应用程序
用Eclipse开发Android应用程序
GoogleAndroidDevelopmentToolsEclipse插件入门
FrankAbleson,软件设计师
FrankAbleson是新泽西州的一位企业家和软件开发人员,擅长移动和嵌入式应用软件。
他目前正在为ManningPublications撰写一本关于Android应用程序开发的书。
他感兴趣的专业领域是嵌入式系统、无线通信和自动化电子设备。
他最热心的支持者是他的妻子Nikki和他们的孩子。
简介:
Android是Google提供的移动、无线、计算机和通信平台。
通过使用AndroidEclipse插件,可以在强大的Eclipse环境中构建Android应用程序。
本教程介绍如何用Eclipse插件AndroidDevelopmentTools进行Android应用程序开发,包括对Android平台和AndroidDevelopmentTools的介绍,并开发两个示例应用程序。
此外,您还可以通过教程“构建Android手机RSS阅读器:
使用Android处理XML”,了解如何构建一个运行在Android平台上的RSS阅读器。
标记本文!
本教程分为以下几节:
∙Android基础知识和必需的工具
∙AndroidSoftwareDeveloperKit
∙构建和调试SaySomethingAndroid应用程序
∙创建内容提供器和GoogleMaps应用程序
系统需求
Eclipse平台
Eclipse是一个运行插件的平台。
您应该安装EclipseClassic的最新版本(本教程使用V3.3.1)。
AndroidDeveloperTools
按照安装AndroidSDK中的说明安装AndroidDeveloperTools(Eclipse插件)。
源代码
本教程中的源代码片段包括:
∙AndroidManifest.xml(片段)—这个文件是Android应用程序的应用程序部署描述符。
∙IntentReceiver—演示IntentReceiver的实现,这个类处理AndroidManifest.xml文件中IntentFilter标记所公布的intent。
∙SaySomething.java—实现一个Android活动,这是本教程的示例应用程序的主要入口点。
∙Main.xml—这个文件包含Android活动所用的视觉元素或资源。
∙R.java—这个文件是由AndroidDeveloperTools自动生成的,它把视觉资源“连接”到Java源代码。
∙AndroidManifest.xml(完整)—这是完整的AndroidManfest.xml文件,包含每个重要元素的描述。
∙MobileServiceCallContacts.java—这个文件包含的代码显示联系人并对用户输入做出反应,执行GoogleMaps地址查找。
Android简介
在讨论Eclipse插件和开发Android应用程序之前,我们先看看Android的体系结构和一些重要的术语,这会对本教程后面的讨论和您自己构建Android应用程序有帮助。
Android术语
在Eclipse环境中开发Android应用程序需要了解Eclipse环境和Android平台的知识。
了解以下术语会有助于用Eclipse插件开发Android应用程序。
OpenHandsetAlliance
这是一个由Google公司主导的组织,它由许多公共和私人组织组成。
Android
这是OpenHandsetAlliance的主打产品。
它是一种针对移动设备的开放源码操作环境。
模拟器
模拟另一个系统的软件工具—这常常是在个人计算机(IBM®、Mac、Linux®)上运行的一个环境,它模拟另一个环境,比如移动计算设备。
Linux
一种开放源码的操作系统内核,许多计算平台都使用这种操作系统,包括服务器、桌面计算机、网络设备和移动计算设备。
Android在Linux内核上运行。
DalvikVirtualMachine
DalvikVM是Android产品组合中的一种操作环境,它在运行时解释应用程序代码。
DalvikVM与JavaVM相似,但是两者不兼容。
Android基础知识和必需的工具
Android平台被称为一个产品组合,因为它是一系列组件的集合,包括:
∙基于Linux内核的操作系统
∙Java编程环境
∙工具集,包括编译器、资源编译器、调试器和模拟器
∙用来运行应用程序的DalvikVM
Android为什么很重要?
自从Android和最初的SDK发布以来,计算机技术新闻界一直非常关注Android。
Android之所以重要主要有两个原因。
Android是Google进军移动市场的主要行动。
移动应用程序领域竞争激烈,新的竞争者很难涉足。
Google拥有大量资源和强大的品牌实力,有能力涉足任何市场。
Google进军移动市场已经好几年了。
Android原来属于另一家公司,Google通过收购这家公司大大提高了在移动市场上的竞争力。
Google的任何行动都会受到关注,而且引入新平台也很引人注目。
Android同时具备这两个因素。
第二个原因是Android的应用程序模型与众不同。
Android应用程序并不是需要大量单击操作的纯粹的菜单式应用程序。
Android应用程序中确实有菜单和按钮,但是Android在体系结构中引入了一种新颖的设计元素intent。
intent
intent是一种构造,应用程序可以通过它发出请求,这就像是发出求助信号。
intent可能像下面这样:
"Wanted:
Anapplicationtohelpmelookupacontact"或"Wanted:
Anapplicationtohelpmedisplaythisimage"或"Wanted:
Anapplicationtoperformthisgeographic-basedsearch"
应用程序可以按照相似或互补的方式进行注册,表明它们有能力或有兴趣执行各种请求或intent。
比如:
"Available:
Applicationreadyandwillingtopresentcontactrecordsinclear,concisemanner"或"Available:
Applicationreadyandwillingtoperformageographicsearch"
这些是IntentFilter的示例,下面将要讨论。
IntentFilter
应用程序通过一个称为IntentFilter的构造声明它们能够执行某些类型的操作。
IntentFilter可以在运行时进行注册,也可以在AndroidManifest.xml文件中设置。
下面的代码片段取自一个对SMS(文本)消息进行响应的Android应用程序:
清单1.对SMS进行响应的Android应用程序
value="android.provider.Telephony.SMS_RECEIVED"/>
简要介绍intent和IntentFilter之后,下一节介绍Android应用程序的四种主要类型。
Android应用程序—概述
我们来看看Android应用程序的四种主要类型:
活动、服务、接收器和ContentProvider。
我们还要看看显示用户界面(UI)元素的视图。
活动
活动是最常用的Android应用程序形式。
活动在一个称为视图的类的帮助下,为应用程序提供UI。
视图类实现各种UI元素,比如文本框、标签、按钮和计算平台上常见的其他UI元素。
一个应用程序可以包含一个或多个活动。
这些活动通常与应用程序中的屏幕形成一对一关系。
应用程序通过调用startActivity()或startSubActivity()方法从一个活动转移到另一个活动。
如果应用程序只需“切换”到新的活动,就应该使用前一个方法。
如果需要异步的调用/响应模式,就使用后一个方法。
在这两种情况下,都需要通过方法的参数传递一个intent。
由操作系统负责决定哪个活动最适合满足指定的intent。
服务和接收器
与其他多任务计算环境一样,“在后台”运行着一些应用程序,它们执行各种任务。
Android把这种应用程序称为“服务”。
服务是没有UI的Android应用程序。
接收器是一个应用程序组件,它接收请求并处理intent。
与服务一样,接收器在一般情况下也没有UI元素。
接收器通常在AndroidManifest.xml文件中注册。
清单2是接收器代码的示例。
注意,接收器的类属性是负责实现这个接收器的Java类。
清单2.接收器代码
packagecom.msi.samplereceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.IntentReceiver;
publicclassmyreceiverextendsIntentReceiver
{
publicvoidonReceiveIntent(Contextarg0,Intentarg1)
{
//dosomethingwhenthismethodisinvoked.
}
}
用ContentProvider进行数据管理
ContentProvider是Android的数据存储抽象机制。
我们以移动设备上常见的一种数据为例:
地址簿或联系人数据库。
地址簿包含所有联系人及其电话号码,用户在使用手机时可能需要使用这些数据。
ContentProvider对数据存储的访问方法进行抽象。
ContentProvider在许多方面起到数据库服务器的作用。
对数据存储中数据的读写操作应该通过适当的ContentProvider传递,而不是直接访问文件或数据库。
可能还有ContentProvider的“客户机”和“实现”。
下一节介绍Android视图,这是Android在移动设备屏幕上显示UI元素的机制。
视图
Android活动通过视图显示UI元素。
视图采用以下布局设计之一:
LinearVertical
后续的每个元素都排在前一个元素下面,形成一个单一列。
LinearHorizontal
后续的每个元素都排在前一个元素右边,形成一个单一行。
Relative
后续的每个元素相对于前一个元素有一定的偏移量。
Table
与HTML表相似的一系列行和列。
每个单元格可以包含一个视图元素。
选择一种布局(或布局的组合)之后,就可以用各个视图显示UI。
视图元素由大家熟悉的UI元素组成,包括:
∙Button
∙ImageButton
∙EditText
∙TextView(与标签相似)
∙CheckBox
∙RadioButton
∙Gallery和ImageSwitcher(用来显示多个图像)
∙List
∙Grid
∙DatePicker
∙TimePicker
∙Spinner(与组合框相似)
∙AutoComplete(具有文本自动补全特性的EditText)
视图是在一个XML文件中定义的。
清单3给出一个简单的LinearVertical布局示例。
清单3.简单的LinearVertical布局
xmlversion="1.0"encoding="utf-8"?
>
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
>
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text="Activity1!
"
/>
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text="Activity1,secondtextview!
"
/>