Merge changes from topic "tm-qpr-proc-start-triggers" into tm-qpr-dev am: a04b35b697

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20112181

Change-Id: I0e6e78826dd4b868c704d46f7f31371dafce127a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-10-04 22:23:16 +00:00
committed by Automerger Merge Worker
2 changed files with 21 additions and 7 deletions

View File

@@ -4219,7 +4219,8 @@ public final class ActiveServices {
final String procName = r.processName; final String procName = r.processName;
HostingRecord hostingRecord = new HostingRecord( HostingRecord hostingRecord = new HostingRecord(
HostingRecord.HOSTING_TYPE_SERVICE, r.instanceName, HostingRecord.HOSTING_TYPE_SERVICE, r.instanceName,
r.definingPackageName, r.definingUid, r.serviceInfo.processName); r.definingPackageName, r.definingUid, r.serviceInfo.processName,
getHostingRecordTriggerType(r));
ProcessRecord app; ProcessRecord app;
if (!isolated) { if (!isolated) {
@@ -4323,6 +4324,14 @@ public final class ActiveServices {
return null; return null;
} }
private String getHostingRecordTriggerType(ServiceRecord r) {
if (Manifest.permission.BIND_JOB_SERVICE.equals(r.permission)
&& r.mRecentCallingUid == SYSTEM_UID) {
return HostingRecord.TRIGGER_TYPE_JOB;
}
return HostingRecord.TRIGGER_TYPE_UNKNOWN;
}
private final void requestServiceBindingsLocked(ServiceRecord r, boolean execInFg) private final void requestServiceBindingsLocked(ServiceRecord r, boolean execInFg)
throws TransactionTooLargeException { throws TransactionTooLargeException {
for (int i=r.bindings.size()-1; i>=0; i--) { for (int i=r.bindings.size()-1; i>=0; i--) {

View File

@@ -30,9 +30,10 @@ import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HO
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_SERVICE; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_SERVICE;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_SYSTEM; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_SYSTEM;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_TOP_ACTIVITY; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__HOSTING_TYPE_ID__HOSTING_TYPE_TOP_ACTIVITY;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_PUSH_MESSAGE;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_PUSH_MESSAGE_OVER_QUOTA;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_ALARM; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_ALARM;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_JOB;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_PUSH_MESSAGE;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_UNKNOWN; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_UNKNOWN;
import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TYPE__UNKNOWN; import static com.android.internal.util.FrameworkStatsLog.PROCESS_START_TIME__TYPE__UNKNOWN;
@@ -97,6 +98,7 @@ public final class HostingRecord {
public static final String TRIGGER_TYPE_ALARM = "alarm"; public static final String TRIGGER_TYPE_ALARM = "alarm";
public static final String TRIGGER_TYPE_PUSH_MESSAGE = "push_message"; public static final String TRIGGER_TYPE_PUSH_MESSAGE = "push_message";
public static final String TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA = "push_message_over_quota"; public static final String TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA = "push_message_over_quota";
public static final String TRIGGER_TYPE_JOB = "job";
@NonNull private final String mHostingType; @NonNull private final String mHostingType;
private final String mHostingName; private final String mHostingName;
@@ -126,10 +128,11 @@ public final class HostingRecord {
} }
public HostingRecord(@NonNull String hostingType, ComponentName hostingName, public HostingRecord(@NonNull String hostingType, ComponentName hostingName,
String definingPackageName, int definingUid, String definingProcessName) { String definingPackageName, int definingUid, String definingProcessName,
String triggerType) {
this(hostingType, hostingName.toShortString(), REGULAR_ZYGOTE, definingPackageName, this(hostingType, hostingName.toShortString(), REGULAR_ZYGOTE, definingPackageName,
definingUid, false /* isTopApp */, definingProcessName, null /* action */, definingUid, false /* isTopApp */, definingProcessName, null /* action */,
TRIGGER_TYPE_UNKNOWN); triggerType);
} }
public HostingRecord(@NonNull String hostingType, ComponentName hostingName, boolean isTopApp) { public HostingRecord(@NonNull String hostingType, ComponentName hostingName, boolean isTopApp) {
@@ -313,9 +316,11 @@ public final class HostingRecord {
case TRIGGER_TYPE_ALARM: case TRIGGER_TYPE_ALARM:
return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_ALARM; return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_ALARM;
case TRIGGER_TYPE_PUSH_MESSAGE: case TRIGGER_TYPE_PUSH_MESSAGE:
return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_PUSH_MESSAGE; return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_PUSH_MESSAGE;
case TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA: case TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA:
return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_PUSH_MESSAGE_OVER_QUOTA; return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_PUSH_MESSAGE_OVER_QUOTA;
case TRIGGER_TYPE_JOB:
return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_JOB;
default: default:
return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_UNKNOWN; return PROCESS_START_TIME__TRIGGER_TYPE__TRIGGER_TYPE_UNKNOWN;
} }