android command-line terminal runtime.exec

Android Runtime.getRuntime(). Exec() para navegación a través de directorios



command-line terminal (3)

¿Qué tal si escribimos un archivo de shell que comprueba la existencia del archivo y todas las demás implementaciones en este archivo y lo agregamos a sdcard y activamos el archivo de shell desde java mediante getRuntimr.exec (). También puede pasarle parámetros.

Así que quiero poder escribir una aplicación que pueda encender y visualizar mensajes de logcat, dmesg, y también poder ejecutar comandos como ''ls'' ''cat'' ''echo'' ''cd''.

Si hago lo siguiente:

nativeProc = Runtime.getRuntime().exec("ls/n"); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); String line = null; while ((line = in.readLine()) != null) { full = full + "/n" + line; }

Puedo poner el texto "completo" en una Vista de texto y ver el directorio raíz.

Sin embargo, eso es todo lo que puedo hacer. Digamos que quiero encontrar un directorio y cambiarlo, estoy teniendo problemas.

Entonces si hago esto:

nativeProc = Runtime.getRuntime().exec("ls/n"); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); String line = null; while ((line = in.readLine()) != null) { full = full + "/n" + line; } /* Code here to confirm the existing of a directory*/ nativeProc = Runtime.getRuntime().exec("cd tmp/n"); BufferedReader in2 = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); line = null; String test = "/nStart1:/n"; while ((line = in2.readLine()) != null) { test = test + "/n" + line; }

No recibo nada para "completo" y "texto"

¿Algunas ideas?


Puede ejecutar ls con la ruta proporcionada para la que se deben enumerar las carpetas

Runtime.getRuntime().exec(new String[] { "ls", "//tmp"});


El directorio de trabajo actual está asociado con el proceso actual. Cuando ejecutas ("cd tmp") estás creando un proceso, cambiando su directorio a "tmp", y luego sale el proceso. El directorio de trabajo del proceso principal no cambia.

Vea esto para una discusión más general sobre cómo cambiar el directorio de trabajo actual en Java .