【android-tips】android程序执行adb shell命令(实例源码)
2014-02-18 13:27
465 查看
(转载请注明出处: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程序执行adb shell命令
- android源码下可执行的一些命令
- UiAutomator系列——Appium Android Bootstrap源码分析之命令解析执行(008)
- Android 开发手记二 C可执行程序编译实例
- 实例源码2:利用Java调用可执行命令并取得其返回值
- Appium Android Bootstrap源码分析之命令解析执行
- 实例源码:利用Java调用可执行命令
- android ADB shell 命令启动 android程序
- Android Java代码执行adb Shell命令
- 实例源码3:利用Java调用可执行命令并取得其返回值
- 怎么在Android程序中执行Linux shell 命令
- android不是内部或外部命令,也不是可执行的程序或批处理文件
- 实例源码1:利用Java调用可执行命令并取得其返回值
- 利用源码编译Android系统的APK和可执行命令的方法
- Android Java代码执行adb Shell命令
- Android 开发手记二 C可执行程序编译实例
- android widget 开发实例 : 桌面便签程序的实现详解和源码 (上)
- [Android实例] 48个android程序源码贡献!!!值得收藏!!!
- android widget 开发实例 : 桌面便签程序的实现详解和源码 (下)
- android apk 怎么执行adb shell命令