2017-02-18 8 views
0

У меня есть требование, как мне нужно взять дамп пользовательского интерфейса для каждого окна, которое появляется в моем приложении Android, чтобы проверить, что идентификатор ресурса уникален.Android: Как запустить команды adb внутри приложения Android?

В основном я хочу сделать то, что эта команда «adb shell uiautomator dump» делает внутри приложения Android.

+3

Вы не можете запускать команды adb из приложения, за исключением, возможно, на корневых устройствах. – CommonsWare

ответ

2

@CommonsWare может быть верным. Но я проверил код ниже на двух устройствах без привязки, и я смог получить выход. (Nexus 6P и Samsung S5)

@Gokul

Я нашел ключ был НЕ указать «ADB оболочки» заранее, как это должно быть в уже пути, и я получаю ошибку разрешения, если я попытаюсь используй это.

Делать что-то вроде этого:

String command = "service list"; 
Process process = Runtime.getRuntime().exec(command); 

Работал для меня работает в модульном тесте на двух реальных некорневых устройств.

Это дает те же результаты, что и при выполнении команды: "adb shell service list" из командной строки.