Android 入门开发指南之五—分析应用程序

  Android 应用程序有四个构建模块:
·          实体
·          意图接收机
·          服务
·          内容提供器
不是每一个应用程序都需要这四个模块,你的应用程序需要器中一个或者几个的组合。
一旦你决定你的应用使用的组件,你应当把它们列在名为 AndroidManifest.xml 的文件中。这是一个定义你的应用使用组件以及它们的性能和要求的 XML 文件。完整细节请参考 Android 注册文件部分的文档
实体
实体是最常用的四个 Android 创建模块之一。一个实体就是一个应用程序的界面。每一个实体基类的派生类都可以作为你个单独的类执行,你的类将会显示一个由视图和响应时间组成的用户界面。很多应用程序包含大量的界面。例如,你个短消息应用程序可能有一个显示发送消息联系人列表,第二个界面就是写消息的界面,其它还有读消息界面和改变设置的界面。每一个界面都是作为一个实体来执行的。在某些例子中,一个实体可能返回一个值到前一个实体-例如一个实体让用户选择一张相片并且返回选定的相片给调用者。
当打开一个新的界面,前一个界面暂停并且存入历史栈中。用户向后浏览可以代开历史栈中的前一个界面。当它没有必要继续保存时,界面可以选择从历史界面删除。 Android 为每一从桌面启动的应用保存历史记录栈。
意图和意图过滤
Android 使用一种称作 意图 的特殊类来描述从一个界面切换到另一个界面,一个意图描述一个应用下一步希望做的事情。意图数据结构最重要的两个元素就使动作和动作使用的数据。动作的典型值有 MAIN (实体的入口) ,   VIEW,   PICK,   EDIT, 等等。数据作为 URI( 统一资源标识符 ) 进行传递。例如:浏览一个人的通信录信息,你可以创建一个带 VIEW 动作的意图 , 并且设置 URI 数据来代表那个人。
还有一个相关的类称作 InterFilter 。当一个意图是有效请求执行时,一个意图过滤器描述一个实体(或者意图接收器,见下文)能够执行的动作。一个能显示某个人通信录信息的实体将公布一个 InterFilter, 它知道怎样处理视图动作当你保存这些数据时。实体在 AndroidManifest.xml 文件中发布它们的 InterFilters
从一个页面浏览到另一个页面时通过分析意图完成的。一个实体调用 startActivity(myIntent) 实现向前浏览。系统查找所有安装系统的意图过滤器并且选择与 myIntent 匹配最好的意图过滤器的实体。新的实体由意图进行通知,并导致实体启动。当调用 startActivity 时,处理意图的进程在运行时启动,这可以提供两个好处( The process of resolving intents happens at run time when startActivity is called, which offers two key benefits )。
·          实体可以通过发出一个意图形式的请求来重用其它组建功能。
·          实体可以在任何时候被一个带有同样 IntentFilter 的新实体替换。
 
意图接收器
当你的希望拟定应用程序代码去响应执行一个外部时间时,你可以使用一个意图接收器,例如,当你的电话响铃时,或者当数据网络可用,或者当子夜来临时。意图接收器不用显示一个界面,尽管它们可以使用通告管理器来通知用户一些有意思的事情发生。意图接收器注册在 AndroidManifest.xml 文件中,但是你可以通过使用代码 Context.registerReceiver() 来进行注册。调用意图借收起时,你的应用程序不一定需要运行 ; 系统将启动你的应用,如果需要的话,当意图接收器被触发后,应用程序可以通过调用 Context.broadcastIntent() . 发送它们的意图到其它应用程序。
服务
服务是长期存在和运行的不带界面的代码。一个例子是媒体播放器从播放列表中播放歌曲。在媒体播放器应用程序中,可能有一个或者多个实体。然而,音乐重放应当被一个实体处理,因为用户希望在切换到其它界面时音乐能够继续播放。在这个例子中,媒体播放实体可以启动一个服务,使用 Context.startService() 在后台运行来保持音乐的播放。系统将保持阴血重放服务一直运行知道结束。(你可以通过阅读 Android 应用得活动周期来优先了解更多的服务提供功能)。注意你可以连接到一个服务(并且如果它还没有运行,你也可以启动它)通过条用 Context.bindService() 方法。当连接到一个服务后,你可以通过服务公开的接口与它进行通信。对于这个音乐播放服务,你可以暂停,重播,等等。
内容提供器
应用程序能保存它们的数据到文件中,一个 SQLite 数据库,或者其它的机制保存。一个内容提供器,在你希望你的应用程序数据同其它应用分享数据时是非常有用的。一个内容提供者方是一个类,它执行一套标准的方法,使得其它应用保存和获取它自己处理过的数据。
想了解更多的关于内容提供器的细节,请参考 访问内容提供者。
 

猜你喜欢

转载自blog.csdn.net/wellshine/article/details/1899239