android shell
16lz
2021-01-23
package co.test;import java.io.File;import java.io.IOException;import java.io.InputStream;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class TestActivity extends Activity {private final static String[] ARGS = { "ls", "-l" };Button mButton;TextView myTextView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mButton = (Button) findViewById(R.id.myButton);myTextView = (TextView) findViewById(R.id.textView);mButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {myTextView.setText(getResult());}});}public String getResult() {ShellExecute cmdexe = new ShellExecute();String result = "";try {// result = cmdexe.execute(ARGS, "/");result = cmdexe.execute(ARGS, "/sdcard");} catch (IOException e) {e.printStackTrace();}return result;}private class ShellExecute {/* * args[0] : shell 命令 如"ls" 或"ls -1"; args[1] : 命令执行路径 如"/" ; */public String execute(String[] cmmand, String directory) throws IOException {String result = "";try {ProcessBuilder builder = new ProcessBuilder(cmmand);if (directory != null) {builder.directory(new File(directory));}builder.redirectErrorStream(true);Process process = builder.start();// 得到命令执行后的结果InputStream is = process.getInputStream();byte[] buffer = new byte[1024];while (is.read(buffer) != -1) {result = result + new String(buffer);}is.close();} catch (Exception e) {e.printStackTrace();}return result;}}}
更多相关文章
- android 一些路径的标准写法
- android 命令行创建工程
- Android 用java语言执行Shell命令
- Android adb logcat 命令使用的技巧
- Android:Ping命令测试网络
- 使用logcat命令
- Android 功耗优化(5)---Android O 的Doze模式白名单路径