자바 / android 에서 셸 명령 구현
public class MainActivity extends Activity {
private final String TAG = "---MainActivity---";
public final String SHELL_0 = "busybox ps";
public final String SHELL_1 = "su";
public final String SHELL_2 = "cd mnt/shell/emulated/0/.ZFSafeFS";
public final String SHELL_3 = "busybox mount .a1.img ./.abc";
public final String SHELL_4 = "busybox umount ./.abc";
public final String EXECUTE_SHELL = SHELL_0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sendButton = (Button) findViewById(R.id.send_btn);
Button suButton = (Button) findViewById(R.id.su_button);
Button cdButton = (Button) findViewById(R.id.alert_path_button);
Button mountButton = (Button) findViewById(R.id.mount_button);
Button umountButton = (Button) findViewById(R.id.umount_button);
suButton.setText(SHELL_1);
cdButton.setText(SHELL_2);
mountButton.setText(SHELL_3);
umountButton.setText(SHELL_4);
sendButton.setOnClickListener(viewOnClickListener);
suButton.setOnClickListener(viewOnClickListener);
cdButton.setOnClickListener(viewOnClickListener);
mountButton.setOnClickListener(viewOnClickListener);
umountButton.setOnClickListener(viewOnClickListener);
handleShell(EXECUTE_SHELL);
}
private void handleShell(String shell) {
TextView textView = (TextView) findViewById(R.id.textview);
Process p = null;
try {
p = Runtime.getRuntime().exec(shell);
if (p == null) {
textView.setText("p == null");
} else {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
int read = 0;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
Log.i(TAG, "read = " + read);
Log.i(TAG, "output = " + output);
while((read = bufferedReader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
bufferedReader.close();
String string = String.copyValueOf(buffer);
Log.i(TAG, "string = " + string);
textView.setText("result:
" + string);
}
} catch (IOException e) {
textView.setText("e=" + e);
e.printStackTrace();
}
}
private OnClickListener viewOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.su_button:
handleShell(SHELL_1);
break;
case R.id.alert_path_button:
handleShell(SHELL_2);
break;
case R.id.mount_button:
handleShell(SHELL_3);
break;
case R.id.umount_button:
handleShell(SHELL_4);
break;
default:
break;
}
}
};
}
다음으로 전송:https://www.cnblogs.com/fengju/p/6336132.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.