1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程

[RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程

时间:2022-03-26 19:52:25

相关推荐

[RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程

Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

发现开机的时候Muisc会收到broadcast被调用起来,

ActivityManager: Start proc 982:com.android.music/u0a29 for broadcast com.android.music/.MediaButtonIntentReceiver

那么如何确定是谁发的广播呢?

虽然Send Broadcast有很多方法,但是最终走的接口都一样,都是经过ActivityManagerService通过processNextBroadcast()接口来处理,在这里打印出对应的caller name就可以了。

kris@:~/rk3288/frameworks/base$ g df services/core/java/com/android/server/am/BroadcastQueue.javadiff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.javaindex 6de8579..4e8ea51 100644--- a/services/core/java/com/android/server/am/BroadcastQueue.java+++ b/services/core/java/com/android/server/am/BroadcastQueue.java@@ -1063,9 +1063,11 @@ public final class BroadcastQueue {}// Not running -- get it started, to be executed when the app comes up.- if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST,+ Slog.v(TAG_BROADCAST,"Need to start app ["+ mQueueName + "] " + targetProcess + " for broadcast " + r);+ Slog.v(TAG_BROADCAST, "callerApp:"+r.callerApp);

对应log:

BroadcastQueue: Need to start app [foreground] com.android.music for broadcast BroadcastRecord{6bbc495 u-1 android.media.AUDIO_BECOMING_NOISY}

BroadcastQueue: callerApp:ProcessRecord{6bc6f30 551:system/1000}

ActivityManager: Start proc 2836:com.android.music/u0a29 for broadcast com.android.music/.MediaButtonIntentReceiver

从log可以看出是”android.media.AUDIO_BECOMING_NOISY” 这个broadcast触发了music进程的启动,调用的app是system,即system_server, pid是551, uid是1000

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。