【android-tips】android程序执行adb shell命令(实例源码)
16lz
2021-01-23
(转载请注明出处:http://blog.csdn.net/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 java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.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. */ @Override public 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 源码阅读之SMS
- android 源码编译
- android 源码下载与编译(ubuntu11.04)
- Android:在WebView中获取网页源码
- Android中图片的放大和缩小源码
- android GPS定位和卫星个数(源码)
- MacAndroid源码下载 Android10详解
- Android电话来电流程源码分析