我有这个shell脚本:
#!system/bin/sh while : do sync echo 3> /proc/sys/vm/drop_caches echo "Script is been launched" sleep 30m done exit 0;
我想运行这个脚本与一个android应用程序。我已经创建了一个按钮,现在只有一个吐司词。我如何采取脚本(free.sh),并启动它与按钮上的应用程序?或者有一个解决方案,以重写代码在java中?谢谢
r3i60tvu1#
首先,您将使用Eclipse创建一个简单的Android Hello World应用程序,并在布局中添加一个按钮。这是Android开发的一个非常初步的实践,您可以从http://d.android.com中获得更多信息请在按钮的OnClick回调函数中尝试以下代码:
OnClick
Button b = 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(); } } });
tag5nh1u2#
下面介绍如何从android应用程序运行shell脚本
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(); }
xlpyo6sf3#
我的代码中有错误:
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 } }
fd3cxomn4#
那么,现在没有错误(谢谢!),但什么也不做..尝试我已经写了一个简单的脚本,写一个file.txt.
public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1); 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(); } } }); } }
没有错误,但当我按下按钮时,我认为 shell 没有运行,因此不要创建file.txt
4条答案
按热度按时间r3i60tvu1#
首先,您将使用Eclipse创建一个简单的Android Hello World应用程序,并在布局中添加一个按钮。这是Android开发的一个非常初步的实践,您可以从http://d.android.com中获得更多信息
请在按钮的
OnClick
回调函数中尝试以下代码:tag5nh1u2#
下面介绍如何从android应用程序运行shell脚本
xlpyo6sf3#
我的代码中有错误:
fd3cxomn4#
那么,现在没有错误(谢谢!),但什么也不做..尝试我已经写了一个简单的脚本,写一个file.txt.
没有错误,但当我按下按钮时,我认为 shell 没有运行,因此不要创建file.txt