summaryrefslogtreecommitdiff
path: root/src/com/android/settings/development/MemoryUsagePreferenceController.java
diff options
context:
space:
mode:
authorjeffreyhuang <jeffreyhuang@google.com>2017-11-14 15:09:12 -0800
committerjeffreyhuang <jeffreyhuang@google.com>2017-11-14 17:05:25 -0800
commitbf234afbbb795d25542785122645bfbbe89aff1b (patch)
tree5d967e7a5fb7ff7baa5186030e4ef8917a2c4c40 /src/com/android/settings/development/MemoryUsagePreferenceController.java
parente91f6ea3e70e6a4e6e460c924bcdc89ea5f3547a (diff)
Speed up dev options
- Put memory updates on background thread - Prevent update state from being called twice Bug: 69000975 Test: Manual Change-Id: I186bc25f6b74a5098b1737891efee3a6855dc996
Diffstat (limited to 'src/com/android/settings/development/MemoryUsagePreferenceController.java')
-rw-r--r--src/com/android/settings/development/MemoryUsagePreferenceController.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/com/android/settings/development/MemoryUsagePreferenceController.java b/src/com/android/settings/development/MemoryUsagePreferenceController.java
index 1b589fd329..9471b904f9 100644
--- a/src/com/android/settings/development/MemoryUsagePreferenceController.java
+++ b/src/com/android/settings/development/MemoryUsagePreferenceController.java
@@ -27,6 +27,7 @@ import com.android.settings.applications.ProcStatsData;
import com.android.settings.applications.ProcessStatsBase;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+import com.android.settingslib.utils.ThreadUtils;
public class MemoryUsagePreferenceController extends DeveloperOptionsPreferenceController implements
PreferenceControllerMixin {
@@ -56,14 +57,19 @@ public class MemoryUsagePreferenceController extends DeveloperOptionsPreferenceC
@Override
public void updateState(Preference preference) {
- mProcStatsData.refreshStats(true);
- final ProcStatsData.MemInfo memInfo = mProcStatsData.getMemInfo();
- final String usedResult = Formatter.formatShortFileSize(mContext,
- (long) memInfo.realUsedRam);
- final String totalResult = Formatter.formatShortFileSize(mContext,
- (long) memInfo.realTotalRam);
- mPreference.setSummary(mContext.getString(R.string.memory_summary,
- usedResult, totalResult));
+ // This is posted on the background thread to speed up fragment launch time for dev options
+ // mProcStasData.refreshStats(true) takes ~20ms to run.
+ ThreadUtils.postOnBackgroundThread(() -> {
+ mProcStatsData.refreshStats(true);
+ final ProcStatsData.MemInfo memInfo = mProcStatsData.getMemInfo();
+ final String usedResult = Formatter.formatShortFileSize(mContext,
+ (long) memInfo.realUsedRam);
+ final String totalResult = Formatter.formatShortFileSize(mContext,
+ (long) memInfo.realTotalRam);
+ ThreadUtils.postOnMainThread(
+ () -> mPreference.setSummary(mContext.getString(R.string.memory_summary,
+ usedResult, totalResult)));
+ });
}
@VisibleForTesting