Android在Shell环境下运行Linux命令
生活随笔
收集整理的這篇文章主要介紹了
Android在Shell环境下运行Linux命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android的底層其實linux,所以可以在android shell下運行linux命令,尤其是經過root處理的Android系統,基本上可以通過調用linux命令完全操作手機,下面的RootCmd.Java代碼就是實現運行linux外部命令。
package?my.android.code; import?android.os.Environment; import?dalvik.annotation.Signature; import?java.io.BufferedReader; import?java.io.DataInputStream; import?java.io.DataOutputStream; import?java.io.File; import?java.io.FileReader; import?java.io.InputStream; import?java.io.OutputStream; import?java.util.Vector; public?final?class?RootCmd { //執行linux命令并且輸出結果 protected?static?Vector execRootCmd(String paramString) { Vector localVector =?new?Vector(); try { Process localProcess = Runtime.getRuntime().exec("su ");//經過Root處理的android系統即有su命令 OutputStream localOutputStream = localProcess.getOutputStream(); DataOutputStream localDataOutputStream =?new?DataOutputStream(localOutputStream); InputStream localInputStream = localProcess.getInputStream(); DataInputStream localDataInputStream =?new?DataInputStream(localInputStream); String str1 = String.valueOf(paramString); String str2 = str1 +?"\n"; localDataOutputStream.writeBytes(str2); localDataOutputStream.flush(); String str3 = localDataInputStream.readLine(); localVector.add(str3); localDataOutputStream.writeBytes("exit\n"); localDataOutputStream.flush(); localProcess.waitFor(); return?localVector; } catch?(Exception localException) { localException.printStackTrace(); } } //執行linux命令但不關注結果輸出 protected?static?int?execRootCmdSilent(String paramString) { try { Process localProcess = Runtime.getRuntime().exec("su"); Object localObject = localProcess.getOutputStream(); DataOutputStream localDataOutputStream =?new?DataOutputStream((OutputStream)localObject); String str = String.valueOf(paramString); localObject = str +?"\n"; localDataOutputStream.writeBytes((String)localObject); localDataOutputStream.flush(); localDataOutputStream.writeBytes("exit\n"); localDataOutputStream.flush(); localProcess.waitFor(); localObject = localProcess.exitValue(); return?localObject; } catch?(Exception localException) { localException.printStackTrace(); } } //判斷機器Android是否已經root,即是否獲取root權限 protected?static?boolean?haveRoot() { int?i = execRootCmdSilent("echo test");?//通過執行測試命令來檢測 if?(i != -1)?return?true; retrun?false; } }總結
以上是生活随笔為你收集整理的Android在Shell环境下运行Linux命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 封装一个类搞定90%安卓客户端与服务器端
- 下一篇: linux 其他常用命令