Android的Apjplication概念和理解

                                   Android的Application理解

一 概述

  在之前所使用的的框架:VC的MFC,MTK平台开发;这两个平台相似之处是:基于Application开发;

MFC是基于Application的Document/View的方式,每个Application就是一个进程;

MTK是基于Application的Screen/Page,Service的方式,每个Application都有自己的内存和管理方式;这两种方式的核心是:Application;

在Android开发学习中从HelloWord开始,我没有能够见到Application的相关代码,而是以Activity为入口;

  让我感到很奇怪:Android的Application到底是怎么样的一种开发方式。

从各处了解到的是Android开发的核心是四大组件:Activity,Service,BroadcastReceiver,ContentProvider;

以及Intent,Handler等机制;这样一些组件所 组成 的“Application”又是怎么一回事呢?

二 Android Application概念

       Android中提供了Application这样一个类;看一下Android官方文档对此类的解释:

Base class for those who need to maintain global application state.

You can provide your own implementation by specifying its name in your AndroidManifest.xml's <application> tag,

which will cause that class to be instantiated for you when the process for your application/package is created.

  大概意思就是:需要为应用程序提供全局变量,在AndroidManifest.xml中指定所实现的Application子类;

当你的Application进程被建立时,此类被实例化;

  文档解释中也提到,实现Application子类并不是必须的;

  在实现HelloWord程序里面,就没有实现Application子类,但是系统会为我们默认一个;

就是程序运行还是有Application概念的但不是核心,一个Application是一个进程,Application为整个程序提供Context; 此类使用非常简单;

Mms模块重写了这个类但是很简单,看看其中做了些什么事情及其作用:

其中重写了onCreate方法:

public class MmsApp extends Application {

@Override

    public void onCreate() {

        super.onCreate();

        sMmsApp = this;

       

//对Mms模块中的类进行配置和初始化:

        MmsConfig.init(this);

        Contact.init(this);

        DraftCache.init(this);

        Conversation.init(this);

        …… //很多init

    }};

三 Android Application

       http://blog.csdn.net/maxleng/article/details/5621345

  看一下网络上牛人对这个问题的分析:Android的应用是一个很虚的概念,并没有实际入口;

Android更多的提供组件(component)的概念;为何要虚化Application这个概念呢?这个虚化就是自由无边界设计意图的直接体现。

突出请求和服务,突出组件个体弱化边界,系统组件可以无边界交流,服务请求者直接发出请求,无论这个对象服务在何处和属于谁。

组件是自由独立的个体;一个程序可以请求其他应用的组件——Android应用框架设计的核心理念;

Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。

在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应用程序上下文状态

是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activity,Service之类的组件上下文描述。

Application并不是Android的核心概念,而Activity才是Android的核心概念

Android应用程序是由以下四种组件构造而成的:Activity,Broadcast Receiver,服务(Service),内容提供器(Content Provider)。

我们可以使用下面的图来表示一下Android的概念空间。这些组件依附于应用程序中,应用程序并不会一开始就建立起来,而是在这些组件建立起来后,

需要运行时,才开始建立应用程序对象。


原文地址:https://www.cnblogs.com/bastard/p/2428903.html