"Symbian浏览器结构讲义"
这篇讲义详细介绍了Symbian操作系统中的浏览器系统结构,主要分为以下几个部分:
1. **总体框架**:这是浏览器的基础架构,涵盖了从数据获取、解析到UI展示的整个流程。浏览器系统由基础支持模块、网络模块、语言解析模块、UI组件模块、UI渲染模块、管理引擎模块以及辅助UI等组成。
2. **基础支持模块**:这部分内容可能涉及浏览器运行所需的底层库和功能支持,如内存管理、线程同步等,为其他模块提供基础服务。
3. **网络模块**:网络模块主要负责http数据流的处理。在Symbian浏览器中,数据流处理包括了对http请求的解析,特别是对数据长度的判断。当HTTP包头包含"Content-Length"字段时,可以直接获取长度;如果存在"Transfer-Encoding: chunked"字段,则需要按chunk块的长度进行读取;若两者都不存在,就需要依赖SocketRead返回的KErrEof标识来判断数据结束。
4. **语言解析模块**:这部分主要是对HTTP响应中的文本数据进行解析,比如WML语言。语言解析器解析出语言的tag,生成Doc数据,包括DOM树和事件集合。数据生成器则控制解析过程中的tag事件,维护tag栈,并将解析结果传递给Doc数据。
5. **UI组件模块**:UI组件模块涉及用户界面的构建,可能包括按钮、列表、输入框等各种交互元素。
6. **UI渲染模块**:该模块将解析后的DOM树转换为可显示的UI单元,根据UI数据结构进行布局和渲染。UI数据结构中,最小的元素称为UIUnit,可以是单独的图片、输入控件、列表选择控件,或者连续的相同属性文字字符串。
7. **UIUnit的划分方法**:UIUnit的划分原则是提高渲染效率和减少重新排版的计算量。例如,当图片、输入控件、列表选择控件完成下载后,只需更新对应UIBlock的元素,下方的UIBlock只需做位置调整,而无需整体重排。
8. **优化方向考虑**:讲义可能讨论了如何优化浏览器性能,如缓存机制、数据压缩、预加载策略等,以提升用户体验。
9. **移植性考虑**:由于Symbian是一个多平台操作系统,因此在设计时需要考虑到代码的可移植性和兼容性,确保浏览器能在不同设备上正常运行。
这份讲义深入探讨了Symbian浏览器的内部工作原理,特别是数据处理和UI呈现的细节,对于理解移动设备上的浏览器实现具有很高的价值。