diff options
author | jeffreyhuang <jeffreyhuang@google.com> | 2017-11-14 15:09:12 -0800 |
---|---|---|
committer | jeffreyhuang <jeffreyhuang@google.com> | 2017-11-14 17:05:25 -0800 |
commit | bf234afbbb795d25542785122645bfbbe89aff1b (patch) | |
tree | 5d967e7a5fb7ff7baa5186030e4ef8917a2c4c40 /src/com/android/settings/development/MemoryUsagePreferenceController.java | |
parent | e91f6ea3e70e6a4e6e460c924bcdc89ea5f3547a (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.java | 22 |
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 |