Loading services/core/java/com/android/server/location/eventlog/LocationEventLog.java +91 −17 Original line number Diff line number Diff line Loading @@ -58,13 +58,17 @@ public class LocationEventLog extends LocalEventLog { private static final int EVENT_LOCATION_ENABLED = 2; private static final int EVENT_PROVIDER_ENABLED = 3; private static final int EVENT_PROVIDER_MOCKED = 4; private static final int EVENT_PROVIDER_REGISTER_CLIENT = 5; private static final int EVENT_PROVIDER_UNREGISTER_CLIENT = 6; private static final int EVENT_PROVIDER_UPDATE_REQUEST = 7; private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 8; private static final int EVENT_PROVIDER_DELIVER_LOCATION = 9; private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 10; private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 11; private static final int EVENT_PROVIDER_CLIENT_REGISTER = 5; private static final int EVENT_PROVIDER_CLIENT_UNREGISTER = 6; private static final int EVENT_PROVIDER_CLIENT_FOREGROUND = 7; private static final int EVENT_PROVIDER_CLIENT_BACKGROUND = 8; private static final int EVENT_PROVIDER_CLIENT_PERMITTED = 9; private static final int EVENT_PROVIDER_CLIENT_UNPERMITTED = 10; private static final int EVENT_PROVIDER_UPDATE_REQUEST = 11; private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 12; private static final int EVENT_PROVIDER_DELIVER_LOCATION = 13; private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 14; private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 15; @GuardedBy("mAggregateStats") private final ArrayMap<String, ArrayMap<CallerIdentity, AggregateStats>> mAggregateStats; Loading Loading @@ -126,13 +130,13 @@ public class LocationEventLog extends LocalEventLog { /** Logs a new client registration for a location provider. */ public void logProviderClientRegistered(String provider, CallerIdentity identity, LocationRequest request) { addLogEvent(EVENT_PROVIDER_REGISTER_CLIENT, provider, identity, request); addLogEvent(EVENT_PROVIDER_CLIENT_REGISTER, provider, identity, request); getAggregateStats(provider, identity).markRequestAdded(request.getIntervalMillis()); } /** Logs a client unregistration for a location provider. */ public void logProviderClientUnregistered(String provider, CallerIdentity identity) { addLogEvent(EVENT_PROVIDER_UNREGISTER_CLIENT, provider, identity); addLogEvent(EVENT_PROVIDER_CLIENT_UNREGISTER, provider, identity); getAggregateStats(provider, identity).markRequestRemoved(); } Loading @@ -148,14 +152,34 @@ public class LocationEventLog extends LocalEventLog { /** Logs a client for a location provider entering the foreground state. */ public void logProviderClientForeground(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_FOREGROUND, provider, identity); } getAggregateStats(provider, identity).markRequestForeground(); } /** Logs a client for a location provider leaving the foreground state. */ public void logProviderClientBackground(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_BACKGROUND, provider, identity); } getAggregateStats(provider, identity).markRequestBackground(); } /** Logs a client for a location provider entering the permitted state. */ public void logProviderClientPermitted(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_PERMITTED, provider, identity); } } /** Logs a client for a location provider leaving the permitted state. */ public void logProviderClientUnpermitted(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_UNPERMITTED, provider, identity); } } /** Logs a change to the provider request for a location provider. */ public void logProviderUpdateRequest(String provider, ProviderRequest request) { addLogEvent(EVENT_PROVIDER_UPDATE_REQUEST, provider, request); Loading Loading @@ -201,12 +225,24 @@ public class LocationEventLog extends LocalEventLog { (Boolean) args[2]); case EVENT_PROVIDER_MOCKED: return new ProviderMockedEvent(timeDelta, (String) args[0], (Boolean) args[1]); case EVENT_PROVIDER_REGISTER_CLIENT: return new ProviderRegisterEvent(timeDelta, (String) args[0], true, case EVENT_PROVIDER_CLIENT_REGISTER: return new ProviderClientRegisterEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1], (LocationRequest) args[2]); case EVENT_PROVIDER_UNREGISTER_CLIENT: return new ProviderRegisterEvent(timeDelta, (String) args[0], false, case EVENT_PROVIDER_CLIENT_UNREGISTER: return new ProviderClientRegisterEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1], null); case EVENT_PROVIDER_CLIENT_FOREGROUND: return new ProviderClientForegroundEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_BACKGROUND: return new ProviderClientForegroundEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_PERMITTED: return new ProviderClientPermittedEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_UNPERMITTED: return new ProviderClientPermittedEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1]); case EVENT_PROVIDER_UPDATE_REQUEST: return new ProviderUpdateEvent(timeDelta, (String) args[0], (ProviderRequest) args[1]); Loading Loading @@ -279,13 +315,13 @@ public class LocationEventLog extends LocalEventLog { } } private static final class ProviderRegisterEvent extends ProviderEvent { private static final class ProviderClientRegisterEvent extends ProviderEvent { private final boolean mRegistered; private final CallerIdentity mIdentity; @Nullable private final LocationRequest mLocationRequest; ProviderRegisterEvent(long timeDelta, String provider, boolean registered, ProviderClientRegisterEvent(long timeDelta, String provider, boolean registered, CallerIdentity identity, @Nullable LocationRequest locationRequest) { super(timeDelta, provider); mRegistered = registered; Loading @@ -296,11 +332,49 @@ public class LocationEventLog extends LocalEventLog { @Override public String getLogString() { if (mRegistered) { return mProvider + " provider " + "+registration " + mIdentity + " -> " return mProvider + " provider +registration " + mIdentity + " -> " + mLocationRequest; } else { return mProvider + " provider " + "-registration " + mIdentity; return mProvider + " provider -registration " + mIdentity; } } } private static final class ProviderClientForegroundEvent extends ProviderEvent { private final boolean mForeground; private final CallerIdentity mIdentity; ProviderClientForegroundEvent(long timeDelta, String provider, boolean foreground, CallerIdentity identity) { super(timeDelta, provider); mForeground = foreground; mIdentity = identity; } @Override public String getLogString() { return mProvider + " provider client " + mIdentity + " -> " + (mForeground ? "foreground" : "background"); } } private static final class ProviderClientPermittedEvent extends ProviderEvent { private final boolean mPermitted; private final CallerIdentity mIdentity; ProviderClientPermittedEvent(long timeDelta, String provider, boolean permitted, CallerIdentity identity) { super(timeDelta, provider); mPermitted = permitted; mIdentity = identity; } @Override public String getLogString() { return mProvider + " provider client " + mIdentity + " -> " + (mPermitted ? "permitted" : "unpermitted"); } } Loading services/core/java/com/android/server/location/provider/LocationProviderManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -523,6 +523,13 @@ public class LocationProviderManager extends } mPermitted = permitted; if (mForeground) { EVENT_LOG.logProviderClientPermitted(mName, getIdentity()); } else { EVENT_LOG.logProviderClientUnpermitted(mName, getIdentity()); } return true; } Loading Loading
services/core/java/com/android/server/location/eventlog/LocationEventLog.java +91 −17 Original line number Diff line number Diff line Loading @@ -58,13 +58,17 @@ public class LocationEventLog extends LocalEventLog { private static final int EVENT_LOCATION_ENABLED = 2; private static final int EVENT_PROVIDER_ENABLED = 3; private static final int EVENT_PROVIDER_MOCKED = 4; private static final int EVENT_PROVIDER_REGISTER_CLIENT = 5; private static final int EVENT_PROVIDER_UNREGISTER_CLIENT = 6; private static final int EVENT_PROVIDER_UPDATE_REQUEST = 7; private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 8; private static final int EVENT_PROVIDER_DELIVER_LOCATION = 9; private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 10; private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 11; private static final int EVENT_PROVIDER_CLIENT_REGISTER = 5; private static final int EVENT_PROVIDER_CLIENT_UNREGISTER = 6; private static final int EVENT_PROVIDER_CLIENT_FOREGROUND = 7; private static final int EVENT_PROVIDER_CLIENT_BACKGROUND = 8; private static final int EVENT_PROVIDER_CLIENT_PERMITTED = 9; private static final int EVENT_PROVIDER_CLIENT_UNPERMITTED = 10; private static final int EVENT_PROVIDER_UPDATE_REQUEST = 11; private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 12; private static final int EVENT_PROVIDER_DELIVER_LOCATION = 13; private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 14; private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 15; @GuardedBy("mAggregateStats") private final ArrayMap<String, ArrayMap<CallerIdentity, AggregateStats>> mAggregateStats; Loading Loading @@ -126,13 +130,13 @@ public class LocationEventLog extends LocalEventLog { /** Logs a new client registration for a location provider. */ public void logProviderClientRegistered(String provider, CallerIdentity identity, LocationRequest request) { addLogEvent(EVENT_PROVIDER_REGISTER_CLIENT, provider, identity, request); addLogEvent(EVENT_PROVIDER_CLIENT_REGISTER, provider, identity, request); getAggregateStats(provider, identity).markRequestAdded(request.getIntervalMillis()); } /** Logs a client unregistration for a location provider. */ public void logProviderClientUnregistered(String provider, CallerIdentity identity) { addLogEvent(EVENT_PROVIDER_UNREGISTER_CLIENT, provider, identity); addLogEvent(EVENT_PROVIDER_CLIENT_UNREGISTER, provider, identity); getAggregateStats(provider, identity).markRequestRemoved(); } Loading @@ -148,14 +152,34 @@ public class LocationEventLog extends LocalEventLog { /** Logs a client for a location provider entering the foreground state. */ public void logProviderClientForeground(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_FOREGROUND, provider, identity); } getAggregateStats(provider, identity).markRequestForeground(); } /** Logs a client for a location provider leaving the foreground state. */ public void logProviderClientBackground(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_BACKGROUND, provider, identity); } getAggregateStats(provider, identity).markRequestBackground(); } /** Logs a client for a location provider entering the permitted state. */ public void logProviderClientPermitted(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_PERMITTED, provider, identity); } } /** Logs a client for a location provider leaving the permitted state. */ public void logProviderClientUnpermitted(String provider, CallerIdentity identity) { if (Build.IS_DEBUGGABLE || D) { addLogEvent(EVENT_PROVIDER_CLIENT_UNPERMITTED, provider, identity); } } /** Logs a change to the provider request for a location provider. */ public void logProviderUpdateRequest(String provider, ProviderRequest request) { addLogEvent(EVENT_PROVIDER_UPDATE_REQUEST, provider, request); Loading Loading @@ -201,12 +225,24 @@ public class LocationEventLog extends LocalEventLog { (Boolean) args[2]); case EVENT_PROVIDER_MOCKED: return new ProviderMockedEvent(timeDelta, (String) args[0], (Boolean) args[1]); case EVENT_PROVIDER_REGISTER_CLIENT: return new ProviderRegisterEvent(timeDelta, (String) args[0], true, case EVENT_PROVIDER_CLIENT_REGISTER: return new ProviderClientRegisterEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1], (LocationRequest) args[2]); case EVENT_PROVIDER_UNREGISTER_CLIENT: return new ProviderRegisterEvent(timeDelta, (String) args[0], false, case EVENT_PROVIDER_CLIENT_UNREGISTER: return new ProviderClientRegisterEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1], null); case EVENT_PROVIDER_CLIENT_FOREGROUND: return new ProviderClientForegroundEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_BACKGROUND: return new ProviderClientForegroundEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_PERMITTED: return new ProviderClientPermittedEvent(timeDelta, (String) args[0], true, (CallerIdentity) args[1]); case EVENT_PROVIDER_CLIENT_UNPERMITTED: return new ProviderClientPermittedEvent(timeDelta, (String) args[0], false, (CallerIdentity) args[1]); case EVENT_PROVIDER_UPDATE_REQUEST: return new ProviderUpdateEvent(timeDelta, (String) args[0], (ProviderRequest) args[1]); Loading Loading @@ -279,13 +315,13 @@ public class LocationEventLog extends LocalEventLog { } } private static final class ProviderRegisterEvent extends ProviderEvent { private static final class ProviderClientRegisterEvent extends ProviderEvent { private final boolean mRegistered; private final CallerIdentity mIdentity; @Nullable private final LocationRequest mLocationRequest; ProviderRegisterEvent(long timeDelta, String provider, boolean registered, ProviderClientRegisterEvent(long timeDelta, String provider, boolean registered, CallerIdentity identity, @Nullable LocationRequest locationRequest) { super(timeDelta, provider); mRegistered = registered; Loading @@ -296,11 +332,49 @@ public class LocationEventLog extends LocalEventLog { @Override public String getLogString() { if (mRegistered) { return mProvider + " provider " + "+registration " + mIdentity + " -> " return mProvider + " provider +registration " + mIdentity + " -> " + mLocationRequest; } else { return mProvider + " provider " + "-registration " + mIdentity; return mProvider + " provider -registration " + mIdentity; } } } private static final class ProviderClientForegroundEvent extends ProviderEvent { private final boolean mForeground; private final CallerIdentity mIdentity; ProviderClientForegroundEvent(long timeDelta, String provider, boolean foreground, CallerIdentity identity) { super(timeDelta, provider); mForeground = foreground; mIdentity = identity; } @Override public String getLogString() { return mProvider + " provider client " + mIdentity + " -> " + (mForeground ? "foreground" : "background"); } } private static final class ProviderClientPermittedEvent extends ProviderEvent { private final boolean mPermitted; private final CallerIdentity mIdentity; ProviderClientPermittedEvent(long timeDelta, String provider, boolean permitted, CallerIdentity identity) { super(timeDelta, provider); mPermitted = permitted; mIdentity = identity; } @Override public String getLogString() { return mProvider + " provider client " + mIdentity + " -> " + (mPermitted ? "permitted" : "unpermitted"); } } Loading
services/core/java/com/android/server/location/provider/LocationProviderManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -523,6 +523,13 @@ public class LocationProviderManager extends } mPermitted = permitted; if (mForeground) { EVENT_LOG.logProviderClientPermitted(mName, getIdentity()); } else { EVENT_LOG.logProviderClientUnpermitted(mName, getIdentity()); } return true; } Loading