界面组件Activity解析
界面组件Activity与Web页面对比的相似之处:
运行模式:web是通过链接跳转,多页面时仅有一个页面对用户可见;Android是多任务系统,可同时运行多个任务,每个任务是一个界面组件;
Web页面有一个URL对应,页面切换和数据传输需要通过服务器,Android也是通过类型信息、数据RUI、数据类型信息进行定位。界面切换和数据传输依赖于组件管理服务。
Android界面组件和Web页面军尉黑盒,主要取决于用户输入。Web开发中通过Cookie缓存信息,Android通过应用环境对象Application Context存储小数据。
Android系统将资源预编译,生成R.java文件。相当于资源的目录表。通过R.java定位资源。
界面组件处理交互事件:界面的全局事件通过重载Activity的方法实现,和具体控件相关的交互:Android控件采用了观察者模式,通过添加监听事件处理交互。
频繁构造交互界面很耗时,Android提供了延迟构造框架,以减少辅助构造交互界面的次数。如用户在查看界面的选项菜单时,界面组件会调用Activity.onCreateOptionsMenu()创建菜单对象,构造出来的对象被缓存,等待下次调用。每次展示给用户前,界面组件还会调用Activity.onPrepareOptionsMenu(),开发者可以在此函数中调整菜单状态。
Android进程采用进程托管策略,后台的应用进程在内存紧张时会被终止,直至该应用被切换到前台时,才再次构造运行。
Android界面组件在运行时,通过任务进行组织。同一任务中的界面组件会按照栈模型线性排列。