mirror of
https://github.com/2009scape/2009Scape-mobile.git
synced 2025-12-21 09:01:56 -07:00
Manual RAM allocator
This commit is contained in:
parent
665de1767d
commit
b7220184ab
7 changed files with 46 additions and 16 deletions
|
|
@ -70,6 +70,22 @@ public final class Tools
|
||||||
public static final String LIBNAME_OPTIFINE = "optifine:OptiFine";
|
public static final String LIBNAME_OPTIFINE = "optifine:OptiFine";
|
||||||
|
|
||||||
public static void launchMinecraft(final LoggableActivity ctx, MinecraftAccount profile, String versionName) throws Throwable {
|
public static void launchMinecraft(final LoggableActivity ctx, MinecraftAccount profile, String versionName) throws Throwable {
|
||||||
|
ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
|
||||||
|
((ActivityManager)ctx.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryInfo(mi);
|
||||||
|
if(LauncherPreferences.PREF_RAM_ALLOCATION > (mi.availMem/1048576L)) {
|
||||||
|
ctx.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
androidx.appcompat.app.AlertDialog.Builder b = new androidx.appcompat.app.AlertDialog.Builder(ctx)
|
||||||
|
.setMessage(ctx.getString(R.string.memory_warning_msg,(mi.availMem/1048576L),LauncherPreferences.PREF_RAM_ALLOCATION))
|
||||||
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialogInterface, int i) {}
|
||||||
|
});
|
||||||
|
b.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
JMinecraftVersionList.Version versionInfo = Tools.getVersionInfo(null,versionName);
|
JMinecraftVersionList.Version versionInfo = Tools.getVersionInfo(null,versionName);
|
||||||
PerVersionConfig.update();
|
PerVersionConfig.update();
|
||||||
PerVersionConfig.VersionConfig pvcConfig = PerVersionConfig.configMap.get(versionName);
|
PerVersionConfig.VersionConfig pvcConfig = PerVersionConfig.configMap.get(versionName);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ import android.os.*;
|
||||||
import androidx.preference.*;
|
import androidx.preference.*;
|
||||||
|
|
||||||
import net.kdt.pojavlaunch.R;
|
import net.kdt.pojavlaunch.R;
|
||||||
|
import net.kdt.pojavlaunch.Tools;
|
||||||
|
|
||||||
import android.content.*;
|
import android.content.*;
|
||||||
|
|
||||||
public class LauncherPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener
|
public class LauncherPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener
|
||||||
|
|
@ -45,6 +47,14 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme
|
||||||
seek6.setValue((int)(LauncherPreferences.PREF_MOUSESPEED*100f));
|
seek6.setValue((int)(LauncherPreferences.PREF_MOUSESPEED*100f));
|
||||||
seek6.setMax(300);
|
seek6.setMax(300);
|
||||||
seek6.setSuffix(" %");
|
seek6.setSuffix(" %");
|
||||||
|
|
||||||
|
CustomSeekBarPreference seek7 = (CustomSeekBarPreference) findPreference("allocation");
|
||||||
|
seek7.setMin(256);
|
||||||
|
if(Tools.CURRENT_ARCHITECTURE.contains("32")) seek7.setMax(800);
|
||||||
|
else seek7.setMax(4096);
|
||||||
|
seek7.setValue(LauncherPreferences.PREF_RAM_ALLOCATION);
|
||||||
|
seek7.setSuffix(" MB");
|
||||||
|
|
||||||
// #724 bug fix
|
// #724 bug fix
|
||||||
if (seek5.getValue() < 25) {
|
if (seek5.getValue() < 25) {
|
||||||
seek5.setValue(100);
|
seek5.setValue(100);
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ public class LauncherPreferences
|
||||||
public static boolean PREF_CHECK_LIBRARY_SHA = true;
|
public static boolean PREF_CHECK_LIBRARY_SHA = true;
|
||||||
public static boolean PREF_DISABLE_GESTURES = false;
|
public static boolean PREF_DISABLE_GESTURES = false;
|
||||||
public static float PREF_MOUSESPEED = 1f;
|
public static float PREF_MOUSESPEED = 1f;
|
||||||
|
public static int PREF_RAM_ALLOCATION=300;
|
||||||
public static void loadPreferences() {
|
public static void loadPreferences() {
|
||||||
PREF_RENDERER = DEFAULT_PREF.getString("renderer", "opengles2");
|
PREF_RENDERER = DEFAULT_PREF.getString("renderer", "opengles2");
|
||||||
PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100);
|
PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100);
|
||||||
|
|
@ -47,6 +48,7 @@ public class LauncherPreferences
|
||||||
PREF_LANGUAGE = DEFAULT_PREF.getString("language", "default");
|
PREF_LANGUAGE = DEFAULT_PREF.getString("language", "default");
|
||||||
PREF_CHECK_LIBRARY_SHA = DEFAULT_PREF.getBoolean("checkLibraries",true);
|
PREF_CHECK_LIBRARY_SHA = DEFAULT_PREF.getBoolean("checkLibraries",true);
|
||||||
PREF_DISABLE_GESTURES = DEFAULT_PREF.getBoolean("disableGestures",false);
|
PREF_DISABLE_GESTURES = DEFAULT_PREF.getBoolean("disableGestures",false);
|
||||||
|
PREF_RAM_ALLOCATION = DEFAULT_PREF.getInt("allocation",300);
|
||||||
// Get double of max Android heap to set default heap size
|
// Get double of max Android heap to set default heap size
|
||||||
int androidHeap = (int) (Runtime.getRuntime().maxMemory() / 1024l / 512l);
|
int androidHeap = (int) (Runtime.getRuntime().maxMemory() / 1024l / 512l);
|
||||||
int doubleAndroidHeap = androidHeap * 2;
|
int doubleAndroidHeap = androidHeap * 2;
|
||||||
|
|
|
||||||
|
|
@ -286,25 +286,21 @@ public class JREUtils
|
||||||
List<String> javaArgList = new ArrayList<String>();
|
List<String> javaArgList = new ArrayList<String>();
|
||||||
javaArgList.add(Tools.DIR_HOME_JRE + "/bin/java");
|
javaArgList.add(Tools.DIR_HOME_JRE + "/bin/java");
|
||||||
Tools.getJavaArgs(ctx, javaArgList);
|
Tools.getJavaArgs(ctx, javaArgList);
|
||||||
if(LauncherPreferences.DEFAULT_PREF.getBoolean("autoRam",true)) {
|
|
||||||
ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
|
|
||||||
((ActivityManager)ctx.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryInfo(mi);
|
|
||||||
purgeArg(javaArgList,"-Xms");
|
purgeArg(javaArgList,"-Xms");
|
||||||
purgeArg(javaArgList,"-Xmx");
|
purgeArg(javaArgList,"-Xmx");
|
||||||
if(Tools.CURRENT_ARCHITECTURE.contains("32") && ((mi.availMem / 1048576L)-50) > 300) {
|
/*if(Tools.CURRENT_ARCHITECTURE.contains("32") && ((mi.availMem / 1048576L)-50) > 300) {
|
||||||
javaArgList.add("-Xms300M");
|
javaArgList.add("-Xms300M");
|
||||||
javaArgList.add("-Xmx300M");
|
javaArgList.add("-Xmx300M");
|
||||||
}else {
|
}else {*/
|
||||||
javaArgList.add("-Xms" + ((mi.availMem / 1048576L) - 50) + "M");
|
javaArgList.add("-Xms" + LauncherPreferences.PREF_RAM_ALLOCATION + "M");
|
||||||
javaArgList.add("-Xmx" + ((mi.availMem / 1048576L) - 50) + "M");
|
javaArgList.add("-Xmx" + LauncherPreferences.PREF_RAM_ALLOCATION + "M");
|
||||||
}
|
//}
|
||||||
ctx.runOnUiThread(new Runnable() {
|
ctx.runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
Toast.makeText(ctx, ctx.getString(R.string.autoram_info_msg,((mi.availMem / 1048576L)-50)), Toast.LENGTH_SHORT).show();
|
Toast.makeText(ctx, ctx.getString(R.string.autoram_info_msg,LauncherPreferences.PREF_RAM_ALLOCATION), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
System.out.println(javaArgList);
|
System.out.println(javaArgList);
|
||||||
}
|
|
||||||
javaArgList.addAll(args);
|
javaArgList.addAll(args);
|
||||||
|
|
||||||
// For debugging only!
|
// For debugging only!
|
||||||
|
|
|
||||||
|
|
@ -184,4 +184,6 @@
|
||||||
<string name="dl_library_sha_pass">Библиотека %s преверена и может быть использована</string>
|
<string name="dl_library_sha_pass">Библиотека %s преверена и может быть использована</string>
|
||||||
<string name="mcl_disable_gestures">Отключение жестов</string>
|
<string name="mcl_disable_gestures">Отключение жестов</string>
|
||||||
<string name="mcl_disable_gestures_subtitle">Отключает жесты, такие как удержание, чтобы сломать блок, и нажатие, чтобы разместить блок.</string>
|
<string name="mcl_disable_gestures_subtitle">Отключает жесты, такие как удержание, чтобы сломать блок, и нажатие, чтобы разместить блок.</string>
|
||||||
|
<string name="mcl_memory_allocation">Выделение памяти</string>
|
||||||
|
<string name="mcl_memory_allocation_subtitle">Управляет количеством выделенной игре памяти</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -220,4 +220,7 @@
|
||||||
<string name="mcl_setting_subtitle_mousespeed">Changes the speed of the software mouse</string>
|
<string name="mcl_setting_subtitle_mousespeed">Changes the speed of the software mouse</string>
|
||||||
<string name="customctrl_passthru">Mouse pass-thru</string>
|
<string name="customctrl_passthru">Mouse pass-thru</string>
|
||||||
<string name="customctrl_rounded">Rounded</string>
|
<string name="customctrl_rounded">Rounded</string>
|
||||||
|
<string name="memory_warning_msg">The current amount of free RAM (%d) is lower than allocated RAM (%d), which may lead to crashes. Change the allocation if the game crashes.</string>
|
||||||
|
<string name="mcl_memory_allocation">Memory allocation</string>
|
||||||
|
<string name="mcl_memory_allocation_subtitle">Controls how much memory is given to Minecraft</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -53,18 +53,19 @@
|
||||||
android:summary="@string/mcl_setting_subtitle_hide_sidebar"
|
android:summary="@string/mcl_setting_subtitle_hide_sidebar"
|
||||||
android:title="@string/mcl_setting_title_hide_sidebar"
|
android:title="@string/mcl_setting_title_hide_sidebar"
|
||||||
app2:icon="@drawable/hide_sidebar" />
|
app2:icon="@drawable/hide_sidebar" />
|
||||||
|
<net.kdt.pojavlaunch.prefs.CustomSeekBarPreference
|
||||||
|
android:key="allocation"
|
||||||
|
android:icon="@drawable/ic_auto_ram"
|
||||||
|
android:summary="@string/mcl_memory_allocation_subtitle"
|
||||||
|
android:title="@string/mcl_memory_allocation"
|
||||||
|
app2:showSeekBarValue="true"
|
||||||
|
app2:selectable="false"/>
|
||||||
<androidx.preference.SwitchPreferenceCompat
|
<androidx.preference.SwitchPreferenceCompat
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="ignoreNotch"
|
android:key="ignoreNotch"
|
||||||
android:summary="@string/mcl_setting_subtitle_ignore_notch"
|
android:summary="@string/mcl_setting_subtitle_ignore_notch"
|
||||||
android:title="@string/mcl_setting_title_ignore_notch"
|
android:title="@string/mcl_setting_title_ignore_notch"
|
||||||
app2:icon="@drawable/ignore_notch" />
|
app2:icon="@drawable/ignore_notch" />
|
||||||
<androidx.preference.SwitchPreferenceCompat
|
|
||||||
android:defaultValue="true"
|
|
||||||
android:icon="@drawable/ic_auto_ram"
|
|
||||||
android:key="autoRam"
|
|
||||||
android:summary="@string/auto_ram_subtitle"
|
|
||||||
android:title="@string/auto_ram_title" />
|
|
||||||
<androidx.preference.SwitchPreferenceCompat
|
<androidx.preference.SwitchPreferenceCompat
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:icon="@drawable/ic_map_rmb"
|
android:icon="@drawable/ic_map_rmb"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue