本文内容根据个人自学整理记录,理解不当之处,希望大家批评指正,大家相互学习,写学习归纳,写博客是个好习惯,希望能够坚持下去。
  在前一篇文章当中介绍了Android 的系统框架,主要是为了让大家对Android 系统的内部层次结构有个清晰的认识,是开发 Android 程序开发的基础。对 Android 系统结构了解之后,要开发一个安卓应用程序需要哪些东西呢,这篇文章主要就是介绍 Android 程序开发的基本组件系统。

Android 应用框架的核心:

  由于 Android 应用也是采用 MVC 理念来开发的,所以有必要了解下各个分工模块,Android 应用框架包含四个核心要素:
  活动 (Activity) :是程序的交互与执行单元,主要起到对界面的控制作用,可以理解为(Controller 的部分) ,管理着视图的生命周期。
  意图 (Intent) :是构建松散耦合的基础,支持从一个页面跳转到另一个页面。
  视图(View) :呈现给用户的界面,展示各种信息,各项操作,背后的逻辑,执行交给控制器。
  任务(Task) :跨越多个应用的一组活动。任务的概念比较抽象,因为我们平时基本不会直接接触到,它不同于传统程序中的一个功能模块就是一项任务(概念上有类似的地方,也有区别,要多加深理解) 。
  下面举个例加深理解 图. 1

  当我们点开手机界面上的一个 APP,系统即创建一项任务(Task) ,开启一项活动(Activity) ,并打开一个界面(View) ,意图(Intent)负责实现从图 1 左边的界面跳转到右边的界面的功能,当该应用需要给用户发送提示短信(或在通知栏推送新内容,再或者打开一起其他已安装的 APP) ,这个过程就是任务(Task)的功能,它联系了多个活动/应用,会创建多个独立的进程和堆。
  关于多任务的执行过程:

  按下“下一个界面”Button 时,执行向右的箭头操作;按下返回键,执行向左的箭头操作。
  单任务执行流程的堆栈变化:
  左侧:从下往上,依次添加到堆栈 右侧:从上往下,依次退出堆栈

  多任务执行流程的堆栈变化:

  左侧:从下往上,依次添加到堆栈 右侧:从上往下,依次退出堆栈

  此外,还要了解的是 Activity 的 langchMode,将在后面介绍。

Android 系统的四大组件 :
  通常认为 Android 系统应用框架包含四大组件:活动(Activity) 、服务(Service) 、广播接收器(Broadcast Receiver) 、内容提供者(Content Provider) 。 它们遵循统一的标准, 各个组件实现满足其功能的各种标准接口;各自完成其特殊的功能;可单独使用,也联合部署,实现某种需求。
  下面来简要介绍各个组件的功能:
  1. 活动(Activity) :完成与用户的交互任务,执行界面的用户操作行为。在新建的 Activity 类要继承系统的 Activity 类,维护、管理着 View 控件,并实现对活动生命周期的管理功能。

Activity  生命周期管理 图. 2

  2. 服务(Service) :负责为后台执行的任务提供支持,并负责管理其生命周期。
Service 生命周期管理 图. 3

不能认为服务是一个独立的进程或线程,它和应用程序的进程之间是不等同的关系,它们之间有很复杂的联系,在 Service 中要执行耗时的操作时,应开启一个新的线程并使用消息协处理其 Handler 来处理。
  3. 广播接收器(Broadcast Receiver) :用于接收其他应用发出的广播,增强 Android 系统的交互性。
  4. 内容提供者(Content Provider) :系统中各个应用的数据共享的纽带,通过它可以实现应用之间数据的互操作。它提供了四种常用的数据操作: Insert (插入) 、 Query (查询) 、 Update (更新) 、 Delete(删除) 。

