《Android源码设计模式》--享元模式

Posted 嘉禾世兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Android源码设计模式》--享元模式相关的知识,希望对你有一定的参考价值。

No1:

享元模式是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。

No2:

UI不能够在子线程中更新。因为并不是UI不可以在子线程更新,而是UI不可以在不是它的创建线程里进行更新。

No3:

(1)首先构造Java层的Looper对象,Looper对象又会在构造函数中创建Java层的MessageQueue对象

(2)Java层的MessageQueue的构造函数中调用nativeInit函数初始化Native层的NativeMessageQueue,NativeMessageQueue的构造函数又会创建Native层的Looper,并且通过管道和epoll建立一套消息机制

(3)Native层构建完毕,将NativeMessageQueue对象转换为一个整型存储到Java层的MessageQueue的mPtr中

(4)启动Java层的消息循环,不断地读取、处理消息

这个初始化过程都是在ActivityThread的main函数中完成的,因此,main函数运行之后,UI线程消息循环就启动了,消息循环不断地从消息队列中读取、处理消息,使得系统运转起来

No4:

消息的处理分为Native层和Java层,两个层次都有自己的消息机制,Native层基于管道和epoll,而Java层则是一个普通的链表。

 

以上是关于《Android源码设计模式》--享元模式的主要内容,如果未能解决你的问题,请参考以下文章

享元模式在JDK源码中的应用——Java设计模式系列学习笔记

设计模式之享元模式与组合模式详解和应用

12.享元模式

深入理解设计模式-享元模式

深入理解设计模式-享元模式

享元模式浅析