背景:在某些情况下,比如修改以太网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指令相关推荐

  1. 静态代码块、非静态代码块、构造函数执行顺序

    静态代码块.非静态代码块.构造函数执行顺序 /*** 类的实例化顺序,静态代码块.非静态代码块.构造函数.* @author MING*/ class Person {static String na ...

  2. Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例

    Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例 2018年05月08日 08:12:48 WJN不忘初心 阅读数:34 除了说普通代码块,静态代码块,构造代码块的执行顺序外,还有静 ...

  3. 静态代码块 构造代码块 构造方法的执行顺序

    今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 执行顺序: 静态代码块>构造代码块>构造方法体 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构 ...

  4. java构造方法,构造代码块,静态代码块的执行顺序

    构造方法,构造代码块,静态代码块的执行顺序 静态代码块:用static声明,jvm加载类时执行,仅执行一次 类中直接用{}定义,每次创建对象时执行 同级别的变量(static和普通变量)的执行顺序由代 ...

  5. java静态代码块、构造代码块、构造器执行顺序

    静态代码块/构造代码块/构造器 执行顺序: 静态代码块-->构造代码块--> 构造器 静态代码块只会执行一次,构造代码块和构造器每次new的时候都会执行.本类的静态代码块比父类的构造器和构 ...

  6. java 中的静态变量,静态代码块,动态代码块,构造方法执行顺序的深入探究

    要想完全弄懂这个执行顺序,需要我们先了解几个概念. 首先是类加载与对象的构造,类加载就是在第一次调用这个类的时候jvm虚拟机会通过类加载器在一个叫做方法区的逻辑内存中将所要用到的类的信息存放在里边,其 ...

  7. java静态代码块和非静态代码块和构造函数执行顺序

    一.同类中静态代码块,非静态代码块,构造方法的执行顺序 1. 执行顺序:静态代码块-->非静态代码块-->构造方法. 程序在执行时,首先执行静态代码块,且只执行一次.接下来再创建对象时(n ...

  8. Static静态代码块以及各代码块之间的执行顺序

    前言 在Java中,Static静态代码块.构造代码块.普通代码块.构造函数的执行顺序是一个java学习者必须掌握的基础,本篇博客旨在让大家能清除了解它们之间的执行顺序. 文章目录 代码块的分类 1. ...

  9. 【Java】静态代码块和非静态代码块什么时候执行?

    静态代码块和非静态代码块什么时候执行? 静态代码块随着类的加载而加载,非静态代码块随着对象的加载而加载 所以静态代码块再调用类的时候执行.非静态代码块创建对象时或者通过反射获取其类信息的时候执行

  10. java加载类时静态代码块、构造代码块、构造方法执行顺序

    构造代码块作用:https://blog.csdn.net/hspingcc/article/details/54893853 package com.spring.partise;class A{A ...

最新文章

  1. String字符串类的获取功能
  2. 科大奥锐思考题_科大奥锐光电效应测普朗克常数
  3. maven小节,Nexus私服,构件打包发布,动态资源过滤,自动部署到本地或远程服务器...
  4. HTTP1.1 Keep-Alive到底算不算长连接?
  5. rsatool使用步骤图解_工作中想要事半功倍?图解来助你
  6. 剑指offer python版 最长不含重复字符的子字符
  7. win8解决“telnet不是内部或外部命令”问题
  8. 问题十八:怎么对ray tracing图形进行消锯齿
  9. Git 代码防丢指南,再也不怕丢失代码了!
  10. android快速充电实现_Android 8.0 慢充和快充提示语的实现原理
  11. java能写前端么_java程序员会写前端吗
  12. atto软件测试速度,基于ATTO的传输速度VS文件大小测试
  13. JButton与Button的区别
  14. TST扫描电镜与透射电镜有什么不同?
  15. 1143 Lowest Common Ancestor
  16. Internet Exploer 无法打开Internet站点、、、、已终止操作
  17. Wireshark TS | TCP Previous Segment Lost
  18. .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来
  19. 玩转基因组浏览器之初识IGV
  20. 【隧道应用-3】Cobalt Strike正向连接多层内网

热门文章

  1. 【正点原子探索者STM32F407开发板例程连载+教学】第30章 SPI通信实验
  2. 配置JDK环境变量(详细图文教程)
  3. 如何在Linux系统下配置JDK环境变量
  4. RK3288 开机时间和开机速度优化安卓系统优化
  5. cocos builder中使用九宫格
  6. Python爬取起点中文网小说信息及封面图片
  7. 情景规划(Scenario planning) (转载)
  8. 基于stm32单片机的电梯控制系统
  9. Eclipse —— 官网下载地址
  10. 软件测试工程师简历模板(三年经验)