我有了这个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代码的解决方案? 谢谢
我有了这个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代码的解决方案? 谢谢
首先,您将使用Eclipse创建一个简单的Android应用程序的HelloWorld。 而在布局中添加一个按钮。 这是Android的发展速度非常孙昌盛的做法,你可以从挖很多http://d.android.com
请尝试在按钮的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();
}
}
});
下面是如何,你可以从你的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();
}
好了,现在没有错误(THANK YOU!),但做nothing..to试试我已经写了写file.txt的一个简单的脚本。 看到代码:
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();
}
}
});
}
}
在没有错误,但是当我按下按钮,我认为壳不走,所以不要创建file.txt的
我有我的代码中的错误:
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
}
}