首页 理论教育 应用程序架构介绍

应用程序架构介绍

时间:2023-06-27 理论教育 版权反馈
【摘要】:图4-1 Android组件和线程框架以下六个组件构成了应用程序的基础部分。在应用程序的Activity不激活或不可见时,用于执行需要继续的长期处理。Broadcast Receiver会自动开启应用程序,以响应一个收到的Intent,使用它们可以完美地创建事件驱动的应用程序。在应用程序之间,Content Provider是共享数据的首选方式。通过创建和注册Broadcast Receiver,应用程序可以监听符合特定条件的广播的Intent。

应用程序架构介绍

Android应用程序用到的各种“组件”(如Activity、BroadcastReceiver、Service等)会在同一个进程中执行,而且由该进程的主线程负责执行。如果有特别的指定,也可以让特定“组件”在不同的进程里执行。无论这些组件是在哪一个进程里执行,默认情况下,它们都是由该进程里面的主线程来负责执行的。

主线程除了要处理Activity的UI事件,还要处理Service后台服务工作,通常会忙不过来。而多线程的并行(Concurrent)可以化解主线程过于忙碌的问题,主线程可以生成多个子线程来分担它的工作,尤其是比较冗长费时的后台服务工作(如播放动画的背景音乐、从网络上下载电影等)。这样,主线程就能专心处理UI画面的事件了,如图4-1所示。

978-7-111-58810-8-Chapter04-1.jpg

图4-1 Android组件和线程框架

以下六个组件构成了应用程序的基础部分。

(1)Activity:应用程序的表示层。应用程序的每个界面都是Activity类的扩展。Activity用视图(View)构成GUI,来显示信息,响应用户操作。就桌面开发而言,一个活动(Ac-tivity)相当于一个窗体

(2)Sevvice:应用程序中的隐形工作者。Service组件在后台运行,更新数据源和可见的Activity,触发通知(Notification)。在应用程序的Activity不激活或不可见时,用于执行需要继续的长期处理。

(3)Content Provider:可共享的数据存储。Content Provider用于管理和共享应用程序数据库,是跨应用程序边界数据共享的优先方式。这表示您可以配置自己的Content Provider以允许其他应用程序的访问,用他人提供的Content Provider来访问他人存储的数据。Android设备包括几个本地Content Provider,提供了如媒体库和联系人明细这样常用的数据库。

(4)Intent:一个应用程序间(inter-application)的消息传递框架。使用Intent可以在系统范围内广播消息或者对一个目标Activity或Service发送消息,来表示要执行一个动作。系统将辨别出相应要执行活动的目标。

(5)Broadcast Receiver:Intent广播的消费者。如果创建并注册了一个Broadcast Receiv-er,应用程序就可以监听匹配特定过滤标准的广播Intent。Broadcast Receiver会自动开启应用程序,以响应一个收到的Intent,使用它们可以完美地创建事件驱动的应用程序。(www.xing528.com)

Widgets是可以添加到主屏幕界面(home screen)的可视应用程序组件。作为Broadcast Receiver的特殊变种,Widgets可以为用户创建可嵌入到主屏幕界面的动态的、交互的应用程序组件。

(6)Notification:一个用户通知框架。应用Notification,不必窃取焦点或中断当前Ac-tivities就能通知用户。这是在Service和Broadcast Receiver中获取用户注意的推荐技术。例如,当设备收到一条短消息或一个电话,它会通过闪光灯、发出声音、显示图标或显示消息来提醒您。您可以在应用程序中使用Notification触发相同的事件。

不过,不是每个程序都有这6个组件,可能程序只使用了其中一部分。一旦决定了程序中包含哪些组件,要在AndroidManifest.xml文件中将其列出,这是一个XML文件,包含程序所定义的组件,以及这些组件的功能和必备的条件。

Activity中4个组件是最常用的:(1)Activity;(2)Intent Receiver;(3)Service;(4)Content Provider。程序中,Activity通常的表现形式是一个单独的界面。每个Activity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为一个由Views组成的用户界面,并响应事件。大多数程序有多个Activity。

Android通过一个专门的Intent类来进行界面的切换。Intent描述了程序想做什么。使用Intent,可以在整个系统内广播消息或者让特定的Activity或者服务执行行为意图。系统会决定哪个(些)目标来执行适当的行为。

Service组件在运行时不可见,它负责更新数据源和可见的Activity,以及触发通知。它们常用来执行一些需要持续运行的处理。

Content Provider(内容提供器)用来管理和共享应用程序的数据库。在应用程序之间,Content Provider是共享数据的首选方式。这意味着,您可以配置自己的Content Provider以存取其他应用程序,或者通过其他应用程序暴露的ContentProvider来存取它们的数据。

通过创建和注册Broadcast Receiver,应用程序可以监听符合特定条件的广播的Intent。Broadcast Receiver会自动启动Android应用程序响应新来的Intent。Broadcast Receiver是事件驱动程序的理想手段。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