(转载请注明出处:/buptgshengod)
package net.gimite.nativeexe;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import .HttpURLConnection;import .MalformedURLException;import .URL;import net.gimite.nativeexe.R;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;public class MainActivity extends Activity {private TextView outputView;private Button localRunButton;private EditText localPathEdit;private Handler handler = new Handler();private EditText urlEdit;private Button remoteRunButton;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);outputView = (TextView)findViewById(R.id.outputView);localPathEdit = (EditText)findViewById(R.id.localPathEdit);localRunButton = (Button)findViewById(R.id.localRunButton);localRunButton.setOnClickListener(onLocalRunButtonClick);}private OnClickListener onLocalRunButtonClick = new OnClickListener() {public void onClick(View v) {String output = exec(localPathEdit.getText().toString());output(output);// try {////// Process process = Runtime.getRuntime().exec(localPathEdit.getText().toString());//// } catch (IOException e) {//// TODO Auto-generated catch block//e.printStackTrace();// }}};// Executes UNIX command.private String exec(String command) {try {Process process = Runtime.getRuntime().exec(command);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();process.waitFor();return output.toString();} catch (IOException e) {throw new RuntimeException(e);} catch (InterruptedException e) {throw new RuntimeException(e);}}private void download(String urlStr, String localPath) {try {URL url = new URL(urlStr);HttpURLConnection urlconn = (HttpURLConnection)url.openConnection();urlconn.setRequestMethod("GET");urlconn.setInstanceFollowRedirects(true);urlconn.connect();InputStream in = urlconn.getInputStream();FileOutputStream out = new FileOutputStream(localPath);int read;byte[] buffer = new byte[4096];while ((read = in.read(buffer)) > 0) {out.write(buffer, 0, read);}out.close();in.close();urlconn.disconnect();} catch (MalformedURLException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}private void output(final String str) {Runnable proc = new Runnable() {public void run() {outputView.setText(str);}};handler.post(proc);}}
要加入权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
效果图
源码下载地址
如果觉得《【android-tips】android程序执行adb shell命令(实例源码)》对你有帮助,请点赞、收藏,并留下你的观点哦!