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

app软件
0 690


对于Android抖音短视频系统开发来说,BinderHandler是两大利剑,分别实现了进程间和线程间的通讯。Android的消息机制,主要包括Hander,Looper,MessageMessageQueue四个数据类型,但从概念上讲,核心是线程和消息队列,一切操作围绕某个线程和它对应的消息队列展开,抖音短视频系统开发常用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

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


除此之外,  抖音短视频系统开发MessageQueue内部还有上面这几个函数,用于判断是否包含某个消息,以及删除消息,实现比较简单。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任


精选帖子
超良心的抢票神器——Bypass1.16 156
Android 玲珑加速器 v6.10.9.40 解锁无限时间 234
Android 大师兄影视 v3.3.8 去广告会员版 89
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 471
Teneo融资上千万美元,类似小草Grass挂机项目 546
Android 标枪定位 v2.11.3 免Root实现虚拟定位 571
Windows11 轻松设置 v1.10 绿色版 536
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 961
Android 海绵音乐 v2.33 免费AI音乐软件 662
热门帖子
免费外网梯子加速器推荐:6款免费外网梯子加速器永久免费版评测与使用心得分享 519
Apo-Ai Chat Smith人工智能 v3.9.14 解锁会员版 341
Android 红标笔趣阁 v5.2.2 解锁高级版 271
24小时全自动广告挂机 矩阵式操作 单机收益500+ 小白也能轻松上手 243
Android 玲珑加速器 v6.10.9.40 解锁无限时间 234
职场必备,四件套课教你学会强势表达,掌握关键对话,提升职场竞争力 172
超良心的抢票神器——Bypass1.16 156
快手官方激励活动-快手特效师,人人可得140 141
Android 清浊 v2.1.1 解锁高级版 97