Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Что такое «вилка»?

Оглавление:

Anonim

За последние пару дней вы, наверное, слышали слово «вилка» больше раз, чем можете сосчитать. Facebook раздвоил это (хотя это и не сделало), Amazon разбудил это, команда Chrome развила всю сеть, и так далее, и так далее. В то время как все говорят о том, кто кого разветвляет, никто не удосуживается точно объяснить, что такое разветвление и почему так много людей имеют с ним проблемы.

Разворот, или крушение, получил что-то вроде плохого представителя 20 лет назад, так как он имел тенденцию делить разработчиков на отдельные фракции, которые не делятся кодом друг с другом. В такие дни, как разделение Gnu-Emacs / XEmacs, это было важно, потому что было не так много людей, способных работать над этими большими проектами с открытым исходным кодом, а наличие двух ветвей или вилок означало, что для добавления требуется больше времени. особенности и решения проблем для обеих сторон. В некоторых случаях это все еще происходит, я уверен, но по большей части есть много разработчиков, которые могут заполнить пустоту, оставленную теми, у кого есть отдельное видение, и раскошелиться на код, чтобы следовать ему. Но некоторые люди никогда не забывают, и стигма, связанная с разветвлением фальсификаторов, исчезает. Сказав все это, мы не можем притворяться, что плохих вилок не бывает. Нам просто нужно взглянуть за пределы самого акта, прежде чем принимать решения

Я знаю, что некоторые из вас знают, что все это значит, и просто пытаются игнорировать весь шум, но для многих это сбивает с толку. Давайте попробуем это исправить.

Что такое программная вилка и как она влияет на Android?

Думайте об Android как о куче кода. Есть две части - части с открытым исходным кодом, которыми является AOSP, и проприетарные части, которые Google хранит при себе. Если кто-то захочет взять Google Android и внести в него изменения, он загрузит код, который будет использоваться в качестве базы, и создаст свой собственный проект с ним. Samsung делает это, HTC делает это, и ваш любимый разработчик ROM может сделать это. Каждый раз, когда кто-то берет существующий код и запускает на его основе независимый (это важное различие) проект, он создает форк. Многие разработчики проверят код, отредактируют его части, а затем отправят свои изменения обратно в апстрим в полном объеме, что не является форком.

Amazon подняла немало бровей, когда раздвинула Android, чтобы собрать ОС для линии Kindle Fire. Но с точки зрения открытого исходного кода, это ничем не отличалось от того, что Motorola сделала с Cliq, или HTC сделала с Hero - или что Samsung делает сейчас для устройств серии Galaxy. Это то, сколько больших проектов с открытым исходным кодом работает. Каждый поставщик (за исключением, может быть, Amazon) работает с теми же базовыми принципами, вероятно, сообщая об ошибках и отправляя исправления обратно по ходу разработки, чтобы создать собственное мнение о конечном продукте.

Facebook не раскошелился на Android. Он использовал систему намерений Android (способ, которым приложения могут работать друг с другом и обмениваться на Android) и создал большое приложение, которое дополнительно включает в себя замену дома. Внутри своей песочницы они могут делать все, что хотят или должны делать, и пока они используют намерения Android, они могут общаться с остальной частью системы. Если вы хотите получить техническую поддержку, HTC, возможно, разбудила Android для лучшей работы с Facebook Home в HTC First, поскольку упоминает некоторые изменения, которые были сделаны для лучшей совместимости. Мы узнаем больше о том, что они сделали, когда телефон заработает.

В любом случае, разветвление кода не всегда плохо и не заслуживает всего негатива, который вы слышите, когда кто-то упоминает об этом. Отраслевой аналитик Стивен О'Грэйди подытоживает это хорошо, я думаю:

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

Совместимость приложений от устройства к устройству - вот почему Android был разработан. Форкинг кода не делает этого невозможным. Но другие вещи делают.

Другая сторона разветвления Android

В Китае вы можете купить телефон у оператора, который работает под управлением Android, но не имеет сервисов Google? Как и Kindle Fire, он построен из кода Google Android (иногда без изменений), но не был отправлен и протестирован на совместимость с Google и включает такие вещи, как Gmail или Google Play. Эти приложения и различные системные файлы, которые им нужны для запуска, не являются открытыми, и вы не можете просто включить их без разрешения Google.

Помимо «другого» (я не собираюсь говорить, что это «хуже», только другое) пользовательского опыта без этих приложений, они могут выглядеть и чувствовать себя так же, как телефон Android, который вы покупаете у Verizon или AT & T. Они также могут выглядеть и чувствовать себя совсем по-другому, как это сделал Amazon. Но ничего из этого не произошло, потому что они раздвоили код Android от Google - это было сознательное решение не делать Google «сертифицированным» устройством. Google представляет Android как платформу приложений и набор платформ приложений. Если не учитывать сервисные приложения Google, это не делает их менее платформой приложений. Конечно, мы полагаем, что Google предпочел бы, чтобы все устройства на базе Android и Android использовали сервисы Google, но нет строгого правила, согласно которому поставщик должен это делать.

Создание устройств без приложений Google не имеет ничего общего с разветвлением Android. Это может сделать устройства менее желательными, или однажды лучший Android-телефон может быть построен без приложений Google, но это может произойти без разветвления кода. Мы все виноваты в слиянии двух вещей, но мы не должны этого делать.

Форкинг это просто вещь

Нехорошо, что OEM-производители раскручивают Android и работают над собственным проектом с кодом. Не плохо, что OEM-производители раскручивают Android и работают над собственным проектом с помощью кода. Это просто вещь, которую они все делают.

Если не считать фанатский клуб Nexus, вы не можете сказать, что Samsung или HTC разрушили Android, взломав код и опираясь на него. Они добавили функции, сохраняя все совместимость, так что приложения, созданные для «Android» в соответствии с рекомендациями разработчика, будут работать просто отлично. И они постоянно поставляют устройства, которые люди хотят купить. Я думаю, что это именно то, что Google имел в виду для Android. Они знали, что в конце концов кто-то пойдет немного дальше и создаст что-то, что не будет полностью соответствовать Android, но это нормально. Пользователи этих устройств все еще находятся в Интернете, и мобильные веб-приложения Google довольно приличные.

Надеюсь, теперь вы знаете немного больше о том, что люди имеют в виду, когда говорят о разветвлении Android.