VMLauncher... TODO LD_LIBRARY_PATH to support Android 5...

This commit is contained in:
khanhduytran0
2020-08-23 12:45:04 +07:00
parent 965b9ff10e
commit ffc2f640d9
11 changed files with 23 additions and 6 deletions

View File

@@ -0,0 +1,7 @@
package com.oracle.dalvik;
public final class VMLauncher {
private VMLauncher() {
}
public static native int launchJVM(String[] args);
}

View File

@@ -4,6 +4,8 @@ package net.kdt.pojavlaunch;
public class BinaryExecutor
{
public static void initJavaRuntime() {
chdir(Tools.MAIN_PATH);
dlopen(Tools.homeJreDir + "/lib/jli/libjli.so");
dlopen(Tools.homeJreDir + "/lib/server/libjvm.so");
dlopen(Tools.homeJreDir + "/lib/libverify.so");
@@ -12,8 +14,6 @@ public class BinaryExecutor
dlopen(Tools.homeJreDir + "/lib/libnio.so");
dlopen(Tools.homeJreDir + "/lib/libawt.so");
dlopen(Tools.homeJreDir + "/lib/libawt_headless.so");
chdir(Tools.MAIN_PATH);
}
public static native int chdir(String path);

View File

@@ -29,6 +29,7 @@ import org.lwjgl.input.*;
import org.lwjgl.opengl.*;
import android.app.AlertDialog;
import com.oracle.dalvik.*;
public class MainActivity extends AppCompatActivity implements OnTouchListener, OnClickListener
{
@@ -673,7 +674,8 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
AndroidContextImplementation.display = egl10.eglGetCurrentDisplay();
AndroidContextImplementation.read = egl10.eglGetCurrentSurface(EGL10.EGL_READ);
AndroidContextImplementation.draw = egl10.eglGetCurrentSurface(EGL10.EGL_DRAW);
egl10.eglMakeCurrent(AndroidContextImplementation.display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
// egl10.eglMakeCurrent(AndroidContextImplementation.display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
System.out.println(new StringBuffer().append("Gave up context: ").append(AndroidContextImplementation.context).toString());
AndroidDisplay.windowWidth += navBarHeight;
@@ -1018,10 +1020,11 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
launchClassPath = Tools.generateLaunchClassPath(mProfile.getVersion());
launchLibrarySearchPath = getApplicationInfo().nativeLibraryDir;
/*
System.out.println("> Running Minecraft with classpath:");
System.out.println(launchClassPath);
System.out.println();
*/
redirectStdio();
BinaryExecutor.initJavaRuntime();
@@ -1029,7 +1032,8 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
BinaryExecutor.dlopen(Tools.homeJreDir + "/bin/java");
List<String> javaArgList = new ArrayList<String>();
javaArgList.add(Tools.homeJreDir + "/bin/java");
// javaArgList.add(Tools.homeJreDir + "/bin/java");
javaArgList.add("java");
// javaArgList.add("-Xms512m");
javaArgList.add("-Xmx512m");
@@ -1058,6 +1062,10 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
javaArgList.add(mVersionInfo.mainClass);
javaArgList.addAll(Arrays.asList(launchArgs));
StringBuilder strb = new StringBuilder();
for (String cmd : javaArgList) {strb.append(cmd + " ");}
appendlnToLog("Java arguments: " + strb.toString() + "\n", false);
/*
ShellProcessOperation sp = new ShellProcessOperation(new ShellProcessOperation.OnPrintListener(){
@@ -1071,7 +1079,9 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
sp.writeToProcess(javaArgList.toArray(new String[0]));
*/
BinaryExecutor.executeBinary(javaArgList.toArray(new String[0]));
// BinaryExecutor.executeBinary(javaArgList.toArray(new String[0]));
VMLauncher.launchJVM(javaArgList.toArray(new String[0]));
/*
"-Dorg.apache.logging.log4j.level=INFO",

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.