Как сделать драйвер ADB для Windows таким же простым, как существующий драйвер ADB для Linux?

#android #driver #adb #linux-device-driver

#Android #драйвер #adb #linux-device-driver

Вопрос:

По какой-то причине в Windows вам нужен другой драйвер для каждого устройства для работы с ADB. В Linux вы просто добавляете идентификаторы в файл. Мы пытались выяснить, как сделать более универсальный драйвер ADB для Windows, поскольку мы используем ADB в программе из 2 частей, которая имеет компонент рабочего стола и компонент Android. Мы не хотим устанавливать 100 разных драйверов устройств, чтобы убедиться, что наша программа работает для каждого устройства, однако у нас есть ОС Windows в качестве требования, поэтому мы не можем просто переключиться на Linux.

Почему так просто заставить ADB работать на всех типах устройств в Linux (просто добавив идентификатор пользователя в файл), но в Windows нам нужен другой драйвер устройства для каждого отдельного устройства? В каком направлении мы можем разработать универсальный драйвер ADB, который будет работать для каждого устройства Android в Windows так же, как и в Linux?

Большое спасибо, пожалуйста, дайте мне знать, что я могу сделать, чтобы уточнить, если это неясно.

Комментарии:

1. Это может показаться глупым, но почему бы не использовать Linux для вашего настольного компонента?

2. Просто одним из наших требований является то, что программа должна работать в Windows. Раньше мы запускали его в Linux, но требования изменились :

Ответ №1:

Хотя я не могу дать окончательного ответа, я могу предложить эти слова, которые могут дать некоторое объяснение:

Взято из Linux Device Drivers, 3-е издание, О’Рейли, глава 1 «Классы устройств и модулей»

Взгляд Linux на устройства различает три основных типа устройств. Каждый модуль обычно реализует один из этих типов и, следовательно, классифицируется как модуль символов, модуль блоков или сетевой модуль. Это разделение модулей на разные типы или классы не является жестким; программист может создавать огромные модули, реализующие разные драйверы в одном фрагменте кода.

С точки зрения пользователя Linux это означает, что очень часто они обнаруживают, что система Linux теперь очень часто «распознает» данное устройство без необходимости в специальных драйверах или (надеюсь), по крайней мере, базовая поддержка ОС будет автоматически предоставляться для этих устройств, позволяя приложениям использовать их. Я не эксперт в Windows, перешедший на Linux после провала Vista (и никогда не оглядывался назад), но я ВСЕГДА помню, что мне приходилось загружать драйверы устройств всякий раз, когда я получал новое устройство, даже если это была карта памяти (но уже использовал другие типы карт памяти на компьютере!)

Я считаю, что именно так была разработана Windows, но почему именно так, я понятия не имею. Поэтому я бы предположил, что в Linux ADB распознает все устройства Android под одним типом устройства, тогда как Windows не может, следовательно, требуется множество драйверов устройств в Windows.