Зачем нам нужен Kies (драйвер ADB) в Windows, а не в Linux?

11

Зачем нам нужен драйвер ADB в Windows, а не в Linux?

Последние несколько месяцев я работаю на Android в Windows. Чтобы запустить мой проект на устройстве Samsung, мне сначала нужно было установить Kies. Аналогично для моего устройства LG есть драйвер LG ADB, а для HTC - другой.

Но когда я недавно перешел на Ubuntu Linux, мне не потребовались никакие другие драйверы, такие как Kies и ADB. Я был в состоянии отладить напрямую без каких-либо сторонних драйверов. Почему это?

Я знаю, что это что-то очень распространенное, но я не нашел ничего, что объясняет, почему это так.

hemantsb
источник
добавил обновление # 2 в мой ответ
geffchang

Ответы:

5

Чор Вайчун упомянул об этом в закрытом вопросе, который вы разместили в StackOverflow :

Я видел, как где-то говорилось, что это происходит потому, что android и linux работают на одном и том же ядре, и одна и та же ситуация касается разработки android на mac. Обе ОС работают на очень похожих ядрах ОС с Android, поэтому им не нужны драйверы. Это то, что я вспомнил, увидев другие темы, не могу дать 100% уверенности

ОБНОВЛЕНИЕ # 1: Android - сайт также упоминает об этом:

Если вы разрабатываете для Windows и хотите подключить устройство под управлением Android для тестирования ваших приложений, вам необходимо установить соответствующий драйвер USB. ...

Если вы разрабатываете на Mac OS X или Linux, то вам, вероятно, не нужно устанавливать драйвер USB. Чтобы начать разработку с вашего устройства, прочитайте Использование аппаратных устройств.

ОБНОВЛЕНИЕ № 2: Есть комментарий по поводу StackOverflowlibusb . Я думаю, что это может быть причиной того, что Linux не нуждается в дополнительных драйверах.

На самом деле adb под Linux обращается к USB-устройствам, используя libusb без какого-либо конкретного драйвера ядра. Также у adb есть список идентификаторов поставщиков, которые ему разрешено использовать, но это не объясняет проблему, так как идентификаторы поставщиков для обоих телефонов одинаковы. А в случае проблем с разрешениями из-за отсутствия правил udev устройства adb четко отображают «нет разрешений» в списке, так что это также не является причиной этой проблемы.

geffchang
источник
мой вопрос почему? У вас есть ссылки и все такое, чтобы я мог получить общее представление, +1 за ответ, хотя!
hemantsb
0

Я не уверен, почему Linux обычно не требует определенного драйвера ADB.

Однако есть «универсальный» драйвер Windows USB ADB, который работает с большинством устройств Android. Он был разработан Koushik Dutta (Koush), известным разработчиком Android, который работает на ClockworkMod. Это должно работать довольно хорошо для вас. Скачать здесь: http://koush.com/post/universal-adb-driver

Нил Шапер
источник
Я думаю, что вы неправильно поняли мой вопрос, мой вопрос, почему это поведение, и я знаю об универсальном драйвере ADB.
hemantsb
0

Как уже отвечали другие, в Linux есть общий USB-драйвер, который использует adb. Похоже, что в Windows нет общего USB-драйвера, поэтому adb использует «предоставленный» драйвер - индивидуальный для каждого устройства / производителя.

Мико
источник
1
В Windows нет предустановленного универсального драйвера . Однако есть один доступный, как указал Нейл . С другой стороны: в Linux нет Kies, поэтому вам не нужен драйвер Kies #D
Иззи