zoukankan      html  css  js  c++  java
  • 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的概念空间。这些组件依附于应用程序中,应用程序并不会一开始就建立起来,而是在这些组件建立起来后,

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


  • 相关阅读:
    什么是单例模式?
    下拉列表(web),用jQuery实现
    PS基础
    C#笔记
    C#基础篇--文件(流)
    C#基础篇03
    今天自学了网页上注册某某时的倒计时设置
    主数据管理的Jill Dyche, Evan Levy六层次模型
    scala akka 修炼之路6(scala函数式柯里化风格应用场景分析)
    OpenWrt mt7620n双SSID实现原理
  • 原文地址:https://www.cnblogs.com/bastard/p/2428903.html
Copyright © 2011-2022 走看看