zoukankan      html  css  js  c++  java
  • [转]Android应用程序框架思路整理

     

    一.一般Android应用程序架构(Book,购彩,Market)。

     

    普通的应用程序由于只需要用到Android的联网与显示的功能,所以应用程序大体上是呈现为UIActivities)与网络(Network)等其他模块进行绑定,数据交互的应用程序。

    优点: 1)此种是一种通用的类J2ME的应用开发模式,被开发者所熟悉,可以很快上手。

    2)应用比较灵活,小型。

    3)可以满足大部分基于网络数据获取的应用程序。

    缺点: 1)不能监控到系统广播服务

    2)不能提供Open API供其他应用程序进行交互

    3)所有模块(如网络等)的生命周期依赖于其所属的Activity的生命周期。

    二.Android提供的四大应用程序组件

    接下来介绍一下Android提供的四个通用的应用程序组件以及其职责。

     

    Activity:

    (1) 应用程序的入口

    (2) 界面显示,接收事件(如按键),控制显示跳转。

    BroadcastReceiver:

    (1) 用于注册和接收系统广播的事件

    (2) 可接收自定义的广播事件。

    ContentProvider:

    (1) 提供数据库查询接口

    (2) 可对外(其他应用程序)公开数据查询服务。

    Service:

    (1) 是一个独立的进程,可一直在后台运行。

    (2) 可以与其他组件(如Acitivity,Service,ContentProvider)通过远程连接绑定(bind)进行交互。

    (3) 可对外(其他应用程序)提供服务交互接口。

    (4) 生命周期不依赖于其他组件的存在与否。

    三.Service与Acitivity进行交互

     

    Service与其他组件进行通讯是通过AIDL远程接口进行绑定之后进行通信,分别在不同的组件内部创建不同的接口的实现类,通过服务连接器进行交互(ServiceConnection)此种方式可用于不同进程间进行交互,相对比较麻烦一些。

    四.Android手机心脏适用的应用程序框架思路

     

    由上图可看出,心脏应用程序框架主要分为三层:UI层(Activities层),调度层(Dispatch层)和应用服务层(Services层)。(比较类似于MVC的设计模式)

    1. 相对于一般框架的区别

    1)引入了Android提供的其他两大组件:服务(Service)和广播接收器(Receiver),用于在后台一直运行一些监控程序(类似于symbian心脏中的WatchEngine.exe)和接收系统事件。

    2)提供了对外部应用程序访问的接口,有助于手机心脏将来为其他应用程序提供平台与服务。

    2. 三层结构的职责归属与交互方式

    层次

    组成

    职责

    与其他层次交互模式

    UI层

    Activities,Views

    负责应用程序UI显示

    负责进行跳转

    与调度层进行交互

    负责控制调度层对服务进行管理

    只能与调度层进行交互,不可见服务层。

    调度层

    由服务管理模块,服务绑定模块,

    消息转发模块,

    异常通知模块组成

    负责与后台服务的绑定与通信

    负责处理UI层的请求

    负责管理服务层相关服务

    负责管理应用程序的异常输出。

    与UI层通过本地接口进行交互。

    与应用服务层通过远程接口AIDL进行通信。

    应用服务层

    由Service,Receiver,ContentProvider组成

    负责与系统进行通信。

    负责监控系统行为并处理。

    负责与调度层进行消息通信。

    与调度层通过远程接口AIDL进行通信,返回计算结果/事件等。

    3. 优点与缺点

    优点: 1)充分利用Android平台提供的组件达到使用需求(如监控系统事件,保持服务一直运行等),更本地化。

    2)可以应用系统性比较强的应用程序。

    缺点: 1)AIDL进行交互比较繁琐。

  • 相关阅读:
    洛谷 P2148 [SDOI2009]E&D(SG函数入门)
    洛谷 P2197 【模板】nim游戏
    博弈整理
    洛谷 P2939 [USACO09FEB]改造路Revamping Trails(分层最短路二维dijs)
    洛谷 P3831 [SHOI2012]回家的路(最短路+分层图思想)
    BZOJ 2763 [JLOI2011]飞行路线(分层最短路)
    洛谷 P4016 负载平衡问题(费用流)
    洛谷 P1251 餐巾计划问题(费用流)
    把数组排成最小的数
    整数中1出现的次数(从1到n整数中1出现的次数)
  • 原文地址:https://www.cnblogs.com/l2rf/p/5983717.html
Copyright © 2011-2022 走看看