/Honor5C-7.0/src/main/java/com/android/server/rms/iaware/hiber/AppHiberRadar.java

https://github.com/dstmath/HWFramework · Java · 135 lines · 102 code · 10 blank · 23 comment · 10 complexity · fb960362b15c193866e22597c1bcd9c3 MD5 · raw file

  1. package com.android.server.rms.iaware.hiber;
  2. import android.os.Parcel;
  3. import android.rms.iaware.AwareLog;
  4. import android.rms.iaware.DumpData;
  5. import android.rms.iaware.StatisticsData;
  6. import huawei.com.android.server.policy.HwGlobalActionsData;
  7. import java.util.ArrayList;
  8. class AppHiberRadar {
  9. private static int APPHIBER_FEATURE_ID = 0;
  10. private static final int MAX_RECORD_LEN = 5;
  11. private static String STATISTIC_SUBTYPE = null;
  12. private static int STATISTIC_TYPE_EXEC = 0;
  13. private static final String TAG = "AppHiber_Radar";
  14. private static AppHiberRadar mInstance;
  15. private ArrayList<DumpData> mDumpData;
  16. private StatisticsData mStatisticsData;
  17. static {
  18. /* JADX: method processing error */
  19. /*
  20. Error: jadx.core.utils.exceptions.DecodeException: Load method exception in method: com.android.server.rms.iaware.hiber.AppHiberRadar.<clinit>():void
  21. at jadx.core.dex.nodes.MethodNode.load(MethodNode.java:113)
  22. at jadx.core.dex.nodes.ClassNode.load(ClassNode.java:256)
  23. at jadx.core.ProcessClass.process(ProcessClass.java:34)
  24. at jadx.api.JadxDecompiler.processClass(JadxDecompiler.java:281)
  25. at jadx.api.JavaClass.decompile(JavaClass.java:59)
  26. at jadx.api.JadxDecompiler$1.run(JadxDecompiler.java:161)
  27. Caused by: jadx.core.utils.exceptions.DecodeException: in method: com.android.server.rms.iaware.hiber.AppHiberRadar.<clinit>():void
  28. at jadx.core.dex.instructions.InsnDecoder.decodeInsns(InsnDecoder.java:46)
  29. at jadx.core.dex.nodes.MethodNode.load(MethodNode.java:98)
  30. ... 5 more
  31. Caused by: java.lang.IllegalArgumentException: bogus opcode: 0073
  32. at com.android.dx.io.OpcodeInfo.get(OpcodeInfo.java:1197)
  33. at com.android.dx.io.OpcodeInfo.getFormat(OpcodeInfo.java:1212)
  34. at com.android.dx.io.instructions.DecodedInstruction.decode(DecodedInstruction.java:72)
  35. at jadx.core.dex.instructions.InsnDecoder.decodeInsns(InsnDecoder.java:43)
  36. ... 6 more
  37. */
  38. /*
  39. // Can't load method instructions.
  40. */
  41. throw new UnsupportedOperationException("Method not decompiled: com.android.server.rms.iaware.hiber.AppHiberRadar.<clinit>():void");
  42. }
  43. AppHiberRadar() {
  44. this.mDumpData = new ArrayList();
  45. this.mStatisticsData = new StatisticsData(APPHIBER_FEATURE_ID, STATISTIC_TYPE_EXEC, STATISTIC_SUBTYPE, 0, 0, 0, 0, 0);
  46. }
  47. protected static synchronized AppHiberRadar getInstance() {
  48. AppHiberRadar appHiberRadar;
  49. synchronized (AppHiberRadar.class) {
  50. if (mInstance == null) {
  51. mInstance = new AppHiberRadar();
  52. }
  53. appHiberRadar = mInstance;
  54. }
  55. return appHiberRadar;
  56. }
  57. protected void parseData(Parcel recvMsgParcel, int dumpId) {
  58. int len = recvMsgParcel.readInt();
  59. if (len <= 0) {
  60. AwareLog.w(TAG, "recvMsgParcel len <= 0");
  61. return;
  62. }
  63. if (len > MAX_RECORD_LEN) {
  64. AwareLog.d(TAG, "len = " + len + " out of range, set " + MAX_RECORD_LEN + " as default.");
  65. len = MAX_RECORD_LEN;
  66. }
  67. switch (dumpId) {
  68. case HwGlobalActionsData.FLAG_AIRPLANEMODE_ON /*1*/:
  69. refreshDumpList(len, recvMsgParcel);
  70. break;
  71. case HwGlobalActionsData.FLAG_AIRPLANEMODE_OFF /*2*/:
  72. refreshStatistics(recvMsgParcel);
  73. break;
  74. default:
  75. AwareLog.w(TAG, "dump Id invalid....");
  76. break;
  77. }
  78. }
  79. private void refreshDumpList(int dataLen, Parcel dataContent) {
  80. ArrayList<DumpData> dumpDataList = new ArrayList();
  81. for (int i = 0; i < dataLen; i++) {
  82. dumpDataList.add((DumpData) DumpData.CREATOR.createFromParcel(dataContent));
  83. }
  84. if (!dumpDataList.isEmpty()) {
  85. synchronized (this.mDumpData) {
  86. this.mDumpData.clear();
  87. this.mDumpData.addAll(dumpDataList);
  88. }
  89. }
  90. }
  91. private void refreshStatistics(Parcel dataContent) {
  92. StatisticsData statisticsData = (StatisticsData) StatisticsData.CREATOR.createFromParcel(dataContent);
  93. if (statisticsData != null) {
  94. synchronized (this.mStatisticsData) {
  95. this.mStatisticsData.setOccurCount(this.mStatisticsData.getOccurCount() + statisticsData.getOccurCount());
  96. this.mStatisticsData.setTotalTime(this.mStatisticsData.getTotalTime() + statisticsData.getTotalTime());
  97. this.mStatisticsData.setEffect(this.mStatisticsData.getEffect() + statisticsData.getEffect());
  98. this.mStatisticsData.setStartTime(this.mStatisticsData.getStartTime() + statisticsData.getStartTime());
  99. this.mStatisticsData.setEndTime(this.mStatisticsData.getEndTime() + statisticsData.getEndTime());
  100. }
  101. }
  102. }
  103. protected ArrayList<DumpData> getDumpData(int time) {
  104. synchronized (this.mDumpData) {
  105. if (this.mDumpData.isEmpty()) {
  106. return null;
  107. }
  108. ArrayList<DumpData> data = new ArrayList(this.mDumpData);
  109. this.mDumpData.clear();
  110. return data;
  111. }
  112. }
  113. protected ArrayList<StatisticsData> getStatisticsData() {
  114. ArrayList<StatisticsData> retList = new ArrayList();
  115. synchronized (this.mStatisticsData) {
  116. retList.add(new StatisticsData(this.mStatisticsData.getFeatureId(), this.mStatisticsData.getType(), this.mStatisticsData.getSubType(), this.mStatisticsData.getOccurCount(), this.mStatisticsData.getTotalTime(), this.mStatisticsData.getEffect(), this.mStatisticsData.getStartTime(), this.mStatisticsData.getEndTime()));
  117. this.mStatisticsData.setOccurCount(0);
  118. this.mStatisticsData.setTotalTime(0);
  119. this.mStatisticsData.setEffect(0);
  120. this.mStatisticsData.setStartTime(0);
  121. this.mStatisticsData.setEndTime(0);
  122. }
  123. return retList.isEmpty() ? null : retList;
  124. }
  125. }