Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Czym jest „widelec”?

Spisu treści:

Anonim

W ciągu ostatnich kilku dni prawdopodobnie słyszałeś słowo „widelec” więcej razy, niż możesz zliczyć. Facebook rozwidlił to (nawet jeśli nie), Amazon to rozwidla, zespół Chrome rozwidlił całą sieć i tak dalej. Podczas gdy wszyscy mówią o tym, kto to rozwidla, nikt nie zadaje sobie trudu, aby dokładnie wyjaśnić, czym jest rozwidlenie i dlaczego tak wiele osób ma z tym problem.

Rozwidlanie lub roztrzaskanie miało trochę złego reputację około 20 lat temu, ponieważ zwykle dzieliło programistów na osobne frakcje, które nie dzieliły się kodem. W czasach takich jak podział Gnu-Emacs / XEmacs było to ważne, ponieważ nie było prawie tylu ludzi zdolnych do pracy nad tymi dużymi projektami typu open source, a posiadanie dwóch gałęzi lub widelców oznaczało, że dodanie trwa dłużej funkcje i rozwiązywanie problemów dla obu stron. W niektórych przypadkach nadal tak się dzieje, jestem pewien, ale w większości jest wielu programistów, którzy mogą wypełnić pustkę pozostawioną przez tych, którzy mają oddzielną wizję i opracują kod, aby podążać za nią. Ale niektórzy ludzie nigdy nie zapominają, a piętno związane z rozwidlaniem widelców zostaje zniesione. Powiedziawszy to wszystko, nie możemy udawać, że złe rozwidlenia się nie zdarzają. Musimy tylko spojrzeć na przeszłość samego aktu, zanim podejmiemy decyzje.

Wiem, że kilku z was wie, co to wszystko znaczy, i próbują po prostu zignorować cały hałas, ale dla wielu jest to mylące. Spróbujmy to naprawić.

Co to jest rozwidlenie oprogramowania i jak wpływa na Androida?

Pomyśl o Androidzie jak o kodzie. Istnieją dwie części - części open source, czyli AOSP, oraz zastrzeżone części, które Google zachowuje dla siebie. Jeśli ktoś chce przejąć Google Android i wprowadzić w nim zmiany, pobierze kod do wykorzystania jako podstawa i utworzy z nim własny projekt. Samsung to robi, HTC to robi, a twój ulubiony programista ROM może to zrobić. Za każdym razem, gdy ktoś bierze istniejący kod i rozpoczyna na jego podstawie niezależny (to ważne rozróżnienie) projekt, tworzy widelec. Wielu programistów sprawdza kod, edytuje jego części, a następnie przesyła swoje zmiany z powrotem w całości, co nie jest rozwidleniem.

Amazonka podniosła sporo brwi, gdy rozwidliła Androida, aby zbudować system operacyjny dla linii Kindle Fire. Ale po stronie open source nie różniło się to od tego, co Motorola zrobiła z Cliq, czy HTC zrobiło z Hero - lub co Samsung robi teraz z urządzeniami z serii Galaxy. Tak działa wiele dużych projektów typu open source. Każdy sprzedawca (może z wyjątkiem Amazon) pracuje z tymi samymi podstawami, prawdopodobnie zgłaszając błędy i przesyłając poprawki z powrotem w górę, aby stworzyć własne podejście do produktu końcowego.

Facebook nie rozwidla Androida. Wykorzystał system zamiarów Androida (sposób, w jaki aplikacje mogą ze sobą współpracować i dzielić się na Androidzie) i zbudował dużą aplikację, która dodatkowo zawiera zastępczy dom. Wewnątrz piaskownicy mogą robić, co chcą lub muszą robić, i dopóki korzystają z intencji Androida, mogą komunikować się z resztą systemu. Jeśli chcesz uzyskać wiedzę techniczną, HTC mógł rozwidlić Androida, aby lepiej współpracował z Facebook Home w HTC First, ponieważ wspomina o niektórych zmianach, które zostały wprowadzone w celu lepszej kompatybilności. Dowiemy się więcej o tym, co zrobili, gdy wycieknie telefon.

