2013-07-25 5 views
5

ADB разделен на часть сервера и клиентскую часть, которая разговаривает друг с другом через протокол TCP, описанный более подробно here.Pure java adb client

Есть ли какой-либо чистый клиент ADB Java там? Это может быть очень полезно, если вы хотите, например, запустить Диспетчер пакетов или Диспетчер операций из тестового примера jUnit или TestNG.

У нас есть клиентская строка командной строки adb на основных платформах разработки, но есть ли чистая реализация Java-клиента adb.

+0

Какие преимущества вы ищете точно? –

+0

На самом деле, я хочу провести тесты UiAutomator с dev-машины. Но полезность такой клиентской библиотеки должна иметь гораздо более широкое применение. Клиент pura java по своей сути является перекрестной платформой и просто более гладкой для работы с ней по сравнению с встроенным инструментом командной строки adb. – vidstige

+0

Я знаю, что вы имеете в виду, у меня такая же проблема, хотя я использую python. протокол описан в: https://android.googlesource.com/platform/system/core/+/master/adb/SERVICES.TXT, но я нашел несколько проектов ... поиск чистого java-клиента привел меня к вашему вопрос здесь, поэтому я думаю, что ответ: «не совсем», если вы не сделаете это сами .. – codeScriber

ответ

3

Я создал небольшой Java-проект под названием jadb доступны here, который реализует части большинство из того, что делает adb клиент, включая отправку файлов. Для этого требуется сервер adb (adb)

+0

Это звучит интересно. В соответствии с какой лицензией вы выпустили это (в настоящее время в репозитории нет какого-либо файла)? – Bruno

+0

@Bruno Я выпускаю его под лицензией Apache 2.0. Это также лицензия на Android Open Source Project. Проект jadb основан на AOSP, поэтому это имеет смысл. Также эта лицензия обычно подходит для компаний и других проектов с открытым исходным кодом. Надеюсь это поможет. – vidstige

+0

Ваша библиотека использует сокеты для подключения к серверу 'adb', который является частью одного и того же двоичного файла adb. Поэтому, пока вы не переустановите серверную часть (включая обработку транспорта USB), вашему коду все равно потребуется собственный 'adb' –