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.java
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 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";
}