Loading services/core/java/com/android/server/am/AppStartInfoTracker.java +47 −18 Original line number Diff line number Diff line Loading @@ -211,11 +211,17 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } mInProgRecords.get(id).setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.remove(id); ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } info.setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.removeAt(index); } } Loading @@ -224,16 +230,24 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null || app == null) { mInProgRecords.removeAt(index); return; } if (app != null) { ApplicationStartInfo info = mInProgRecords.get(id); info.setStartType((int) temperature); addBaseFieldsFromProcessRecord(info, app); mInProgRecords.put(id, addStartInfoLocked(info)); ApplicationStartInfo newInfo = addStartInfoLocked(info); if (newInfo == null) { // newInfo can be null if records are added before load from storage is // complete. In this case the newly added record will be lost. mInProgRecords.removeAt(index); } else { mInProgRecords.remove(id); mInProgRecords.setValueAt(index, newInfo); } } } Loading @@ -243,12 +257,17 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.remove(id); mInProgRecords.removeAt(index); } } Loading @@ -258,10 +277,15 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.setStartupState(ApplicationStartInfo.STARTUP_STATE_FIRST_FRAME_DRAWN); info.setLaunchMode(launchMode); checkCompletenessAndCallback(info); Loading @@ -273,13 +297,18 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.addStartupTimestamp(ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN, timestampNanos); mInProgRecords.remove(id); mInProgRecords.removeAt(index); } } Loading Loading
services/core/java/com/android/server/am/AppStartInfoTracker.java +47 −18 Original line number Diff line number Diff line Loading @@ -211,11 +211,17 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } mInProgRecords.get(id).setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.remove(id); ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } info.setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.removeAt(index); } } Loading @@ -224,16 +230,24 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null || app == null) { mInProgRecords.removeAt(index); return; } if (app != null) { ApplicationStartInfo info = mInProgRecords.get(id); info.setStartType((int) temperature); addBaseFieldsFromProcessRecord(info, app); mInProgRecords.put(id, addStartInfoLocked(info)); ApplicationStartInfo newInfo = addStartInfoLocked(info); if (newInfo == null) { // newInfo can be null if records are added before load from storage is // complete. In this case the newly added record will be lost. mInProgRecords.removeAt(index); } else { mInProgRecords.remove(id); mInProgRecords.setValueAt(index, newInfo); } } } Loading @@ -243,12 +257,17 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.setStartupState(ApplicationStartInfo.STARTUP_STATE_ERROR); mInProgRecords.remove(id); mInProgRecords.removeAt(index); } } Loading @@ -258,10 +277,15 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.setStartupState(ApplicationStartInfo.STARTUP_STATE_FIRST_FRAME_DRAWN); info.setLaunchMode(launchMode); checkCompletenessAndCallback(info); Loading @@ -273,13 +297,18 @@ public final class AppStartInfoTracker { if (!mEnabled) { return; } if (!mInProgRecords.containsKey(id)) { int index = mInProgRecords.indexOfKey(id); if (index < 0) { return; } ApplicationStartInfo info = mInProgRecords.valueAt(index); if (info == null) { mInProgRecords.removeAt(index); return; } ApplicationStartInfo info = mInProgRecords.get(id); info.addStartupTimestamp(ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN, timestampNanos); mInProgRecords.remove(id); mInProgRecords.removeAt(index); } } Loading