diff options
| author | 2016-04-11 17:18:25 +0000 | |
|---|---|---|
| committer | 2016-04-11 17:18:26 +0000 | |
| commit | f86ce783c6726694ad9f6d5e9b5d3b58c3b7e09c (patch) | |
| tree | 62a527bf76b9c63d3cbeb81c5c65f98ecc0262ce | |
| parent | 42cf25f735d0984e908bc30a948c631b39f2fd42 (diff) | |
| parent | 7efb7eff63ba7c57de918afba9140d74a816ecc6 (diff) | |
Merge "Add systrace for resolveIntent()" into nyc-dev
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 56 |
1 files changed, 37 insertions, 19 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index fc829c3e2c00..4c03a33991fa 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4716,27 +4716,39 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ResolveInfo resolveIntent(Intent intent, String resolvedType, int flags, int userId) { - if (!sUserManager.exists(userId)) return null; - flags = updateFlagsForResolve(flags, userId, intent); - enforceCrossUserPermission(Binder.getCallingUid(), userId, - false /* requireFullPermission */, false /* checkShell */, "resolve intent"); - final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags, - userId); - final ResolveInfo bestChoice = - chooseBestActivity(intent, resolvedType, flags, query, userId); + try { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveIntent"); - if (isEphemeralAllowed(intent, query, userId)) { - final EphemeralResolveInfo ai = - getEphemeralResolveInfo(intent, resolvedType, userId); - if (ai != null) { - if (DEBUG_EPHEMERAL) { - Slog.v(TAG, "Returning an EphemeralResolveInfo"); + if (!sUserManager.exists(userId)) return null; + flags = updateFlagsForResolve(flags, userId, intent); + enforceCrossUserPermission(Binder.getCallingUid(), userId, + false /*requireFullPermission*/, false /*checkShell*/, "resolve intent"); + + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); + final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, + flags, userId); + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); + + final ResolveInfo bestChoice = + chooseBestActivity(intent, resolvedType, flags, query, userId); + + if (isEphemeralAllowed(intent, query, userId)) { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral"); + final EphemeralResolveInfo ai = + getEphemeralResolveInfo(intent, resolvedType, userId); + if (ai != null) { + if (DEBUG_EPHEMERAL) { + Slog.v(TAG, "Returning an EphemeralResolveInfo"); + } + bestChoice.ephemeralInstaller = mEphemeralInstallerInfo; + bestChoice.ephemeralResolveInfo = ai; } - bestChoice.ephemeralInstaller = mEphemeralInstallerInfo; - bestChoice.ephemeralResolveInfo = ai; + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } + return bestChoice; + } finally { + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); } - return bestChoice; } @Override @@ -5183,8 +5195,14 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public @NonNull ParceledListSlice<ResolveInfo> queryIntentActivities(Intent intent, String resolvedType, int flags, int userId) { - return new ParceledListSlice<>( - queryIntentActivitiesInternal(intent, resolvedType, flags, userId)); + try { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "queryIntentActivities"); + + return new ParceledListSlice<>( + queryIntentActivitiesInternal(intent, resolvedType, flags, userId)); + } finally { + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); + } } private @NonNull List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, |