zoukankan      html  css  js  c++  java
  • Android 应用框架 —— 组件

      本文内容根据个人自学整理记录,理解不当之处,希望大家批评指正,大家相互学习,写学习归纳,写博客是个好习惯,希望能够坚持下去。
      在前一篇文章当中介绍了 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 的应用框架是十分复杂的, 对于初学者而言, 可能会感到概念多,关系乱,本文带你从最基本的框架组件入手学习,理清各自的功能。

    https://github.com/AcerWang
  • 相关阅读:
    C++强制类型转换操作符 const_cast
    URL的UTF-8 decode
    react-8 路由
    react-7 条件渲染与列表渲染
    react-6 react 生命周期
    react-5 受控组件,非受控组件与高阶函数
    react-4 react 组件的三大属性
    react-3 JSX 语法
    react-2 react环境搭建
    react-1 React
  • 原文地址:https://www.cnblogs.com/AcerWang/p/4068262.html
Copyright © 2011-2022 走看看