なぜ、同じクラスのための通常のJava実装からアンドロイド異なるのJavaソースコードの実装はありますか?

Eitanos30:

私は、Androidのためのコーディングを始めることにしました。意思決定の前に、私はそれがAndroidの開発にも私を助けるだろうと期待して、私のJavaのスキルを向上させることに多くの時間を費やしました。

今日では、いくつかのクラスを開いた後に(例えばHashMapの)、私はAndroidの実装は「通常の」実装と異なっていることがわかりました。

GUIとタッチの必要性に関連していないクラスは、Androidに異なる方法で実装することが、なぜ誰かが私に説明できますか?なぜ、すでに存在している同じクラスを使わないのでしょうか?

私は答えを探したがものを見つけることができませんでした。この質問は、すでに依頼されている場合、私はそれのためのリンクを取得し、投稿をロックするために喜んでいるでしょう。

スティーブンC:

これは、すべての著作権、ライセンスや大企業の彼らの「縄張り」を保護しようとしてについてです。

背景には、Javaは、Sun Microsystemsが開発した独自のコードベースが元々だったということです。開発者が利用できるようになりましたJavaクラスライブラリのソースコードは独自ライセンスで覆われていました。

2007年には、OpenJDKの6は、オープンソースとしてリリースされました。GoogleはOpenJDKのを見て、またライセンスについて日と交渉し、彼らは、彼らが発表されたJava言語仕様とJava SEののjavadocに基づくクリーンルームの再実装をしているほうであると判断しました。とりわけ、これは、Googleがユーザー・インターフェース・フレームワークで新鮮な表情、およびモバイルプラットフォームに不可欠な他のAPIを取ることができました。最後は結果はSunのJava MEの提供に非常に優れていたでした。

しかし、SunとGoogleの間の関係は、まだ心を込めていました。

その後、Oracleは、日と合併し、企業文化の変化がありました。そこOracleとGoogleの間には大きな訴訟があって、それは、JavaエコシステムにおけるOracleとGoogleの間に有意な協力のチャンスをscuppered。

より多くの背景については、これらのWikipediaの記事をお読みください。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=311877&siteId=1