Ejecutar secuencia de comandos con la aplicación de Android

Tengo este script de shell:

#!system/bin/sh while : do sync echo 3> /proc/sys/vm/drop_caches echo "Script is been launched" sleep 30m done exit 0; 

Deseo ejecutar este script con una aplicación para Android. Ya he creado un botón con sólo un brindis por ahora. ¿Cómo puedo tomar el script (free.sh) y lanzarlo con el botón de la aplicación? ¿O hay una solución para reescribir el código en java? Gracias

En primer lugar, utilizará Eclipse para crear una sencilla aplicación Android helloworld. Y agrega un botón en tu diseño. Esta es una práctica muy priliminary de desarrollo de Android que se puede cavar mucho más de http://d.android.com

Prueba este código en la función de devolución de llamada de onclick:

 Button b = (Button)findViewById(R.id.buttonPower); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Process p=null; try { p = new ProcessBuilder() .command("PathToYourScript") .start(); } catch (IOException e) { e.printStackTrace(); } finally { if(p!=null) p.destroy(); } } }); 

Tengo errores. Este es el código:

 package com.mkyong.android; import java.io.InputStream; import java.io.OutputStream; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import com.example.toast.R; public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Process process = new ProcessBuilder() .command("PATH") .redirectErrorStream(true) .start(); try { InputStream in = process.getInputStream(); OutputStream out = process.getOutputStream(); readStream(in);// Here: Syntax error, insert "}" to complete `Block` finally { process.destroy(); } } } }); //Here: Syntax error on token "}", delete this token } protected void readStream(InputStream in) { // TODO Auto-generated method stub } } 

Bueno, ahora No hay errores (¡GRACIAS!) Pero no hacer nada … para probar he escrito un script fácil de escribir un archivo.txt. Vea el código:

 package com.mkyong.android; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import java.io.IOException; import com.example.toast.R; public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @SuppressLint("SdCardPath") @Override public void onClick(View arg0) { Process p=null; try { p = new ProcessBuilder() .command("/sdcard/Script/scritturafile.sh") .start(); } catch (IOException e) { e.printStackTrace(); } finally { if(p!=null) p.destroy(); } } }); } } 

El no hay errores, pero cuando presiono el botón creo que el shell no va así que no cree el archivo.txt

A continuación se muestra cómo ejecutar el script de shell desde tu aplicación Android

 try { Process process = Runtime.getRuntime().exec("sh /sdcard/test.sh"); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String listOfFiles = ""; String line; while ((line = in.readLine()) != null) { listOfFiles += line; } } catch (IOException e) { e.printStackTrace(); } 
  • El botón dentro de DrawerLayout no se puede hacer clic
  • OnClickListener dentro de la alerta personalizada Android
  • ¿Es posible especificar el borde en el botón android?
  • Cómo hacer que el botón transparente en mi aplicación sea visible
  • El botón de imagen de 9 parches de Android no está escalado según lo previsto
  • Botones imágenes de fondo estiradas (wrap_content o uso de dp)
  • ¿Cómo hacer algo repetidamente mientras se presiona un botón?
  • Desactivar el botón Atrás en android
  • Botón creado dinámicamente de Android: setOnClickListener no funciona
  • ¿Cómo puede un botón obtener el enfoque?
  • LinearLayout - verticalmente no alinear
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.