【代码块】Android代码执行ADB指令
生活随笔
收集整理的這篇文章主要介紹了
【代码块】Android代码执行ADB指令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景:在某些情況下,比如修改以太網IP地址、修改系統時間等等、使用ADB指令直接執行會方便很多,缺點就是有時候需要Root權限。但如果是做工業設備開發的,本身就具有權限的情況下就完全沒問題了(比如我)。
一、核心代碼
class Cmd {private val TAG = "Cmd"val result = StringBuilder()fun run(cmd: String): Boolean {var bufferedReader: BufferedReader? = nullvar dos: DataOutputStream? = nullvar receive = ""try {Runtime.getRuntime().exec("su")?.run { // 經過Root處理的android系統即有su命令Logger.d("Cmd run: $cmd")bufferedReader = BufferedReader(InputStreamReader(inputStream))dos = DataOutputStream(outputStream).apply {writeBytes(cmd + "\n")flush()writeBytes("exit\n")flush()}bufferedReader?.run {while (readLine().also { receive = it } != null) {result.append("\n").append(receive)}}waitFor()}} catch (e: Exception) {return false}try {dos?.close()bufferedReader?.close()} catch (e: Exception) {return false}return true} }二、使用
Cmd().run("pm install -r $basePath/APK/$apkName.apk")//靜默安裝另外附上個人常用ADB指令
總結
以上是生活随笔為你收集整理的【代码块】Android代码执行ADB指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL PROCEDURE和 FUNCT
- 下一篇: 实体框架的惨痛教训