mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-18 09:07:48 -04:00
Add automatic memory adjuster
This commit is contained in:
parent
9dbc114177
commit
ddd9a27cdb
@ -21,6 +21,7 @@ import net.kdt.pojavlaunch.utils.*;
|
|||||||
import net.kdt.pojavlaunch.value.*;
|
import net.kdt.pojavlaunch.value.*;
|
||||||
import org.lwjgl.glfw.*;
|
import org.lwjgl.glfw.*;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public final class Tools
|
public final class Tools
|
||||||
{
|
{
|
||||||
@ -103,7 +104,7 @@ public final class Tools
|
|||||||
ctx.appendlnToLog("full args: "+javaArgList.toString());
|
ctx.appendlnToLog("full args: "+javaArgList.toString());
|
||||||
JREUtils.launchJavaVM(ctx, javaArgList);
|
JREUtils.launchJavaVM(ctx, javaArgList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getJavaArgs(Context ctx, List<String> javaArgList) {
|
public static void getJavaArgs(Context ctx, List<String> javaArgList) {
|
||||||
List<String> overrideableArgList = new ArrayList<String>();
|
List<String> overrideableArgList = new ArrayList<String>();
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import android.app.*;
|
|||||||
import android.content.*;
|
import android.content.*;
|
||||||
import android.system.*;
|
import android.system.*;
|
||||||
import android.util.*;
|
import android.util.*;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
@ -264,7 +265,20 @@ 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,"-Xmx");
|
||||||
|
javaArgList.add("-Xms"+((mi.availMem / 1048576L)-50)+"M");
|
||||||
|
javaArgList.add("-Xmx"+((mi.availMem / 1048576L)-50)+"M");
|
||||||
|
ctx.runOnUiThread(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
Toast.makeText(ctx, ctx.getString(R.string.autoram_info_msg,((mi.availMem / 1048576L)-50)), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
System.out.println(javaArgList);
|
||||||
|
}
|
||||||
javaArgList.addAll(args);
|
javaArgList.addAll(args);
|
||||||
|
|
||||||
// For debugging only!
|
// For debugging only!
|
||||||
@ -275,6 +289,7 @@ public class JREUtils
|
|||||||
}
|
}
|
||||||
ctx.appendlnToLog("Executing JVM: \"" + sbJavaArgs.toString() + "\"");
|
ctx.appendlnToLog("Executing JVM: \"" + sbJavaArgs.toString() + "\"");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
JREUtils.setJavaEnvironment(ctx, null);
|
JREUtils.setJavaEnvironment(ctx, null);
|
||||||
JREUtils.initJavaRuntime();
|
JREUtils.initJavaRuntime();
|
||||||
JREUtils.chdir(Tools.DIR_GAME_NEW);
|
JREUtils.chdir(Tools.DIR_GAME_NEW);
|
||||||
@ -300,7 +315,14 @@ public class JREUtils
|
|||||||
}
|
}
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
|
private static void purgeArg(List<String> argList, String argStart) {
|
||||||
|
for(int i = 0; i < argList.size(); i++) {
|
||||||
|
final String arg = argList.get(i);
|
||||||
|
if(arg.startsWith(argStart)) {
|
||||||
|
argList.remove(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public static native int chdir(String path);
|
public static native int chdir(String path);
|
||||||
public static native boolean dlopen(String libPath);
|
public static native boolean dlopen(String libPath);
|
||||||
public static native void redirectLogcat();
|
public static native void redirectLogcat();
|
||||||
|
@ -221,4 +221,7 @@
|
|||||||
<string name="main_nocrash">No crash detected</string>
|
<string name="main_nocrash">No crash detected</string>
|
||||||
<string name="main_nolog">No log.</string>
|
<string name="main_nolog">No log.</string>
|
||||||
<string name="main_no_news_feed">Failed to fetch the news feed !</string>
|
<string name="main_no_news_feed">Failed to fetch the news feed !</string>
|
||||||
|
<string name="auto_ram_subtitle">Enables automatic RAM adjuster</string>
|
||||||
|
<string name="auto_ram_title">Auto RAM</string>
|
||||||
|
<string name="autoram_info_msg">Memory set to %d MB</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -32,6 +32,11 @@
|
|||||||
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" />
|
||||||
|
<androidx.preference.SwitchPreferenceCompat
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:key="autoRam"
|
||||||
|
android:summary="@string/auto_ram_subtitle"
|
||||||
|
android:title="@string/auto_ram_title" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:dialogTitle="@string/mcl_setting_title_javaargs"
|
android:dialogTitle="@string/mcl_setting_title_javaargs"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user