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

app软件
0 1083


对于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内部还有上面这几个函数,用于判断是否包含某个消息,以及删除消息,实现比较简单。

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


精选帖子
Android 可可影视 v3.3.6无广告纯净版 3421
Android QQ音乐 v11.3.7 定制版解锁免费听歌无广告版 3978
Android 草图大师SKP v1.5 解锁会员版 9288
Android OmoFun追漫神器 v4.2.1 无广告绿色版 6308
AdobeGenP Adobe全家桶系列激活工具 v3.5.0/3.4.14.1 绿色版 6879
Android 七猫免费听书 v1.4 解锁高级版 5283
超良心的抢票神器——Bypass1.16 5027
Android 玲珑加速器 v6.10.9.40 解锁无限时间 3660
Android 大师兄影视 v3.3.8 去广告会员版 2796
热门帖子
某团队598元副业内部课程:视频号+头条+百度+AI公众号创作、多平台流量变现,实操一条视频2天赚369元 81
灵光 v1.3.80.8000 安卓全模态AI助手APP 71
3 天学会 顺势而为交易系统,趋势看得懂、下单有依据:软件自动帮你盯盘,新手也能稳定复利 67
每月稳定收入3000+, 长期正规任务,全民可做, 已经稳定运行2年,收益稳定! 63
头条AI视频托管,你出号我运营,每天花5分钟发布,月赚1W+,手机可做 62
一份投入长期收益,拼多多虚拟类目,搭建被动收入每月增收 1-3W 54
Pyrzen广告挂机, 全自动挂机风口项目, 单日50-95/天 虽然不是很暴力但是很稳 54
大众点评全新玩法,黑科技 + AI 智能体,批量出稿出图。2 分钟一条,轻松日入四位数 50
一条视频要发七八个平台,这太麻烦了?自媒体矩阵账户批量发布工具来了!开源且免费 MatrixMedia 45