Android应用程序框架

1 无边界设计理念

Android的应用框架的外特性空间的描述在SDK文档( http://androidappdocs.appspot.com/guide/topics/fundamentals.html#acttask ) 有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述。在外特性空间中,Android提供了 Activity,Service,Broadcast receivers,Content Provider,Intent,task等概念,我在这里不讨论这些概念定义,因为SDK文档已经讲得够详细。

在阅读SDK文档和研究Activity这个概念时,我感觉到了在Android中若隐若现的Android自由无边界这个设计意图。Android的应 用只是一个虚的概念,并没有实际的入口,这个不像Window平台上的应用程序的概念,Android更多的是提供组件(Components)的概念。 为什么要虚化应用的概念?我想这个虚化就是自由无边界设计意图的直接体现。突出请求和服务,突出组件个体,弱化边界,系统的各个组件可以自由的无边界的交 流,服务请求者直接发出请求,不论这个对象在何处和属于谁的,组件是自由独立的个体,一个应用程序可以直接请求使用其他的应用的的组件,这个是 Android应用框架设计的核心理念,其他的一切都是在为这个核心理念服务。

让程序员忽略应用的概念,甚至彻底的抛弃进程这样的概念,程序员看到的就是一个一个的组件,应用程序员利用这些组件来架构成一个所谓的应用,那么设计者首先要考虑的是什么呢?我想应该是一个抽象的应用模型,在这个模型下产生概念和接口。

我们知道MicroSoft提出了Application,Windows的概念,有前景应用(Foreground Application)概念,MicroSoft的应用模型中用户交互则完全交给了Window,各种界面的呈现都是属于这个应用的是孤立的,应用程序 之间的各个构成对象不能相互访问,最多提供一个进程间通讯机制,那个也是应用程序层面的。虽然Microsoft后来也提出了组件,分布式组件等概念,但 是这些不是根植在Windows系统中,而Android则是彻底的组件化思想构建,一开始的应用程序概念就是 Activity,Service,Broadcast receivers,Content Provider,Intent,Task。这些概念体现了一个人机交互的模型本质:

界面呈现

发起请求,响应请求

内容交互

消息接收处理

Activity 是Android应用的核心概念,简而言之Activity为用户交互管理者,有一个可视界面呈现,而Service跟Activity的区别是他在后台 运行,没有界面呈现。而Intent的意义是意图,他在Android的概念空间中,代表消息,这个消息代表了请求的意图。

Activity可以到处存在,提供服务,消除空间差别,Activity是一个独立的个体,更能表现面向对象的实质。这个个体需要接受另外的个体的消 息,可以随时发起对另外一个个体的请求。个体是自由的,Android中你可以开始一个Activity,但是没有权利消灭一个Activity,这是个 体权利的体现,个体的消灭是由系统决定的,这个就是Android中Activity蕴含的人文意义。

更多相关文章

  1. Android导出一个JAR库/Android如何将程序打成jar包/android 打包
  2. Android React Native使用原生UI组件
  3. Android 基础总结:(二)Android APP基础及组件
  4. Android系列教程(2):为 TextView组件加上边框
  5. Android 高级UI组件
  6. 没事抽空学——常用界面组件属性
  7. Android - 组件工具箱(widget tool box)
  8. android —— 自定义控件 竖向的ViewPager,上下滑动的组件,android
  9. Android官方架构组件:Lifecycle

随机推荐

  1. 一起学android openg 纹理
  2. Android——NDK开发配置遇到的问题
  3. 也来遵守android UI 规范--GridView主界
  4. 关于ListView嵌套的问题
  5. CCSprite在Android平台下显示SDCard中的
  6. Android(安卓)Design Support Library—
  7. Linux设置qt-android开发环境
  8. Android(安卓)自定义View之View的绘制
  9. Android高低API版本兼容之@TargetApi
  10. 查看android sqlite数据库常用操作