Dlaczego potrzebujemy Kies (sterownik ADB) w systemie Windows, ale nie w systemie Linux?

11

Dlaczego potrzebujemy sterownika ADB w systemie Windows, ale nie w systemie Linux?

Od kilku miesięcy pracuję na Androidzie w systemie Windows. Aby uruchomić mój projekt na urządzeniu Samsung, musiałem najpierw zainstalować Kies. Podobnie dla mojego urządzenia LG jest sterownik LG ADB, a drugi dla HTC.

Ale kiedy ostatnio przeszedłem na Ubuntu Linux, nie wymagałem żadnych innych sterowników, takich jak Kies i ADB. Mogłem debugować bezpośrednio bez żadnego sterownika innej firmy. Dlaczego?

Wiem, że jest to coś bardzo powszechnego, ale nie znalazłem niczego, co wyjaśniałoby, dlaczego tak jest.

hemantsb
źródło
dodałem aktualizację nr 2 do mojej odpowiedzi
geffchang

Odpowiedzi:

5

Chor WaiChun wspomniał o tym w zablokowanym pytaniu, które opublikowałeś na StackOverflow :

Widziałem gdzieś, że takie zachowanie jest spowodowane tym, że zarówno Android, jak i Linux działają na tym samym jądrze, a ta sama sytuacja dotyczy programowania Androida na Macu. Oba systemy działają w bardzo podobnym jądrze systemu operacyjnego Android, dlatego nie potrzebują żadnych sterowników. To tylko coś, co pamiętam, widząc z innych wątków, nie mogę dać 100% pewności

AKTUALIZACJA # 1: Witryna z Androidem wspomina również o tym:

Jeśli programujesz w systemie Windows i chcesz podłączyć urządzenie z systemem Android w celu przetestowania aplikacji, musisz zainstalować odpowiedni sterownik USB. ...

Jeśli programujesz w systemie Mac OS X lub Linux, prawdopodobnie nie musisz instalować sterownika USB. Aby rozpocząć programowanie z urządzeniem, przeczytaj Korzystanie z urządzeń.

AKTUALIZACJA # 2: Istnieje komentarz dotyczący StackOverflow dotyczący libusb. Myślę, że może to być powód, dla którego Linux nie potrzebuje dodatkowych sterowników.

W rzeczywistości adb pod Linuksem uzyskuje dostęp do urządzeń USB za pomocą libusb bez żadnego konkretnego sterownika jądra. Ponadto adb ma listę identyfikatorów dostawców, których może używać, ale to nie wyjaśnia problemu, ponieważ identyfikatory dostawców dla obu telefonów są takie same. A w przypadku problemów z uprawnieniami z powodu braku reguł udev urządzenia adb wyraźnie pokazują „brak uprawnień” na liście, więc nie jest to również przyczyną tego problemu.

geffchang
źródło
moje pytanie brzmi dlaczego? Czy masz jakieś linki, aby uzyskać pełny pomysł, +1 za odpowiedź!
hemantsb
0

Nie jestem pewien, dlaczego Linux zwykle nie wymaga określonego sterownika ADB.

Istnieje jednak „uniwersalny” sterownik USB ADB dla systemu Windows, który działa z większością urządzeń z Androidem. Został opracowany przez Koushika Dutta (Koush), słynnego programistę Androida, który pracuje na ClockworkMod. To powinno działać całkiem dobrze dla ciebie. Pobierz tutaj: http://koush.com/post/universal-adb-driver

Neil Schaper
źródło
Myślę, że źle zrozumiałeś moje pytanie. Moje pytanie brzmi, dlaczego tak się dzieje, i wiem o uniwersalnym sterowniku ADB.
hemantsb
0

Jak już inni odpowiedzieli, w systemie Linux jest wspólny sterownik USB, z którego korzysta adb. Wygląda na to, że w systemie Windows nie ma wspólnego sterownika USB, więc adb używa sterownika „pod warunkiem” - różny dla każdego urządzenia / producenta.

miko
źródło
1
W systemie Windows nie ma wstępnie zainstalowanego uniwersalnego sterownika . Jest jednak jeden, jak zauważył Neil . Z drugiej strony: W Linuksie nie ma Kiesa, więc nie potrzebujesz sterownika Kies #D
Izzy