è¡adb shellå½ä»¤:
/** * æ§è¡ä¸ä¸ªshellå½ä»¤ï¼å¹¶è¿åå符串å¼
*
* @param cmd
* å½ä»¤å称&åæ°ç»æçæ°ç»ï¼ä¾å¦ï¼{"/system/bin/cat", "/proc/version"}ï¼
* @param workdirectory
* å½ä»¤æ§è¡è·¯å¾ï¼ä¾å¦ï¼"system/bin/"ï¼
* @return æ§è¡ç»æç»æçå符串
* @throws IOException
*/
public static synchronized String run(String[] cmd, String workdirectory)
throws IOException {
StringBuffer result = new StringBuffer();
try {
// å建<a href="
https://www.baidu.com/s?wd=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3rynzuWnsmH6zPARYPW0s0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0kPWDLPjmzP1nsPWTvPW6d" target="_blank" class="baidu-highlight">æä½ç³»ç»</a>è¿ç¨ï¼ä¹å¯ä»¥ç±Runtime.exec()å¯å¨ï¼
// Runtime runtime = Runtime.getRuntime();
// Process proc = runtime.exec(cmd);
// InputStream inputstream = proc.getInputStream();
ProcessBuilder builder = new ProcessBuilder(cmd);
InputStream in = null;
// 设置ä¸ä¸ªè·¯å¾ï¼<a href="
https://www.baidu.com/s?wd=%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3rynzuWnsmH6zPARYPW0s0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW0kPWDLPjmzP1nsPWTvPW6d" target="_blank" class="baidu-highlight">ç»å¯¹è·¯å¾</a>äºå°±ä¸ä¸å®éè¦ï¼
if (workdirectory != null) {
// 设置工ä½ç®å½ï¼åä¸ï¼
builder.directory(new File(workdirectory));
// å并æ åé误åæ åè¾åº
builder.redirectErrorStream(true);
// å¯å¨ä¸ä¸ªæ°è¿ç¨
Process process = builder.start();
// 读åè¿ç¨æ åè¾åºæµ
in = process.getInputStream();
byte[] re = new byte[1024];
while (in.read(re) != -1) {
result = result.append(new String(re));
}
}
// å
³éè¾å
¥æµ
if (in != null) {
in.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return result.toString();
}
androidç³»ç»åºå±éç¨çæ¯linuxï¼æ以adbè¿æ ·çlinuxæ令æ¯å¯ä»¥å¨java代ç ä¸è°ç¨çï¼å¯ä»¥ä½¿ç¨ProcessBuilder è¿ä¸ªæ¹æ³æ¥æ§è¡å¯¹åºçæ令ãè¿å¯ä»¥éè¿å¦ä¸æ¹å¼æ§è¡ï¼
Process p = Runtime.getRuntime().exec("ls");
String data = null;
BufferedReader ie = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String error = null;
while ((error = ie.readLine()) != null
&& !error.equals("null")) {
data += error + "\n";
}
String line = null;
while ((line = in.readLine()) != null
&& !line.equals("null")) {
data += line + "\n";
}
Log.v("ls", data);