scale UIL parallelization based on amount of RAM the device comes with
This uses the total RAM that the device comes with as a rough measure of the devices capabilities. That is then used to set how many parallel threads UIL can use.
This commit is contained in:
parent
504286d44b
commit
b10fa425b5
@ -397,7 +397,7 @@ public class FDroidApp extends Application {
|
|||||||
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
|
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
|
||||||
.imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
|
.imageDownloader(new ImageLoaderForUIL(getApplicationContext()))
|
||||||
.defaultDisplayImageOptions(Utils.getDefaultDisplayImageOptionsBuilder().build())
|
.defaultDisplayImageOptions(Utils.getDefaultDisplayImageOptionsBuilder().build())
|
||||||
.threadPoolSize(4)
|
.threadPoolSize(getThreadPoolSize())
|
||||||
.build();
|
.build();
|
||||||
ImageLoader.getInstance().init(config);
|
ImageLoader.getInstance().init(config);
|
||||||
|
|
||||||
@ -470,6 +470,24 @@ public class FDroidApp extends Application {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the number of threads Universal Image Loader should use, based on
|
||||||
|
* the total RAM in the device. Devices with lots of RAM can do lots of
|
||||||
|
* parallel operations for fast icon loading.
|
||||||
|
*/
|
||||||
|
@TargetApi(16)
|
||||||
|
private int getThreadPoolSize() {
|
||||||
|
if (Build.VERSION.SDK_INT >= 16) {
|
||||||
|
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
|
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
|
||||||
|
if (activityManager != null) {
|
||||||
|
activityManager.getMemoryInfo(memInfo);
|
||||||
|
return (int) Math.max(1, Math.min(16, memInfo.totalMem / 256 / 1024 / 1024));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@TargetApi(18)
|
@TargetApi(18)
|
||||||
private BluetoothAdapter getBluetoothAdapter() {
|
private BluetoothAdapter getBluetoothAdapter() {
|
||||||
// to use the new, recommended way of getting the adapter
|
// to use the new, recommended way of getting the adapter
|
||||||
|
Loading…
x
Reference in New Issue
Block a user