W każdym razie rozwidlenie kodu nie zawsze jest złą rzeczą i nie zasługuje na całą negatywność, którą słyszysz, gdy ktoś o nim wspomina. Analityk branżowy Stephen O'Grady ładnie podsumowuje. Myślę, że:

Warto jednak wspomnieć, że z perspektywy klienta widelce lub warianty nie są ogólnie złe. Podczas gdy różne wersje Androida mogą reprezentować niefortunne decyzje projektowe ze strony odpowiedzialnych za nie dostawców, aplikacje są w przeważającej większości przypadków kompatybilne między urządzeniami, zakładając równoważność wersji.

Właśnie dlatego aplikacje na Androida są kompatybilne. Rozwidlanie kodu nie sprawia, że ​​tak się nie dzieje. Ale inne rzeczy robią.

Druga strona rozwidlania Androida

W Chinach można kupić telefon od operatora, który obsługuje system Android, ale nie ma usług Google? Podobnie jak Kindle Fire, jest zbudowany na podstawie kodu Google Androida (czasem niezmodyfikowanego), ale nie został przesłany ani przetestowany pod kątem zgodności z Google i zawiera takie rzeczy jak Gmail lub Google Play. Te aplikacje i inne pliki systemowe, które muszą być uruchomione, nie są oprogramowaniem typu open source i nie można ich po prostu dołączyć bez zgody Google.

Poza tymi „różnymi” (nie zamierzam powiedzieć, że to „gorsze”, tylko inne) wrażenia użytkownika bez tych aplikacji, mogą wyglądać i czuć się jak telefon z Androidem kupiony od Verizon lub AT&T. Mogą również wyglądać i czuć się zupełnie inaczej, tak jak zrobiła to Amazon. Ale nic z tego nie wynika z tego, że rozwidlili kod Google'a na Androida - była to świadoma decyzja, aby nie tworzyć „certyfikowanego” urządzenia Google. Google przedstawia Androida jako platformę aplikacji i zestaw platform aplikacji. Brak aplikacji Google nie oznacza, że ​​jest to platforma aplikacji. Oczywiście wyobrażamy sobie, że Google wolałby, aby wszystkie urządzenia z Androidem i Androidem korzystały z usług Google, ale nie ma twardej i szybkiej reguły, która mówi, że sprzedawca musi to zrobić.

Tworzenie urządzeń bez aplikacji Google nie ma nic wspólnego z rozwidlaniem Androida. Może to sprawić, że urządzenia będą mniej pożądane, lub pewnego dnia ostateczny telefon z Androidem może zostać zbudowany bez aplikacji Google, ale może się to zdarzyć bez przepuszczania kodu. Wszyscy jesteśmy winni splotu tych dwóch rzeczy razem, ale nie powinniśmy tego robić.

Widelec to tylko jedna rzecz

Nie jest dobrze, że producenci OEM opracowują Androida i pracują nad własnym kodem. Nie jest źle, że producenci OEM opracowują Androida i pracują nad własnym projektem z kodem. Po prostu wszyscy to robią.

Poza fanklubem Nexusa, nie możesz mi powiedzieć, że Samsung lub HTC zniszczyły Androida, rozwidlając kod i bazując na nim. Dodali funkcje, jednocześnie utrzymując wszystko kompatybilne, dzięki czemu aplikacje zbudowane dla „Androida” zgodnie ze wskazówkami programisty będą działać dobrze. I konsekwentnie dostarczają urządzenia, które ludzie chcą kupić. Myślę, że właśnie to Google miał na myśli dla Androida. Wiedzieli, że w końcu ktoś pójdzie trochę dalej i stworzy coś, co nie będzie w pełni zgodne z „Androidem”, ale to jest w porządku. Użytkownicy tych urządzeń są nadal w Internecie, a mobilne aplikacje internetowe Google są całkiem przyzwoite.

Mamy nadzieję, że teraz wiesz trochę więcej na temat tego, co ludzie mają na myśli, mówiąc o tworzeniu Androida.