Logo ja.androidermagazine.com
Logo ja.androidermagazine.com

フォークとは「フォーク」とは何ですか?

目次:

Anonim

過去数日間、あなたは数えきれないほど「フォーク」という言葉を聞いたことがあるでしょう。 Facebookはこれを分岐しました(そうではありませんでした)、Amazonはそれを分岐し、ChromeチームはWeb全体を分岐しました。 誰が誰を誰がフォークしているかについて話している間、誰がフォークとは何か、そしてなぜ多くの人々がそれについて問題を抱えているのかを正確に説明することに悩む人はいません。

フォークまたは粉砕は、開発者をコードを共有していない別々の派intoに分割する傾向があったため、20年ほど前に少し悪い評判を取り戻しました。 Gnu-Emacs / XEmacsスプリットのようなものの時代、これは重要でした。なぜなら、これらの大規模なオープンソースプロジェクトに取り組むことができる人がほとんどいなかったからです。機能と両側の問題に対処します。 場合によってはこれが発生することもありますが、ほとんどの場合、独立したビジョンを持つ開発者が残した隙間を埋めることができ、それに続くコードを分岐する開発者がたくさんいます。 しかし、一部の人々は決して忘れません、そして、フォークをしている人に付けられた汚名は受け継がれます。 これをすべて言ったが、悪い分岐が起こらないふりをすることはできません。 決定を下す前に、行為そのものを見逃すだけです。

私はそこにいるあなたの何人かがこのすべての意味を知っており、すべてのノイズを無視しようとしているだけですが、多くの人にとっては混乱しています。 それを修正してみましょう。

ソフトウェアフォークとは何ですか?また、Androidにどのように影響しますか?

Androidのコードの束を考えてください。 2つの部分があります-AOSPがそうであるオープンソースの部分と、Googleがそれ自体に保持する独自の部分です。 Google Androidを使用して変更を加えたい場合は、ベースとして使用するコードをダウンロードし、それを使用して独自のプロジェクトを作成します。 Samsungがそれを、HTCがそれを行い、お気に入りのROM開発者がそれを行うかもしれません。 誰かが既存のコードを取得し、それに基づいて 独立した (重要な区別である)プロジェクトを開始するたびに、フォークを作成しました。 多くの開発者はコードをチェックアウトし、その一部を編集してから、変更を上流に戻しますが、これはフォークではありません。

AmazonはKindle Fireライン用のOSを構築するためにAndroidを分岐させたときに、かなりの数の眉をひそめました。 しかし、オープンソース側では、MotorolaがCliqで行ったこと、HTCがHeroで行ったこと、またはSamsungがGalaxyシリーズデバイスで現在行っていることと違いはありませんでした。 これは、多くの大規模なオープンソースプロジェクトが機能する方法です。 すべてのベンダー(おそらくAmazonを除く)は同じ基本を使用し、バグを報告し、進行中にアップストリームに修正を送信して、最終製品の独自のテイクを作成します。

FacebookはAndroidをフォークしませんでした。 Androidインテントシステム(アプリが互いに連携してAndroid上で共有できる方法)を使用し、代替ホームを追加した大きなアプリを構築しました。 サンドボックス内では、ユーザーがやりたいことや必要なことを何でも実行できます。また、Androidの意図を使用している限り、システムの他の部分と通信できます。 技術的になりたい場合、HTCは、HTC FirstでFacebook Homeとの連携を改善するためにAndroidを分岐した可能性があります。 電話がちらつくとき、彼らが何をしたかについてもっと知るでしょう。

いずれにせよ、コードをフォークすることは常に悪いことではなく、誰かが言及したときに耳にする否定性に値するものではありません。 業界アナリストのStephen O'Gradyは、それをうまくまとめていると思います。

ただし、顧客の観点から見ると、フォークやバリアントは一般的に悪いわけではありません。 さまざまなAndroidバージョンは、それらを担当するベンダー側の不幸な設計上の決定を表していますが、バージョンの同等性を前提として、アプリケーションはデバイス間で互換性がある圧倒的多数のケースにあります。

Androidが設計された理由は、デバイス間で互換性のあるアプリを持つことです。 コードをフォークしても、それは起こりません。 しかし、他のこともあります。

Androidの分岐の反対側

中国では、Androidを実行しているが、Googleサービスがないキャリアから携帯電話を購入できますか? Kindle Fireと同様に、GoogleのAndroidコード(変更されていない場合もあります)から作成されていますが、Googleと互換性があり、GmailやGoogle Playなどが含まれていることは送信およびテストされていません これらのアプリ、および実行に必要な各種システムファイルはオープンソースではなく、Googleの許可なしにそれらを含めることはできません。

これらのアプリなしの「異なる」(「悪い」とは言いませんが、異なるだけです)ユーザーエクスペリエンス以外は、VerizonまたはAT&Tから購入するAndroidスマートフォンのように見え、感じることができます。 また、Amazonが行ったように、見た目や雰囲気も大きく異なります。 しかし、これはいずれもGoogleのAndroidコードから分岐したためです。Googleの「認定」デバイスを作成しないという意識的な決定でした。 Googleは、Androidをアプリケーションプラットフォームおよび一連のアプリフレームワークとして提示します。 Googleのサービスアプリケーションが含まれていなくても、それがアプリプラットフォームに劣ることはありません。 もちろん、GoogleはすべてのAndroidおよびAndroidベースのデバイスでGoogleのサービスを使用することを望んでいますが、ベンダーがそれを行わなければならないという厳格なルールはありません。

Googleのアプリなしでデバイスを作成することは、Androidをフォークすることとは関係ありません。 デバイスがあまり望ましくない場合もあれば、Googleのアプリなしで究極のAndroidスマートフォンを構築できる場合もありますが、コードをフォークすることなく実現できます。 私たちは2つのことを一緒にメッシュ化することに罪を犯していますが、そうすべきではありません。

分岐は単なるものです

OEMがAndroidを分岐し、コードを使用して独自のプロジェクトに取り組むことはよくありません。 OEMがAndroidを分岐し、コードを使用して独自のプロジェクトに取り組むことは悪くありません。 それは彼らがすることのすべてです。

Nexusファンクラブは別として、SamsungやHTCがコードを分岐して構築したことでAndroidを台無しにしたとは言えません。 開発者のガイドラインに従って「Android」向けに構築されたアプリケーションが正常に動作するように、すべての互換性を維持しながら機能を追加しました。 そして、人々が購入したいデバイスを一貫して提供します。 これはまさに、GoogleがAndroidに対して念頭に置いていたものだと思います。 彼らは最終的に誰かがもう少し先に進み、完全に「Android」に準拠していないものを作成することを知っていましたが、それは問題ありません。 それらのデバイスのユーザーはまだインターネットを利用しており、GoogleのモバイルWebアプリはかなりまともです。

うまくいけば、Androidのフォークについて話すときの意味についてもう少し理解できたと思います。