Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cualquier forma de ejecutar comandos de shell en android mediante programación?

¿Hay alguna manera de ejecutar comandos de terminal en mi aplicación y luego acceder a los datos en mi interfaz de usuario? Específicamente top .

  • Recomendado Linux Distro para Android Development Workstation
  • ¿Qué conocimiento / expertize se requiere para portar android a dispositivo de brazo personalizado?
  • ¿Cómo obtener la dirección MAC de la interfaz de red WiFi?
  • ¿Cuáles son las funciones POSIX más importantes que no están disponibles en Android?
  • Cómo dibujar con framebuffer en Android?
  • La pila TCP XBox 360 no responde a sondas TCP Zero Window con una carga útil de 0 bytes
  • Conozca los dispositivos internos de Android (profundice en el sistema)
  • Adb install falla con error 'INSTALL_FAILED_INSUFFICIENT_STORAGE'
  • 4 Solutions collect form web for “Cualquier forma de ejecutar comandos de shell en android mediante programación?”

    Revise el recolector de registros como ejemplo. Aquí está el archivo relevante .

    La clave está aquí:

     ArrayList<String> commandLine = new ArrayList<String>(); commandLine.add("logcat");//$NON-NLS-1$ [...] Process process = Runtime.getRuntime().exec(commandLine); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 

    Bueno esto es lo que funcionó exactamente para mí en caso de que alguien lo necesita en el futuro … 🙂

    Rodear en probar y atrapar

     try { Process process = Runtime.getRuntime().exec("top -n 1 -d 1"); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); } catch (InterruptedException e) { e.printStackTrace(); } 

    Podemos, ejecutar comandos como sigue, i fue exitosa en hacer esto ….! Intente de esta manera, aquí tenemos que especificar la ruta completa de comando. Para obtener la ruta completa de commmand, en su terminal (tipo android)

    Que es

    / System / bin *

     try { // Executes the command. Process process = Runtime.getRuntime().exec("/system/bin/ls /sdcard"); // Reads stdout. // NOTE: You can write to stdin of the command using // process.getOutputStream(). BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream())); int read; char[] buffer = new char[4096]; StringBuffer output = new StringBuffer(); while ((read = reader.read(buffer)) > 0) { output.append(buffer, 0, read); } reader.close(); // Waits for the command to finish. process.waitFor(); return output.toString(); } catch (IOException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } 

    También depende de lo que está ejecutando en el terminal … si está ejecutando "gato" en un archivo también se puede hacer de esta manera.

     final private String MEM_FILE = "/proc/meminfo"; public Long readMem() { String[] segs; FileReader fstream; try { fstream = new FileReader(MEM_FILE); } catch (FileNotFoundException e) { Log.e("readMem", "Could not read " + MEM_FILE); return false; } BufferedReader in = new BufferedReader(fstream, 500); String line; try { while ((line = in.readLine()) != null) { if (line.indexOf("MemTotal:") > 0) { Log.e("MemTotal", line); segs = line.trim().split("[ ]+"); memTotal = Long.parseLong(segs[1]); } if (line.indexOf("MemFree:") > 0) { Log.e("MemFree", line); segs = line.trim().split("[ ]+"); memFree = Long.parseLong(segs[1]); } } updateMem(); //call function to update textviews or whatever return true; } catch (IOException e) { Log.e("readMem", e.toString()); } return false; } 

    EDIT: Hay un ejemplo perfecto para usted en el proyecto de los laboratorios de android llamado netmeter. Hay una clase llamada Top.java que en realidad hace exactamente lo que quieres y se utiliza en TaskList.java para que se muestre. http://code.google.com/p/android-labs/source/browse/#svn/trunk/NetMeter/src/com/google/android/netmeter

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.