value="android.provider.Telephony.SMS_RECEIVED"/>
简要介绍intent和IntentFilter之后,下一节介绍Android应用程序的四种主要类型。
来迎接新的AndroidSDK!
我们刚刚发布了Android1.0SDK!
如果你现在正在用旧版的SDK,那你可能需要做一些工作升级你的开发环境并对你的应用程序做些调整以适应新的Android平台.
请阅读升级指南和API变化一览来了解更多信息.
如果你想了解详细的不同,请阅读API差异分析报告.
Android平台是一个移动设备专用的软件堆,包括一个操作系统,中间件以及大量关键应用.开发者能建立大量应用程序通过AndroidSDK平台。
应用程序使用Java程序语言编写并且在Dalvik上运转,Dalvik是一个运行在Linux内核之上专门供嵌入使用的虚拟机。
如果你想要知道怎样开发Android的应用程序,你找对地方了。
Androidin开发论坛专门提供多种文档来帮助你学习Android和开发基于该平台的移动应用程序。
现在AndroidSDK1.0版本已经正式推出.它包括源码框架,实例工程,开发工具,模拟器,当然还包括你所需要的开发Android应用的全部库文件。
特性
∙应用程序框架支持组件的重用与替换
∙Dalvik虚拟机专为移动设备优化
∙集成的浏览器基于开源的WebKit引擎
∙优化的图形库包括定制的2D图形库,3D图形库基于OpenGLES1.0(硬件加速可选)
∙SQLite用作结构化的数据存储
∙多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
∙GSM电话技术(依赖于硬件)
∙蓝牙Bluetooth,EDGE,3G,和WiFi(依赖于硬件)
∙照相机,GPS,指南针,和加速度计(accelerometer)(依赖于硬件)
∙丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
Android架构
下图显示的是Android操作系统的主要组件。
每一部分将会在下面具体描述。
应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是使用JAVA语言编写的。
应用程序框架
开发人员也可以完全访问核心应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。
同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括;
∙丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。
∙内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据
∙资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。
∙通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。
∙活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考如何编写一个Android应用程序.
程序库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。
它们通过Android应用程序框架为开发者提供服务。
以下是一些核心库:
∙系统C库-一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。
∙媒体库-基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
∙SurfaceManager-对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
∙LibWebCore-一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
∙SGL-底层的2D图形引擎
∙3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
∙FreeType-位图(bitmap)和矢量(vector)字体显示。
∙SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
Android运行库
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。
Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。
同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。
Linux内核也同时作为硬件和软件栈之间的抽象层。
Android安装以及Eclipse插件
2008-12-0716:
36
SDK安装首先到到
下载SDK的压缩包,直接解压到你需要的目录里。
里面的Emulator是一个智能手机模拟器。
然后是安装Eclipse的开发插件。
1)在Eclipse的菜单里选择SoftwareUpdates>FindandInstall...
2)在随后出现的窗口里选Searchfornewfeaturestoinstall,然后“下一步”
3)点NewRemoteSite
4)在这里随便给这个远程地址输入一个名字(比如GoogleAndroid),在下面输入网址https:
//dl-
5)在随后结果窗口中,选择AndroidPlugin>EclipseIntegration>AndroidDevelopmentTools,然后“下一步”
6)接受license后再“下一步”,然后“完成”
7)然后点InstallAll,安装完后重启Eclipse
8)重新启动Eclipse后,在Window>Preferences...,选择Android面板,然后后点Browse...把输入SDK的路径就完成了。
调试配置:
Eclipse
1.选择RUN
2.OpenRunDialog
3.选择AndroidApplication
4.New(上面的小白纸).
看我的文档
然后你按照api说的配置run,然后就可以运行了,我运行的界面,在Android中的浏览器中搜索博客园的图片,
用Eclipse开发Android应用程序
GoogleAndroidDevelopmentToolsEclipse插件入门
第 3 页,共 11 页
文档选项
打印本页
样例代码
对本教程的评价
帮助我们改进这些内容
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!
"
/>