Loading cmds/statsd/src/atoms.proto +52 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,8 @@ message Atom { HardwareFailed hardware_failed = 72; PhysicalDropDetected physical_drop_detected = 73; ChargeCyclesReported charge_cycles_reported = 74; MobileConnectionStateChanged mobile_connection_state_changed = 75; MobileRadioTechnologyChanged mobile_radio_technology_changed = 76; } // Pulled events will start at field 10000. Loading Loading @@ -911,6 +913,56 @@ message ResourceConfigurationChanged { optional int32 uiMode = 17; } /** * Logs changes in the connection state of the mobile radio. * * Logged from: * frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DataConnection.java */ message MobileConnectionStateChanged { // States are from the state machine DataConnection.java. enum State { UNKNOWN = 0; // The connection is inactive, or disconnected. INACTIVE = 1; // The connection is being activated, or connecting. ACTIVATING = 2; // The connection is active, or connected. ACTIVE = 3; // The connection is disconnecting. DISCONNECTING = 4; // The connection is disconnecting after creating a connection. DISCONNECTION_ERROR_CREATING_CONNECTION = 5; } optional State state = 1; // For multi-sim phones, this distinguishes between the sim cards. optional int32 sim_slot_index = 2; // Used to identify the connection. Starts at 0 and increments by 1 for // every new network created. Resets whenever the device reboots. optional int32 data_connection_id = 3; // A bitmask for the capabilities of this connection. // Eg. DEFAULT (internet), MMS, SUPL, DUN, IMS. // Default value (if we have no information): 0 optional int64 capabilities = 4; // If this connection has internet. // This just checks if the DEFAULT bit of capabilities is set. optional bool has_internet = 5; } /** * Logs changes in mobile radio technology. eg: LTE, EDGE, CDMA. * * Logged from: * frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java */ message MobileRadioTechnologyChanged { optional android.telephony.NetworkTypeEnum state = 1; // For multi-sim phones, this distinguishes between the sim cards. optional int32 sim_slot_index = 2; } /** * Logs when Bluetooth is enabled and disabled. * Loading core/java/android/os/BatteryStats.java +14 −22 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo; import android.server.ServerProtoEnums; import android.service.batterystats.BatteryStatsServiceDumpProto; import android.telephony.SignalStrength; import android.telephony.TelephonyManager; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.LongSparseArray; Loading Loading @@ -2270,27 +2271,8 @@ public abstract class BatteryStats implements Parcelable { */ public abstract int getMobileRadioActiveUnknownCount(int which); public static final int DATA_CONNECTION_NONE = SystemProto.DataConnection.NONE; // 0 public static final int DATA_CONNECTION_GPRS = SystemProto.DataConnection.GPRS; // 1 public static final int DATA_CONNECTION_EDGE = SystemProto.DataConnection.EDGE; // 2 public static final int DATA_CONNECTION_UMTS = SystemProto.DataConnection.UMTS; // 3 public static final int DATA_CONNECTION_CDMA = SystemProto.DataConnection.CDMA; // 4 public static final int DATA_CONNECTION_EVDO_0 = SystemProto.DataConnection.EVDO_0; // 5 public static final int DATA_CONNECTION_EVDO_A = SystemProto.DataConnection.EVDO_A; // 6 public static final int DATA_CONNECTION_1xRTT = SystemProto.DataConnection.ONE_X_RTT; // 7 public static final int DATA_CONNECTION_HSDPA = SystemProto.DataConnection.HSDPA; // 8 public static final int DATA_CONNECTION_HSUPA = SystemProto.DataConnection.HSUPA; // 9 public static final int DATA_CONNECTION_HSPA = SystemProto.DataConnection.HSPA; // 10 public static final int DATA_CONNECTION_IDEN = SystemProto.DataConnection.IDEN; // 11 public static final int DATA_CONNECTION_EVDO_B = SystemProto.DataConnection.EVDO_B; // 12 public static final int DATA_CONNECTION_LTE = SystemProto.DataConnection.LTE; // 13 public static final int DATA_CONNECTION_EHRPD = SystemProto.DataConnection.EHRPD; // 14 public static final int DATA_CONNECTION_HSPAP = SystemProto.DataConnection.HSPAP; // 15 public static final int DATA_CONNECTION_GSM = SystemProto.DataConnection.GSM; // 16 public static final int DATA_CONNECTION_TD_SCDMA = SystemProto.DataConnection.TD_SCDMA; // 17 public static final int DATA_CONNECTION_IWLAN = SystemProto.DataConnection.IWLAN; // 18 public static final int DATA_CONNECTION_LTE_CA = SystemProto.DataConnection.LTE_CA; // 19 public static final int DATA_CONNECTION_OTHER = SystemProto.DataConnection.OTHER; // 20 public static final int DATA_CONNECTION_NONE = 0; public static final int DATA_CONNECTION_OTHER = TelephonyManager.MAX_NETWORK_TYPE + 1; static final String[] DATA_CONNECTION_NAMES = { "none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A", Loading Loading @@ -7613,8 +7595,18 @@ public abstract class BatteryStats implements Parcelable { // Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA) for (int i = 0; i < NUM_DATA_CONNECTION_TYPES; ++i) { // Map OTHER to TelephonyManager.NETWORK_TYPE_UNKNOWN and mark NONE as a boolean. boolean isNone = (i == DATA_CONNECTION_NONE); int telephonyNetworkType = i; if (i == DATA_CONNECTION_OTHER) { telephonyNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; } final long pdcToken = proto.start(SystemProto.DATA_CONNECTION); proto.write(SystemProto.DataConnection.NAME, i); if (isNone) { proto.write(SystemProto.DataConnection.IS_NONE, isNone); } else { proto.write(SystemProto.DataConnection.NAME, telephonyNetworkType); } dumpTimer(proto, SystemProto.DataConnection.TOTAL, getPhoneDataConnectionTimer(i), rawRealtimeUs, which); proto.end(pdcToken); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +7 −61 Original line number Diff line number Diff line Loading @@ -5352,69 +5352,15 @@ public class BatteryStatsImpl extends BatteryStats { } public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) { // BatteryStats uses 0 to represent no network type. // Telephony does not have a concept of no network type, and uses 0 to represent unknown. // Unknown is included in DATA_CONNECTION_OTHER. int bin = DATA_CONNECTION_NONE; if (hasData) { switch (dataType) { case TelephonyManager.NETWORK_TYPE_EDGE: bin = DATA_CONNECTION_EDGE; break; case TelephonyManager.NETWORK_TYPE_GPRS: bin = DATA_CONNECTION_GPRS; break; case TelephonyManager.NETWORK_TYPE_UMTS: bin = DATA_CONNECTION_UMTS; break; case TelephonyManager.NETWORK_TYPE_CDMA: bin = DATA_CONNECTION_CDMA; break; case TelephonyManager.NETWORK_TYPE_EVDO_0: bin = DATA_CONNECTION_EVDO_0; break; case TelephonyManager.NETWORK_TYPE_EVDO_A: bin = DATA_CONNECTION_EVDO_A; break; case TelephonyManager.NETWORK_TYPE_1xRTT: bin = DATA_CONNECTION_1xRTT; break; case TelephonyManager.NETWORK_TYPE_HSDPA: bin = DATA_CONNECTION_HSDPA; break; case TelephonyManager.NETWORK_TYPE_HSUPA: bin = DATA_CONNECTION_HSUPA; break; case TelephonyManager.NETWORK_TYPE_HSPA: bin = DATA_CONNECTION_HSPA; break; case TelephonyManager.NETWORK_TYPE_IDEN: bin = DATA_CONNECTION_IDEN; break; case TelephonyManager.NETWORK_TYPE_EVDO_B: bin = DATA_CONNECTION_EVDO_B; break; case TelephonyManager.NETWORK_TYPE_LTE: bin = DATA_CONNECTION_LTE; break; case TelephonyManager.NETWORK_TYPE_EHRPD: bin = DATA_CONNECTION_EHRPD; break; case TelephonyManager.NETWORK_TYPE_HSPAP: bin = DATA_CONNECTION_HSPAP; break; case TelephonyManager.NETWORK_TYPE_GSM: bin = DATA_CONNECTION_GSM; break; case TelephonyManager.NETWORK_TYPE_TD_SCDMA: bin = DATA_CONNECTION_TD_SCDMA; break; case TelephonyManager.NETWORK_TYPE_IWLAN: bin = DATA_CONNECTION_IWLAN; break; case TelephonyManager.NETWORK_TYPE_LTE_CA: bin = DATA_CONNECTION_LTE_CA; break; default: if (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) { bin = dataType; } else { bin = DATA_CONNECTION_OTHER; break; } } if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData); Loading core/proto/android/os/batterystats.proto +6 −26 Original line number Diff line number Diff line Loading @@ -208,32 +208,12 @@ message SystemProto { message DataConnection { option (android.msg_privacy).dest = DEST_AUTOMATIC; enum Name { NONE = 0; GPRS = 1; EDGE = 2; UMTS = 3; CDMA = 4; EVDO_0 = 5; EVDO_A = 6; ONE_X_RTT = 7; // 1xRTT. HSDPA = 8; HSUPA = 9; HSPA = 10; IDEN = 11; EVDO_B = 12; LTE = 13; EHRPD = 14; HSPAP = 15; GSM = 16; TD_SCDMA = 17; IWLAN = 18; LTE_CA = 19; OTHER = 20; }; optional Name name = 1; optional TimerProto total = 2; oneof type { android.telephony.NetworkTypeEnum name = 1; // If is_none is not set, then the name is a valid network type. bool is_none = 2; } optional TimerProto total = 3; }; repeated DataConnection data_connection = 8; Loading core/proto/android/telephony/enums.proto +25 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,31 @@ enum DataConnectionPowerStateEnum { DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE; } // Network type enums, primarily used by android/telephony/TelephonyManager.java. // Do not add negative types. enum NetworkTypeEnum { NETWORK_TYPE_UNKNOWN = 0; NETWORK_TYPE_GPRS = 1; NETWORK_TYPE_EDGE = 2; NETWORK_TYPE_UMTS = 3; NETWORK_TYPE_CDMA = 4; NETWORK_TYPE_EVDO_0 = 5; NETWORK_TYPE_EVDO_A = 6; NETWORK_TYPE_1XRTT = 7; NETWORK_TYPE_HSDPA = 8; NETWORK_TYPE_HSUPA = 9; NETWORK_TYPE_HSPA = 10; NETWORK_TYPE_IDEN = 11; NETWORK_TYPE_EVDO_B = 12; NETWORK_TYPE_LTE = 13; NETWORK_TYPE_EHRPD = 14; NETWORK_TYPE_HSPAP = 15; NETWORK_TYPE_GSM = 16; NETWORK_TYPE_TD_SCDMA = 17; NETWORK_TYPE_IWLAN = 18; NETWORK_TYPE_LTE_CA = 19; } // Signal strength levels, primarily used by android/telephony/SignalStrength.java. enum SignalStrengthEnum { SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; Loading Loading
cmds/statsd/src/atoms.proto +52 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,8 @@ message Atom { HardwareFailed hardware_failed = 72; PhysicalDropDetected physical_drop_detected = 73; ChargeCyclesReported charge_cycles_reported = 74; MobileConnectionStateChanged mobile_connection_state_changed = 75; MobileRadioTechnologyChanged mobile_radio_technology_changed = 76; } // Pulled events will start at field 10000. Loading Loading @@ -911,6 +913,56 @@ message ResourceConfigurationChanged { optional int32 uiMode = 17; } /** * Logs changes in the connection state of the mobile radio. * * Logged from: * frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DataConnection.java */ message MobileConnectionStateChanged { // States are from the state machine DataConnection.java. enum State { UNKNOWN = 0; // The connection is inactive, or disconnected. INACTIVE = 1; // The connection is being activated, or connecting. ACTIVATING = 2; // The connection is active, or connected. ACTIVE = 3; // The connection is disconnecting. DISCONNECTING = 4; // The connection is disconnecting after creating a connection. DISCONNECTION_ERROR_CREATING_CONNECTION = 5; } optional State state = 1; // For multi-sim phones, this distinguishes between the sim cards. optional int32 sim_slot_index = 2; // Used to identify the connection. Starts at 0 and increments by 1 for // every new network created. Resets whenever the device reboots. optional int32 data_connection_id = 3; // A bitmask for the capabilities of this connection. // Eg. DEFAULT (internet), MMS, SUPL, DUN, IMS. // Default value (if we have no information): 0 optional int64 capabilities = 4; // If this connection has internet. // This just checks if the DEFAULT bit of capabilities is set. optional bool has_internet = 5; } /** * Logs changes in mobile radio technology. eg: LTE, EDGE, CDMA. * * Logged from: * frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java */ message MobileRadioTechnologyChanged { optional android.telephony.NetworkTypeEnum state = 1; // For multi-sim phones, this distinguishes between the sim cards. optional int32 sim_slot_index = 2; } /** * Logs when Bluetooth is enabled and disabled. * Loading
core/java/android/os/BatteryStats.java +14 −22 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo; import android.server.ServerProtoEnums; import android.service.batterystats.BatteryStatsServiceDumpProto; import android.telephony.SignalStrength; import android.telephony.TelephonyManager; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.LongSparseArray; Loading Loading @@ -2270,27 +2271,8 @@ public abstract class BatteryStats implements Parcelable { */ public abstract int getMobileRadioActiveUnknownCount(int which); public static final int DATA_CONNECTION_NONE = SystemProto.DataConnection.NONE; // 0 public static final int DATA_CONNECTION_GPRS = SystemProto.DataConnection.GPRS; // 1 public static final int DATA_CONNECTION_EDGE = SystemProto.DataConnection.EDGE; // 2 public static final int DATA_CONNECTION_UMTS = SystemProto.DataConnection.UMTS; // 3 public static final int DATA_CONNECTION_CDMA = SystemProto.DataConnection.CDMA; // 4 public static final int DATA_CONNECTION_EVDO_0 = SystemProto.DataConnection.EVDO_0; // 5 public static final int DATA_CONNECTION_EVDO_A = SystemProto.DataConnection.EVDO_A; // 6 public static final int DATA_CONNECTION_1xRTT = SystemProto.DataConnection.ONE_X_RTT; // 7 public static final int DATA_CONNECTION_HSDPA = SystemProto.DataConnection.HSDPA; // 8 public static final int DATA_CONNECTION_HSUPA = SystemProto.DataConnection.HSUPA; // 9 public static final int DATA_CONNECTION_HSPA = SystemProto.DataConnection.HSPA; // 10 public static final int DATA_CONNECTION_IDEN = SystemProto.DataConnection.IDEN; // 11 public static final int DATA_CONNECTION_EVDO_B = SystemProto.DataConnection.EVDO_B; // 12 public static final int DATA_CONNECTION_LTE = SystemProto.DataConnection.LTE; // 13 public static final int DATA_CONNECTION_EHRPD = SystemProto.DataConnection.EHRPD; // 14 public static final int DATA_CONNECTION_HSPAP = SystemProto.DataConnection.HSPAP; // 15 public static final int DATA_CONNECTION_GSM = SystemProto.DataConnection.GSM; // 16 public static final int DATA_CONNECTION_TD_SCDMA = SystemProto.DataConnection.TD_SCDMA; // 17 public static final int DATA_CONNECTION_IWLAN = SystemProto.DataConnection.IWLAN; // 18 public static final int DATA_CONNECTION_LTE_CA = SystemProto.DataConnection.LTE_CA; // 19 public static final int DATA_CONNECTION_OTHER = SystemProto.DataConnection.OTHER; // 20 public static final int DATA_CONNECTION_NONE = 0; public static final int DATA_CONNECTION_OTHER = TelephonyManager.MAX_NETWORK_TYPE + 1; static final String[] DATA_CONNECTION_NAMES = { "none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A", Loading Loading @@ -7613,8 +7595,18 @@ public abstract class BatteryStats implements Parcelable { // Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA) for (int i = 0; i < NUM_DATA_CONNECTION_TYPES; ++i) { // Map OTHER to TelephonyManager.NETWORK_TYPE_UNKNOWN and mark NONE as a boolean. boolean isNone = (i == DATA_CONNECTION_NONE); int telephonyNetworkType = i; if (i == DATA_CONNECTION_OTHER) { telephonyNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; } final long pdcToken = proto.start(SystemProto.DATA_CONNECTION); proto.write(SystemProto.DataConnection.NAME, i); if (isNone) { proto.write(SystemProto.DataConnection.IS_NONE, isNone); } else { proto.write(SystemProto.DataConnection.NAME, telephonyNetworkType); } dumpTimer(proto, SystemProto.DataConnection.TOTAL, getPhoneDataConnectionTimer(i), rawRealtimeUs, which); proto.end(pdcToken); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +7 −61 Original line number Diff line number Diff line Loading @@ -5352,69 +5352,15 @@ public class BatteryStatsImpl extends BatteryStats { } public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) { // BatteryStats uses 0 to represent no network type. // Telephony does not have a concept of no network type, and uses 0 to represent unknown. // Unknown is included in DATA_CONNECTION_OTHER. int bin = DATA_CONNECTION_NONE; if (hasData) { switch (dataType) { case TelephonyManager.NETWORK_TYPE_EDGE: bin = DATA_CONNECTION_EDGE; break; case TelephonyManager.NETWORK_TYPE_GPRS: bin = DATA_CONNECTION_GPRS; break; case TelephonyManager.NETWORK_TYPE_UMTS: bin = DATA_CONNECTION_UMTS; break; case TelephonyManager.NETWORK_TYPE_CDMA: bin = DATA_CONNECTION_CDMA; break; case TelephonyManager.NETWORK_TYPE_EVDO_0: bin = DATA_CONNECTION_EVDO_0; break; case TelephonyManager.NETWORK_TYPE_EVDO_A: bin = DATA_CONNECTION_EVDO_A; break; case TelephonyManager.NETWORK_TYPE_1xRTT: bin = DATA_CONNECTION_1xRTT; break; case TelephonyManager.NETWORK_TYPE_HSDPA: bin = DATA_CONNECTION_HSDPA; break; case TelephonyManager.NETWORK_TYPE_HSUPA: bin = DATA_CONNECTION_HSUPA; break; case TelephonyManager.NETWORK_TYPE_HSPA: bin = DATA_CONNECTION_HSPA; break; case TelephonyManager.NETWORK_TYPE_IDEN: bin = DATA_CONNECTION_IDEN; break; case TelephonyManager.NETWORK_TYPE_EVDO_B: bin = DATA_CONNECTION_EVDO_B; break; case TelephonyManager.NETWORK_TYPE_LTE: bin = DATA_CONNECTION_LTE; break; case TelephonyManager.NETWORK_TYPE_EHRPD: bin = DATA_CONNECTION_EHRPD; break; case TelephonyManager.NETWORK_TYPE_HSPAP: bin = DATA_CONNECTION_HSPAP; break; case TelephonyManager.NETWORK_TYPE_GSM: bin = DATA_CONNECTION_GSM; break; case TelephonyManager.NETWORK_TYPE_TD_SCDMA: bin = DATA_CONNECTION_TD_SCDMA; break; case TelephonyManager.NETWORK_TYPE_IWLAN: bin = DATA_CONNECTION_IWLAN; break; case TelephonyManager.NETWORK_TYPE_LTE_CA: bin = DATA_CONNECTION_LTE_CA; break; default: if (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) { bin = dataType; } else { bin = DATA_CONNECTION_OTHER; break; } } if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData); Loading
core/proto/android/os/batterystats.proto +6 −26 Original line number Diff line number Diff line Loading @@ -208,32 +208,12 @@ message SystemProto { message DataConnection { option (android.msg_privacy).dest = DEST_AUTOMATIC; enum Name { NONE = 0; GPRS = 1; EDGE = 2; UMTS = 3; CDMA = 4; EVDO_0 = 5; EVDO_A = 6; ONE_X_RTT = 7; // 1xRTT. HSDPA = 8; HSUPA = 9; HSPA = 10; IDEN = 11; EVDO_B = 12; LTE = 13; EHRPD = 14; HSPAP = 15; GSM = 16; TD_SCDMA = 17; IWLAN = 18; LTE_CA = 19; OTHER = 20; }; optional Name name = 1; optional TimerProto total = 2; oneof type { android.telephony.NetworkTypeEnum name = 1; // If is_none is not set, then the name is a valid network type. bool is_none = 2; } optional TimerProto total = 3; }; repeated DataConnection data_connection = 8; Loading
core/proto/android/telephony/enums.proto +25 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,31 @@ enum DataConnectionPowerStateEnum { DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE; } // Network type enums, primarily used by android/telephony/TelephonyManager.java. // Do not add negative types. enum NetworkTypeEnum { NETWORK_TYPE_UNKNOWN = 0; NETWORK_TYPE_GPRS = 1; NETWORK_TYPE_EDGE = 2; NETWORK_TYPE_UMTS = 3; NETWORK_TYPE_CDMA = 4; NETWORK_TYPE_EVDO_0 = 5; NETWORK_TYPE_EVDO_A = 6; NETWORK_TYPE_1XRTT = 7; NETWORK_TYPE_HSDPA = 8; NETWORK_TYPE_HSUPA = 9; NETWORK_TYPE_HSPA = 10; NETWORK_TYPE_IDEN = 11; NETWORK_TYPE_EVDO_B = 12; NETWORK_TYPE_LTE = 13; NETWORK_TYPE_EHRPD = 14; NETWORK_TYPE_HSPAP = 15; NETWORK_TYPE_GSM = 16; NETWORK_TYPE_TD_SCDMA = 17; NETWORK_TYPE_IWLAN = 18; NETWORK_TYPE_LTE_CA = 19; } // Signal strength levels, primarily used by android/telephony/SignalStrength.java. enum SignalStrengthEnum { SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; Loading