java - java中adb命令的等效版本?
问题描述
我可以从终端执行 adb shell 命令类型:
./adb shell 'sh -c "param1 param2 param3 param4"'
但是,当我尝试使用Runtime.exec
上述命令在 android 应用程序中运行它时,它会分解为表单的不同参数
[adb, shell, 'sh, -c, "param1, param2, param3, param4"]
但是,这是从 shell 运行时的单个输入参数。如何在应用程序中运行它?
注意:参数是一种路径,例如/a/b/c/
解决方案
为避免字符串拆分方式的怪异,通常只使用Runtime.exec 的多参数版本更安全:
System.getRuntime().exec("adb", "shell", "sh -c \"param1 param2 param3 param4\"");
请注意,在这个特定的调用中,您有 2 个adb
可执行文件的参数。shell
以及将由 Android 设备上的 shell 解析的整个命令。整个命令总是必须进入一个单独的参数,如上所示。
推荐阅读
- java - 无法在 android studio 中解析符号“coordinatorlayout”
- go - 将参数传递给 Echo 路由中间件
- c# - 绑定到内容控件中子控件的 DependencyProperty
- php - 显示来自mysql数据库的数据时面临问题
- java - 如何在 Android SDK API Level 29 或更高版本中获取 IMSI 编号?
- matlab - 如何获得一组耦合的 4 阶 odes 和代数方程的解
- python - 如何从 tfs 中提取链接到 python 中工作项的变更集?
- php - 在 Laravel 中调用 int 上的成员函数 count()?
- node.js - 如何从 Firestore 数据库中的云功能更新多个文档?
- php - 使用 Maatwebsite Excel 3.1 导出如何设置单元格的背景颜色和标题的字体大小?