Merge "DO NOT MERGE - Use TimingsTraceLog on SystemServiceManager and VoiceInteractionManagerService." into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bace1cd5a4
@@ -22,6 +22,7 @@ import android.os.Environment;
|
|||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.Trace;
|
import android.os.Trace;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
import android.util.TimingsTraceLog;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
@@ -178,12 +179,13 @@ public class SystemServiceManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startUser(final int userHandle) {
|
public void startUser(final int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("ssm.startUser-" + userHandle);
|
||||||
Slog.i(TAG, "Calling onStartUser u" + userHandle);
|
Slog.i(TAG, "Calling onStartUser u" + userHandle);
|
||||||
final int serviceLen = mServices.size();
|
final int serviceLen = mServices.size();
|
||||||
for (int i = 0; i < serviceLen; i++) {
|
for (int i = 0; i < serviceLen; i++) {
|
||||||
final SystemService service = mServices.get(i);
|
final SystemService service = mServices.get(i);
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStartUser "
|
t.traceBegin("onStartUser-" + userHandle + " " + service.getClass().getName());
|
||||||
+ service.getClass().getName());
|
|
||||||
long time = SystemClock.elapsedRealtime();
|
long time = SystemClock.elapsedRealtime();
|
||||||
try {
|
try {
|
||||||
service.onStartUser(userHandle);
|
service.onStartUser(userHandle);
|
||||||
@@ -192,17 +194,19 @@ public class SystemServiceManager {
|
|||||||
+ " to service " + service.getClass().getName(), ex);
|
+ " to service " + service.getClass().getName(), ex);
|
||||||
}
|
}
|
||||||
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStartUser ");
|
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStartUser ");
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unlockUser(final int userHandle) {
|
public void unlockUser(final int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("ssm.unlockUser-" + userHandle);
|
||||||
Slog.i(TAG, "Calling onUnlockUser u" + userHandle);
|
Slog.i(TAG, "Calling onUnlockUser u" + userHandle);
|
||||||
final int serviceLen = mServices.size();
|
final int serviceLen = mServices.size();
|
||||||
for (int i = 0; i < serviceLen; i++) {
|
for (int i = 0; i < serviceLen; i++) {
|
||||||
final SystemService service = mServices.get(i);
|
final SystemService service = mServices.get(i);
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onUnlockUser "
|
t.traceBegin("onUnlockUser-" + userHandle + " " + service.getClass().getName());
|
||||||
+ service.getClass().getName());
|
|
||||||
long time = SystemClock.elapsedRealtime();
|
long time = SystemClock.elapsedRealtime();
|
||||||
try {
|
try {
|
||||||
service.onUnlockUser(userHandle);
|
service.onUnlockUser(userHandle);
|
||||||
@@ -211,17 +215,19 @@ public class SystemServiceManager {
|
|||||||
+ " to service " + service.getClass().getName(), ex);
|
+ " to service " + service.getClass().getName(), ex);
|
||||||
}
|
}
|
||||||
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onUnlockUser ");
|
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onUnlockUser ");
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void switchUser(final int userHandle) {
|
public void switchUser(final int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("ssm.switchUser-" + userHandle);
|
||||||
Slog.i(TAG, "Calling switchUser u" + userHandle);
|
Slog.i(TAG, "Calling switchUser u" + userHandle);
|
||||||
final int serviceLen = mServices.size();
|
final int serviceLen = mServices.size();
|
||||||
for (int i = 0; i < serviceLen; i++) {
|
for (int i = 0; i < serviceLen; i++) {
|
||||||
final SystemService service = mServices.get(i);
|
final SystemService service = mServices.get(i);
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onSwitchUser "
|
t.traceBegin("onSwitchUser-" + userHandle + " " + service.getClass().getName());
|
||||||
+ service.getClass().getName());
|
|
||||||
long time = SystemClock.elapsedRealtime();
|
long time = SystemClock.elapsedRealtime();
|
||||||
try {
|
try {
|
||||||
service.onSwitchUser(userHandle);
|
service.onSwitchUser(userHandle);
|
||||||
@@ -230,17 +236,19 @@ public class SystemServiceManager {
|
|||||||
+ " to service " + service.getClass().getName(), ex);
|
+ " to service " + service.getClass().getName(), ex);
|
||||||
}
|
}
|
||||||
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onSwitchUser");
|
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onSwitchUser");
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopUser(final int userHandle) {
|
public void stopUser(final int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("ssm.stopUser-" + userHandle);
|
||||||
Slog.i(TAG, "Calling onStopUser u" + userHandle);
|
Slog.i(TAG, "Calling onStopUser u" + userHandle);
|
||||||
final int serviceLen = mServices.size();
|
final int serviceLen = mServices.size();
|
||||||
for (int i = 0; i < serviceLen; i++) {
|
for (int i = 0; i < serviceLen; i++) {
|
||||||
final SystemService service = mServices.get(i);
|
final SystemService service = mServices.get(i);
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onStopUser "
|
t.traceBegin("onStopUser-" + userHandle + " " + service.getClass().getName());
|
||||||
+ service.getClass().getName());
|
|
||||||
long time = SystemClock.elapsedRealtime();
|
long time = SystemClock.elapsedRealtime();
|
||||||
try {
|
try {
|
||||||
service.onStopUser(userHandle);
|
service.onStopUser(userHandle);
|
||||||
@@ -249,17 +257,19 @@ public class SystemServiceManager {
|
|||||||
+ " to service " + service.getClass().getName(), ex);
|
+ " to service " + service.getClass().getName(), ex);
|
||||||
}
|
}
|
||||||
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStopUser");
|
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onStopUser");
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cleanupUser(final int userHandle) {
|
public void cleanupUser(final int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("ssm.cleanupUser-" + userHandle);
|
||||||
Slog.i(TAG, "Calling onCleanupUser u" + userHandle);
|
Slog.i(TAG, "Calling onCleanupUser u" + userHandle);
|
||||||
final int serviceLen = mServices.size();
|
final int serviceLen = mServices.size();
|
||||||
for (int i = 0; i < serviceLen; i++) {
|
for (int i = 0; i < serviceLen; i++) {
|
||||||
final SystemService service = mServices.get(i);
|
final SystemService service = mServices.get(i);
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "onCleanupUser "
|
t.traceBegin("onCleanupUser-" + userHandle + " " + service.getClass().getName());
|
||||||
+ service.getClass().getName());
|
|
||||||
long time = SystemClock.elapsedRealtime();
|
long time = SystemClock.elapsedRealtime();
|
||||||
try {
|
try {
|
||||||
service.onCleanupUser(userHandle);
|
service.onCleanupUser(userHandle);
|
||||||
@@ -268,8 +278,9 @@ public class SystemServiceManager {
|
|||||||
+ " to service " + service.getClass().getName(), ex);
|
+ " to service " + service.getClass().getName(), ex);
|
||||||
}
|
}
|
||||||
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onCleanupUser");
|
warnIfTooLong(SystemClock.elapsedRealtime() - time, service, "onCleanupUser");
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
t.traceEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the safe mode flag for services to query. */
|
/** Sets the safe mode flag for services to query. */
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.Manifest;
|
|||||||
import android.annotation.CallbackExecutor;
|
import android.annotation.CallbackExecutor;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
import android.annotation.UserIdInt;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.ActivityManagerInternal;
|
import android.app.ActivityManagerInternal;
|
||||||
import android.app.AppGlobals;
|
import android.app.AppGlobals;
|
||||||
@@ -51,6 +52,7 @@ import android.os.Parcel;
|
|||||||
import android.os.RemoteCallback;
|
import android.os.RemoteCallback;
|
||||||
import android.os.RemoteCallbackList;
|
import android.os.RemoteCallbackList;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.os.Trace;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -65,6 +67,7 @@ import android.text.TextUtils;
|
|||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
import android.util.TimingsTraceLog;
|
||||||
|
|
||||||
import com.android.internal.app.IVoiceActionCheckCallback;
|
import com.android.internal.app.IVoiceActionCheckCallback;
|
||||||
import com.android.internal.app.IVoiceInteractionManagerService;
|
import com.android.internal.app.IVoiceInteractionManagerService;
|
||||||
@@ -269,7 +272,17 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initForUser(int userHandle) {
|
public void initForUser(@UserIdInt int userHandle) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("initForUser(" + userHandle + ")");
|
||||||
|
try {
|
||||||
|
initForUserNoTracing(userHandle);
|
||||||
|
} finally {
|
||||||
|
t.traceEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initForUserNoTracing(@UserIdInt int userHandle) {
|
||||||
if (DEBUG) Slog.d(TAG, "**************** initForUser user=" + userHandle);
|
if (DEBUG) Slog.d(TAG, "**************** initForUser user=" + userHandle);
|
||||||
String curInteractorStr = Settings.Secure.getStringForUser(
|
String curInteractorStr = Settings.Secure.getStringForUser(
|
||||||
mContext.getContentResolver(),
|
mContext.getContentResolver(),
|
||||||
@@ -426,6 +439,16 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void switchImplementationIfNeededLocked(boolean force) {
|
void switchImplementationIfNeededLocked(boolean force) {
|
||||||
|
final TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
|
||||||
|
t.traceBegin("switchImplementation(" + mCurUser + ")");
|
||||||
|
try {
|
||||||
|
switchImplementationIfNeededNoTracingLocked(force);
|
||||||
|
} finally {
|
||||||
|
t.traceEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void switchImplementationIfNeededNoTracingLocked(boolean force) {
|
||||||
if (!mSafeMode) {
|
if (!mSafeMode) {
|
||||||
String curService = Settings.Secure.getStringForUser(
|
String curService = Settings.Secure.getStringForUser(
|
||||||
mResolver, Settings.Secure.VOICE_INTERACTION_SERVICE, mCurUser);
|
mResolver, Settings.Secure.VOICE_INTERACTION_SERVICE, mCurUser);
|
||||||
|
|||||||
Reference in New Issue
Block a user