第三课--Android组件

组件从字面看意思就是组合部件。

在程序中使用组件设计思想是在软件规模扩大,复杂度上升的背景下,以面向对象为基础而提出的一种软件设计思想。可以把它理解为一种更粗粒度的面向对象,其粒度一般大于对象,但具体要到什么程度,又可以根据实际情况来决定。这种思想以组件为基础,强调“服务”的概念。

面向组件具有以下特点:

低耦合性:组件之间一般互不依赖,一个组件只需要知道另一个组件的“名字”就可以访问它;

高重用性:系统级的重用;

高互操作性:不同的开发商开发出来的组件只要定义好了接口就可以互相访问;

进程的透明性:组件可以工作在同一个进程也可以工作在不同的进程;

语言和开发环境的独立性:组件只需要定义好服务接口,内部实现可以采用任何语言。

面向组件的框架已经有很多了,如JavaBeanEJBCOM等。Android系统并没有声称自己是面向组件的,但从其设计思想来看,Android一开始的设计考虑就是要采用一种“无边界”的设计方式,要实现系统内资源高度的重用。

首先要有一个组件容器,负责加载和运行组件。

其次要有一个统一的接口或基类,用来规范组件行为,方便加载和调用。

还要有一个配置信息文件,通知组件容器具体加载那个组件。

每个组件都有自己的生命周期方法,组件容器会在特定的条件下调用不同的生命周期方法。

Android完全符合面向组件的特征,它提供了ActivityServiceBroadcastReceiverContentProvider四大组件,它都是组件的基类。

还有ServiceManagerActivityManagerService这2个系统服务用于充当组件容器,它是保证组件间协同工作的最重要的基础,同时它们本身也是一种组件。Android各个组件之间实现了低耦合,ActivityActivityActivityServiceServiceService之间的都只需知道对方的“名字”就可以访问它。而且,它们之间的重用是系统级的,尤其是Service,任何部署在系统里的Service可以为任何一个应用,任何一个进程,任何一个组件来提供服务。它也满足高互操作性,任何开发者开发出来的组件,只要公布其接口就可以为其他开发者所用。

AndroidManifest.xml清单文件,所有组件都必须在它里面注册才可以使用。

切记,永远不要手动创建组件实例,或手动调用生命周期方法,这些工作都应该是组件容器完成的


你可能感兴趣的:(android,组件)