抖音短视频系统开发,消息机制的原理细节处理

简介: 对于Android抖音短视频系统开发来说,Binder和Handler是两大利剑,分别实现了进程间和线程间的通讯。Android的消息机制

对于Android抖音短视频系统开发来说,Binder和Handler是两大利剑,分别实现了进程间和线程间的通讯。Android的消息机制,主要包括Hander,Looper,Message和MessageQueue四个数据类型,但从概念上讲,核心是线程和消息队列,一切操作围绕某个线程和它对应的消息队列展开,抖音短视频系统开发常用Handler,Looper,MessageQueue这三个类都会和同一个线程绑定。主要原理为通过Threadlocal让每个线程具备了一个消息队列,消息队列一方面作为存储消息的数据结构,另一方面负责消息具体的入列,出列,阻塞等核心操作;而Handler负责将消息发送到相应线程的消息队列中,并对出列的消息进行处理;而Looper则通过循环,不断的尝试获取消息并对获取到的消息进行分发,交给消息对应的target(Handler)来处理,然后在消息处理完毕后进行回收,回收到消息池中。

短视频1~1.jpg

所以通过消息机制,可以实现线程间的通信,进行数据的传递;也可以作为线程间通信的协议,让一个线程通知另一个线程执行某段业务逻辑。同时,也可以实现线程切换,执行延迟,循环执行的操作。

这四个数据类型中,抖音短视频系统开发接触最多的是Hander。 Handler是消息机制中我们接触最多的类,可以理解为消息机制的调度器。它会和某个线程及相应的消息队列绑定在一起,负责向这个线程的消息队列里发送消息,并对出列的消息进行处理。和哪个线程绑定在一起,就会向哪个线程的消息队列里发送消息,同时处理消息的代码也就在哪个线程里执行,但是可以从其他任意一个线程向该线程发送消息。

短视频2~1.jpg

抖音短视频系统开发Android的消息机制,从概念上来讲,核心是围绕消息队列展开的。通过ThreadLocal,让每个Thread具备一个消息队列,然后才展开对消息队列相关的操作处理。而源码中,消息队列是通过Looper来添加的。

Message,消息,它的作用可以从两方面来理解,一方面可以理解为携带任意数据信息的对象,在线程建进行数据/消息传递;另一方面,可以理解为线程间通信的协议,将协议的关键信息封装到Message对象中,另外一个Thread接收到了之后进行解析,然后执行相应的业务逻辑。

短视频3~1.jpg

 接下来,我们涉及到了消息机制的核心消息队列MessageQueue。MessageQueue虽然翻译过来是队列,但数据结构是单链表,以mMessages作为头元素,Message的next为下一个指针。它负责完成消息机制的核心操作,包括消息入列,出列,删除消息,是否包含某个消息以及退出等。

除此之外,  抖音短视频系统开发MessageQueue内部还有上面这几个函数,用于判断是否包含某个消息,以及删除消息,实现比较简单。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

目录
相关文章
|
编解码 前端开发 Java
秘乐短视频系统丨秘乐短视频系统开发(详细及案例)丨秘乐短视频开发源码功能
 VideoPlayerManager-https://github.com/danylovolokh/VideoPlayerManager介绍:帮助控制MediaPlayer类的项目。可以方便的在ListView和RecyclerView中使用MediaPlayer。它还能跟踪滚动列表当前可视范围最大的item,并提供回调的api。
|
存储 搜索推荐 算法
抖音SEO优化怎么做?一文搞透抖音短视频优化!
为什么要做抖音SEO?哪些企业适合做抖音SEO?
839 0
抖音SEO优化怎么做?一文搞透抖音短视频优化!
|
监控 安全 数据挖掘
短视频app开发,如何实现高质量的支付系统架构?
短视频app开发,如何实现高质量的支付系统架构?
|
缓存 编解码 网络协议
开发直播相亲交友源码,高并发怎么做到不卡顿?
最近几年随着互联网技术的高速发展,人们的生活节奏以及生活方式也在跟着时代进行变化,越来越多人选择了线上交友的方式,通过交友软件把自己的生活圈进行扩大。相亲交友源码作为视频直播系统开发行业的小众源码,也成为社交类APP开发的新宠。 从线上红娘+直播相亲切入的伊对,据小编统计不到近几年的时间就积累了高达四千万用户,近五万名红娘,每月可以撮合近一千万场相亲。通过视频直播相亲方式,让用户更便捷,自由的选择相亲对象,直接观察相亲对象的外表言谈举止,有强烈的感官意识,可以长期持续的进行交流沟通,因此视频直播形态的相亲模式,是目前相亲交友系统开发的新趋势。
开发直播相亲交友源码,高并发怎么做到不卡顿?
|
编解码 UED
陪玩平台源码如何实现语音聊天室和连麦功能
陪玩平台源码的多人聊天室和直播功能中,都实现了语音聊天室功能,综合来看,语音聊天要满足三个主要条件,支持多人连麦、支持音频混流和多种连麦方式。
|
缓存 UED
聊一聊播放器在一对一直播系统源码中的作用
建立视频数据缓冲区,当网络不足以支持一对一直播系统源码用户流畅的观看直播时,系统会暂停播放,缓存一定的数据,支撑用户流畅观看。
|
缓存 安全 UED
短视频app开发中存在的哪些要点是必须明确的?
  自从移动端互联网领域抖音、火山等小视频APP的出现以来,从人气或是从开发的角度来讲都达到了一个前所未有的鼎盛期,短视频APP开发项目一度成为互联网市场非常炽热的话题,也引起了很多人的关注,那么你知道在短视频APP开发中存在的哪些要点是必须明确的吗?
短视频app开发中存在的哪些要点是必须明确的?
|
存储 算法 程序员
一对一直播系统开发的原理只需记好这七点
直播行业如火如荼的加速前进,一对一直播系统开发开发紧跟着脚步加速前进,你知道一对一直播系统开发开发应当具备哪些条件吗?
一对一直播系统开发的原理只需记好这七点
|
调度 数据安全/隐私保护 黑灰产治理
如何通过直播间源码实现完整的直播系统开发?
直播行业在2020年快速在各个领域占领市场,不受年龄地域的限制,这早已变成一股风靡全世界的新浪潮。再加上即将来临的5G的时代,今年或许便是全民直播的暴发年间。那么直播间源码是怎样开发设计是?一起了解一下吧。
如何通过直播间源码实现完整的直播系统开发?
|
编解码 缓存 监控
直播过程是如何实现的?带你探索直播系统源码的奥秘
自从2013年4G元年以来,移动端的直播行业依靠4G技术的支持蓬勃发展,随着技术瓶颈的突破,直播行业逐渐成为全民娱乐的一种形式,移动直播端的飞速发展促进了直播系统源码的不断开发和更新,如今进入全民直播的时代,很多人还不了解直播系统源码是如何开发的,直播过程究竟是如何实现的。本文就来为大家揭秘直播究竟是怎样呈现到大家面前的。
直播过程是如何实现的?带你探索直播系统源码的奥秘