Apply a new icon cache mechanism for memory improvement
- Avoid loading all app icons at once to decrease memory usage. - Only load visible icons when entering the apps page. - Reserve icon placeholder to alleviate icon loading flicker. - Release icon cache when low memory or leaving apps page. Bug: 187118427 Bug: 209898662 Test: manual check the smoothness and memory usage of apps pages. Change-Id: Ifc3c2a73cc88d6e42739df4e8208445afa12e0ea
This commit is contained in:
@@ -29,6 +29,7 @@ import com.android.settings.applications.AppStateBaseBridge;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.applications.AppUtils;
|
||||
import com.android.settingslib.applications.ApplicationsState;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppFilter;
|
||||
@@ -125,6 +126,10 @@ public class UnrestrictedDataAccessPreferenceController extends BasePreferenceCo
|
||||
return;
|
||||
}
|
||||
|
||||
// Preload top visible icons of app list.
|
||||
AppUtils.preloadTopIcons(mContext, apps,
|
||||
mContext.getResources().getInteger(R.integer.config_num_visible_app_icons));
|
||||
|
||||
// Create apps key set for removing useless preferences
|
||||
final Set<String> appsKeySet = new TreeSet<>();
|
||||
// Add or update preferences
|
||||
|
Reference in New Issue
Block a user