前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-EI-灵魂画手解释安卓的Message对象

1-EI-灵魂画手解释安卓的Message对象

作者头像
张风捷特烈
发布2018-09-29 11:15:25
3220
发布2018-09-29 11:15:25
举报
文章被收录于专栏:Android知识点总结
场景1

安卓基于事件驱动,每个事件都会转化成消息对象即Message对象,交与handler处理。为了方便管理,每个线程都有一个消息队列MessageQueue来让Message排队等待处理。 Message是依靠链表进行维护每个message对象都会有next字段记录下一个message对象。 用排队打饭来举例:message对象就是拿着饭盒的学生,它们都有待处理的事件,打饭阿姨就是Handler,用来处理打饭事件。那为什么要记录下一个人是谁呢?

Message1.jpg

场景2

如果一个年级1000人,每个人都排队,相当于程序频繁创建对象,吃完了就走了,对象又被销毁,这样频繁的创建销毁会耗费性能,频繁GC。安卓中使用享元模式,就像只找几个班干部,为班级人民服务。吃完了别走,就你们几个在那排好队,有同学需要打饭,第一个人就去帮那个同学打饭,完事后继续站到队列末尾。这个队列便是MessageQueue,安卓中默认有50个长度单位并且用链表的形式实现。使用已经存在的对象就不用频繁的创建与销毁了,这就是设计模式:享元模式的核心。

Message2.jpg

本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景1
  • 场景2
相关产品与服务
消息队列 CMQ
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档