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 d917c..ce6e2dc
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -, +, @@ import android.util.ArraySet;
import android.util.SparseIntArray;
import android.view.Display;
@@ -, +, @@ public final class ActivityStackSupervisor implements DisplayListener {
}
}
+ Slog.e(TAG, "callingPackage:"+callingPackage);
+
final int userId = aInfo != null ? UserHandle.getUserId(aInfo.applicationInfo.uid) : ;
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";
}