LWUIT架构分析(一)
2010-04-18 11:19
211 查看
使用LWUIT库的第一个方法总是:Display.init(this);在这个方法里面做了些什么呢?
它涉及到了几个重要的类:Display、ImplementationFactory、LWUITImplementation、GameCanvasImplementation和Graphics类。
ImplementationFactory类是用来创建LWUITImplementation及其扩展类的对象的。Display.init的第一条语句就是调用ImplementationFactory的createImplementation方法,通过ImplementationFactory而不是直接构建GameCanvasImplementation的好处在于结构上的清晰和增强了灵活性。因为,对于Display来说,它是不需要知道GameCanvasImplementation类的存在的,它只需要知道有一个LWUITImplementation或者继承它的对象的存在就行。
在GameCanvasImplementation中,创建了一个GameCanvas的对象,LWUIT中所有UI都是在这个原生的GameCanvas上绘制的。
Display.init创建了Canvas后,会启动一个叫mainEDTLoop的线程,这个线程的优先级比普通线程要高。mainEDTLoop的任务就是从记录按键事件的Vector中取出按键,调用当前的Form处理这些按键事件,最后,调用LWUITImplementation类的paintDirty方法调用所有的Component的paintComponent方法绘制。最后FlushGraphics显示。
它涉及到了几个重要的类:Display、ImplementationFactory、LWUITImplementation、GameCanvasImplementation和Graphics类。
ImplementationFactory类是用来创建LWUITImplementation及其扩展类的对象的。Display.init的第一条语句就是调用ImplementationFactory的createImplementation方法,通过ImplementationFactory而不是直接构建GameCanvasImplementation的好处在于结构上的清晰和增强了灵活性。因为,对于Display来说,它是不需要知道GameCanvasImplementation类的存在的,它只需要知道有一个LWUITImplementation或者继承它的对象的存在就行。
在GameCanvasImplementation中,创建了一个GameCanvas的对象,LWUIT中所有UI都是在这个原生的GameCanvas上绘制的。
Display.init创建了Canvas后,会启动一个叫mainEDTLoop的线程,这个线程的优先级比普通线程要高。mainEDTLoop的任务就是从记录按键事件的Vector中取出按键,调用当前的Form处理这些按键事件,最后,调用LWUITImplementation类的paintDirty方法调用所有的Component的paintComponent方法绘制。最后FlushGraphics显示。
相关文章推荐
- LWUIT资源文件分析二(图片)
- 功能区域分析--如何将业务架构转化成为IT应用 推荐
- LWUIT资源文件分析一(主题)
- VLC架构及流程分析
- ARM架构内核启动分析-head.S(1.3、stext分析之内存临时页表建立)
- 学习笔记6:《大型网站技术架构 核心原理与案例分析》之 万无一失:网站的高可用架构
- jQuery源码分析-01总体架构
- 学习笔记2:《大型网站技术架构 核心原理与案例分析》之 大型网站架构演化
- IT Sales 中国公司情况分析 (ZT)
- Android多媒体架构分析
- Android_display架构分析
- tomcat架构分析 (Session管理)
- [原创]java WEB学习笔记20:MVC案例完整实践(part 1)---MVC架构分析
- Peercast整体架构分析
- ELK简介及架构分析
- Hadoop之RPC架构分析
- Servlet系统架构分析
- gsensor架构和原理分析
- Android Camera 系统架构源码分析(1)---->Camera的初始化
- 秒杀系统架构分析与实战