[RK3288][Android6.0] 调试笔记 --- 查看Activity对应调用的进程

来源:互联网 发布:c语言的科学和艺术 pdf 编辑:程序博客网 时间:2024/05/16 06:38

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

遇到launcher自动重复启动的问题,需要查看是哪个进程调用的。
创建Activity都会调用到startActivityLocked(), 直接有对应的参数callingPackage,直接打印即可:

kris@:~/rk3288/frameworks/base$ g df services/core/java/com/android/server/am/ActivityStackSupervisor.javadiff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.javaindex 11d917c..ce6e2dc 100644--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java@@ -101,6 +101,7 @@ import android.util.ArraySet; import android.util.SparseIntArray; import android.view.Display;@@ -1420,6 +1421,9 @@ public final class ActivityStackSupervisor implements DisplayListener {             }         }+       Slog.e(TAG, "callingPackage:"+callingPackage);+         final int userId = aInfo != null ? UserHandle.getUserId(aInfo.applicationInfo.uid) : 0;         if (err == ActivityManager.START_SUCCESS) {

启动Music apk例子:
这里写图片描述

home key启动launcher例子:
这里写图片描述

android对应的apk是framwork-res.apk,在 AMS启动的时候有调用定义:

    LoadedApk(ActivityThread activityThread) {        mActivityThread = activityThread;        mApplicationInfo = new ApplicationInfo();        mApplicationInfo.packageName = "android";        mPackageName = "android";       }
阅读全文
1 0
原创粉丝点击