Android开发教程02:Android四大组件简介

转载 2015年11月19日 11:24:27

上一讲我们对Android的架构有了一个整体的认识,这一讲我们同样从“整体”上介绍一下Android的几大组件。就像我们的手机,也是用电池、摄像头、CPU、屏幕,还有一些我们看不见的电路等等组成的一样,每一个Android应用程序也是通过一个个组件组成的。所不同的时,一个Android可以同时拥有一个或多个组件,也可以没有某一个组件。应用组件是一个android应用程序的重要基石。每一个组件都作为一个独立的实体存在,起着特定的作用。Adnroid中有四种不同类型的应用组件。每种类型提供不同的用途,并各自拥有不同的生命周期。Android有四大组件:Activity、Service、Broadcast Receiver、Content Provider。

但是正如我们上面所说,并不是每一个Android应用程序都需要这四种组件,某些时候,我们只需要这四种中的几种组合成我们的应用。下面我们对这四个组件进行一些简单的说明,目的是让大家有一个整体的认识,每一个组件我们后面都还会详细的介绍。

Activity

从字面上理解,Activity是活动的意思。一个Activity通常展现为一个可视化的用户界面,是Android程序与用户交互的窗口,也是Android组件中最基本也是最复杂的一个组件。从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,需要派生一个Activity的子类,进而进行编码实现各种功能方法。

Service

服务是运行在后台的一个组件,从某从意义上说,服务就像一个没有界面的Activity。它们在很多Android的概念方面比较接近,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事件,定义好需要接受的Intent提供同步和异步的接口。Android中得服务其实与windows中得服务类似,它执行长时间运行的操作,或运程进程执行工作。服务不提供用户界面,例如在后台下载东西,播放音乐,在你播放音乐的同时还可以干其他事情,而不会阻塞用于与其他活动的交互。另一个组件,比如Activity可以启动一个服务,并运行或者绑定到它。关于服务我们还可以引申出很多的词汇,比如RPC接口、AIDL等等,但是这些我们都等到后面的章节去讲解。

Broadcast Receiver

广播接收者,不执行任何任务,广播是一种广泛运用的在应用程序之间传输信息的机制 。而 BroadcastReceiver 是对发送出来的广播进行过滤接收并响应的一类组件。Broadcast Receiver 不包含任何用户界面。然而它们可以启动一个Activity以响应接受到的信息,或者通过NotificationManager通知用户。可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。在Android中还有一个很重要的概念就是Intent,如果说Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么Broadcast Receiver组件就提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。

Content Provider

即内容提供者,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。 Android有一个独特之处就是,在 Android 中,每个应用程序都是用自己的用户 ID 并在自己的进程中运行。这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常应用程序所影响,每个进程都拥有独立的进程地址空间和虚拟空间。Android的数据(包括files, database等…)都是属于应用程序自身,其他的应用是不能访问到的,更无法直接进行操作。所以如果你想实现不同应用之间的数据共享,就不得不用content provider了。为了使其他程序能够操作数据,在Android中,可以通过做成 ContentProvider提供数据操作的接口。其实对应用而言,也可以将底层数据封装成ContentProvider,这样可以有效的屏蔽底层操作的细节,并且使程序保持良好的扩展性和开放性。Android提供了一些主要数据类型的Contentprovider,比如音频、视频、图片和私人通讯录等。可在android.provider包下面找到一些android提供的Contentprovider。可以获得这些Contentprovider,查询它们包含的数据,当然前提是已获得适当的读取权限。如果我们想公开自己应用程序的数据,可以创建自己的 Content provider 。

一旦需要以上 4 种 Android 应用程序基本组件完成请求, Android 会首先确认该组件所在进程是否运行,如果没有运行, Android 将先启动进程,同时确认被请求组件的实例是否存在,否则将创建一个新的组件实例。

在介绍Broadcast Receiver的时候,我们提到了Intent。其实在Android中,Intent作为连接组件的纽带,也是一个重要的“组件”,只是我们很少把它归纳到“组件”这个概念中

以上 4 种基本组件中,除了 Content Provider 是通过 Content Resolver 激活外,其他 3 种组件 Activity 、 Service 和Broadcast Receiver 都是由 Intent 异步消息激活的。Intent 在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。因此, Intent 是包含具体请求信息的对象。针对不同的组件, Intent 所包含的消息内容有所不同,且不同组件的激活方式也不同, 且不同类型组件有传递 Intent的不同方式。Intent 是一种运行时绑定( runtime binding )机制,它能够在程序运行的过程中连接两个不同的组件。通过 Intent ,你的程序可以向 Android 表到某种请求或者意愿, Android 会根据意愿的内容选择适当的组件来处理请求。

 

这两节我们都是从理论上对Android有了一个整体的认识,是不是觉得枯燥乏味呢?接下来我们就开始动手搭建Android的开发环境。

android四大组件(详细总结)

android四大组件分别为activity、service、content provider、broadcast receiver。 一、android四大组件详解 1、activity ...
  • ican87
  • ican87
  • 2014年03月23日 16:03
  • 130065

Android基础四大组件详解

Android四大组件Activity,Service,BroadCastReceiver,ContentProvider详解
  • qq_35578940
  • qq_35578940
  • 2016年09月05日 23:46
  • 5962

Andriod 的四大组件及其作用

Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容...
  • shiretan
  • shiretan
  • 2017年02月13日 20:49
  • 1176

Android的四大组件是那些,它们的作用?

Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,他需要保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。Service:后台服务于Ac...
  • Hi_AndG
  • Hi_AndG
  • 2016年12月14日 15:35
  • 1562

Android四大组件--Broadcast Receiver详解

本文主要讲述了: 一、BroadcastReceiver概述: 二、BroadcastReceiver事件分类 三、BroadcastReceiver事件的编程流程 四、两类Bro...
  • u011067360
  • u011067360
  • 2014年04月26日 17:41
  • 2787

Android四大组件深度解析

系统对四大组件的过程进行了很大程度的封装,日常开发中并不需要了解底层的工作原理,那么研究这些原理的意义在哪里呢?如果你想在技术上更进一步,那么了解一些系统的工作原理是十分必要的,也是开发人员日后成长为...
  • u012768347
  • u012768347
  • 2016年03月15日 12:23
  • 1591

Android四大组件生命周期

四大组件的生命周期     介绍生命周期之前,先了解下任务的概念 任务就是Activity的栈,它由一个或多个Activity组成的共同完成” 应用程序” .栈底的是启动整个任务的Activity,栈...
  • u013068440
  • u013068440
  • 2015年10月29日 23:10
  • 801

Android 四大组件及交互式通信

Android 四大组件及交互式通信   ===================四大组件================ 一、Activity组件    Activity 显示的内容可以分为两...
  • moshenglv
  • moshenglv
  • 2014年11月19日 14:59
  • 1750

android 四大组件 原理详解(通俗易懂)

PS:本文来自百度知道某位大神,吾观止受益匪浅,特此转至本博客,分享之。。。 Android有四大组件:Activity、Service、Broadcast Receiver、Content...
  • bravewly
  • bravewly
  • 2012年12月11日 15:39
  • 3373

Android四大组件之内容提供者--ContentProvider

1,什么是ContentProvider 2,怎么创建 3,在手机上注册 4,其它应用怎么访问 5,Uri的处理 URI代表要操作的数据,由scheme、authorites、path三部分组成 ...
  • A__17
  • A__17
  • 2015年06月28日 12:31
  • 1837
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发教程02:Android四大组件简介
举报原因:
原因补充:

(最多只允许输入30个字)