总结:
  关于以上四种组件,文章只是介绍了它们的基本功能和相关概念,不是很全面, 难免有疏漏和错误之处,它们详细的内容还需要在实际编程的过程慢慢体会和学习。在实际应用当中,通常会综合使用各项组件,使应用功能齐全,因此掌握好每种组件是非常重要的,希望上面的介绍对家学习有所帮助。Android 的应用框架是十分复杂的, 对于初学者而言, 可能会感到概念多,关系乱,本文带你从最基本的框架组件入手学习,理清各自的功能。

Android 应用框架 —— 组件的更多相关文章

  1. App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南

    面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components ).为开发者更好的开发 App 提供了非常好的样本. ...

  2. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  3. Android测试框架初步

    一.实验目的 1.掌握android测试项目的建立 2.掌握android测试框架的基本内容 3.编写运行android测试 二.实验内容与步骤 建立android项目MyProject,运行截图如下 ...

  4. Android MVVM框架RoboBinding初探

    RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架.MVVM模式是MVC模式的重要更新,使得项目结构更加的优美,易于维护以及方便 ...

  5. Android进阶笔记13:RoboBinding(实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架)

    1.RoboBinding RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架.从简单的角度看,他移除了如addXXListen ...

  6. Android视图框架

    Android视图框架 Android的UI系统是android应用系统框架最核心,最基础的内容! 1. Android视图系统.层次关系 Android应用设计和Web应用设计类似,也分前端和后端设 ...

  7. Android入门学习:Android 系统框架及应用程序执行过程

    Android基础知识学习 新手上路,还请多多帮助.由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习! 主要内容: 1.Android层次架构及主要功能 2.Android编程模型,程 ...

  8. Android应用程序组件Content Provider在应用程序之间共享数据的原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6967204 在Android系统中,不同的应用 ...

  9. Android Multimedia框架总结(十三)CodeC部分之OpenMAX框架初识及接口与适配层实现

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52629598 前言:上篇中介绍O ...

随机推荐

  1. EMV/PBOC解析(三) TLV格式解析(C#)

    1.什么是TLV格式? TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换. 金融系统中的TLV是BER-TLV编码的一个特例编码规范,而BE ...

  2. [Flexbox] Using flex-direction to layout content horizontally and vertically

    The Flexbox css spec allows for more adjustable layouts. The flex-directionproperty allows you to ea ...

  3. Android各种颜色dawable.xml中定义

    < drawable name="white">#FFFFFF< /drawable>< !--白 --> < drawable name ...

  4. Tomcat: IllegalStateException: No output folder --reference

    Today, I started to create a couple of JSP pages for the server-side part of my MSc thesis project i ...

  5. 通过源码安装最新版Git

    下载源码 到Git的Github主页上下载最新的源码到本地,解压并进入目录. 编译安装 cd 你的git源码目录 autoconf ./configure make 第一个报错 报错内容: usr/b ...

  6. 关于 keybd_event (vb篇)

    最近有个VB的项目,做到64位的win7上,传统的VB6.0的sendkeys()函数没法用,可能是由于微软的证书验证机制造成的,于是最常用的一句话指令没法用了“SendKeys "{Hom ...

  7. Windows Native API

    http://en.wikipedia.org/wiki/Native_API Windows 的原生 API 函数通常在系统启动时(这里其他 Windows 组件还不可用).kernel32.dll ...

  8. 基于脚本的动画的计时控制(“requestAnimationFrame”)(转)

    requestAnimationFrame 方法的支持,该方法通过在系统准备好绘制动画帧时调用该帧,从而为创建动画网页提供了一种更平滑更高效的方法.在此 API 之前,使用 setTimeout 和  ...

  9. MongoDB与PHP的添加、修改、查询、删除

    链接数据库使用下面的代码创建一个数据库链接 <?php$connection = new Mongo(); //链接到 localhost:27017$connection = new Mong ...

  10. Design Pattern ——Builder

    一.基础知识:先前学习建造者模式的时候,总是以这个UML图作为学习基础资料 然后总是要记住四个角色 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量.在本类图中 ...