mermaid时序图
时序图声明
mermaid支持多种图,所以要先通过sequenceDiagram
sequenceDiagram
participant
mermaid的participant不支持直接声明颜色,只能声明个名字了
sequenceDiagram
participant Activity
participant ContextWrapper
消息要用双箭头
按照PlantUML的习惯写“->”是不行的,这样会没有箭头。如果要往箭头,还需要再加一个”>”,变成”->>”.
sequenceDiagram
Activity ->> ContextWrapper : registerReceiver()
ContextWrapper ->> ContextImpl : registerReceiver()
完整例子
sequenceDiagram
Activity ->> ContextWrapper : registerReceiver()
ContextWrapper ->> ContextImpl : registerReceiver()
ContextImpl ->> LoadedApk : getReceiverDispatcher()
LoadedApk ->> ActivityManagerProxy : registerReceiver()
ActivityManagerProxy ->> ActivityManagerService : registerReceiver()
Activity ->> ContextWrapper : sendBroadcast()
ContextWrapper ->> ContextImpl : sendBroadcast()
ContextImpl ->> ActivityManagerService: broadcastIntent()
ActivityManagerService ->> ActivityManagerService : broadcastIntentLocked()
ActivityManagerService ->> ActivityManagerService : collectReceiverComponents()
ActivityManagerService ->> ActivityManagerService : scheduleBroadcastsLocked()
ActivityManagerService ->> ActivityManagerService : processNextBroadcast()
ActivityManagerService ->> ActivityManagerService : deliverToRegisteredReceiverLocked()
ActivityManagerService ->> ActivityManagerService : performReceiveLocked()
ActivityManagerService ->> ApplicationThreadProxy : scheduleRegisteredReceiver()
ApplicationThreadProxy ->> InnerReceiver : performReceive()
InnerReceiver ->> ReceiverDispatcher : performReceive()
ReceiverDispatcher ->> BroadcastReceiver : onReceive()
Activity ->> ContextWrapper : sendOrderedBroadcast()
ContextWrapper ->> ContextImpl : sendOrderedBroadcast()
ContextImpl ->> ActivityManagerService: broadcastIntent()
生成的图形如下:
本文介绍了使用Mermaid语法绘制时序图的方法,包括参与者声明、消息传递等基本元素的书写方式,并提供了一个完整的示例,展示从Activity到BroadcastReceiver的广播流程。
1146

被折叠的 条评论
为什么被折叠?



