Androidはオープンソースなので、誰でもコードを見ることができますし、それが内部の仕組みを参照してください。 これを行う場合は、そのほとんどに気付くはずはなく、すべてのAPIのがされている公に文書化 。
それらが公に文書化している場合、彼らは我々がAndroidのアプリケーションフレームワークと考えるものの一部です。 これは彼らのテストがに表示されることを意味互換性テストスイート(CTS)ハードウェアパートナーは、APIの動作を行うようになり、我々はそれらが変更され、あなたのコードを壊さないように一生懸命やろうとすることを約束することを証明しなければならないように。
ほとんどすべてのケースでは、文書化されていないAPIを残すための唯一の理由があります:私達は何私達が今持っていることが最善の解決策である、と我々はそれを改善しなければならないかもしれないと思う、と我々はそれらの約束をする準備ではないということがわからないテストと保全。
我々は、彼らが"プライベート"または"秘密"だと主張していない - 彼らはどのように世界で誰もがそれらを発見することができるときに、だろうか? 私達はまたそれらが禁止されていると主張していない:あなたがそれらを使用する場合は、あなたのコードがコンパイルされ、おそらく実行されます。 そして実際に私たちはしばしば魅力的な効果に、その開発者が文書化されていないAPIを使用しているそこにかなりの数のアプリを発見された。 それは、我々は安定に周り得ていないことを便利なAPIがあるところにあまりにものケースではこれについて怒るのは難しい。
しかし、これらのAPIを使用する開発者は、我々は、Androidアプリケーションフレームワークに文書化されていない外からそれらを移動するときに発生する状況に対処するために準備する必要があります。 幸いなことに、これは合理的に簡単です。 また、我々はこれらの変更のいずれかが来ているのを知っているとき衝撃の感覚を得るために、当社の社内分析ツールを使用して、Androidマーケットをよく見てください。
アンドロイド4.0"アイスクリームサンドイッチ"(ICS)アプリのリリースで出てくるいくつかのそのような変更があります。 我々は違いについて、具体的に文書化されていないAPIにこれらの単語を組み合わせることが機会を利用していました。
なんだかよくわからない翻訳具合なので、もすこし。
カレンダー
良いニュースから始めましょう:ICSのように、Androidのフレームワークが含まれます完全に働いていたアウトのAPIセットの予定表データにアクセスするため。 悪いニュースを推測できる:かなりの数の開発者は、文書化されていないカレンダーのAPI、カレンダデータベースにかなりの低レベルアクセスを使用していくつかを使用して(多くの良いものを含む)対応アプリを構築している。 残念ながら、これらの統合がサポートされていない、とプラットフォームのアップデートまたはOEMカレンダー機能のカスタマイズにより、利用できにくいものでした。
良いのカレンダーアプリとAndroidのデバイス間で確実に動作するをたくさん見てみたい、そしてプラットフォームのアップデートによって分解されることはありません。 だから我々は、ICSのカレンダデータを管理するために、テントの包括的なセットを含む、クリーンなAPIを作成することにしました。 今すぐ誰もがこれらの新しいAPIに対してコーディングし、Androidがそれらをサポートするためにコミットしていることを知って、そしてそのパートナーは、CTSの一部としてこれらのAPIをサポートすることができます。
新しいAPIが到着したら、あなたはまだ旧リリースでの作業中にそれらがICSで正しく実行するだろうする前に、アプリケーションを更新する必要があるとしている。 それを行うための、さまざまな手法が存在する、その多くは含め、このブログで紹介されている反射や遅延ロード 。 最近、我々は導入複数APKサポートも転移のこの種のを助けるために使用することができる、。
Text To Speech
Androidは、実際にフレームワークレベルでテキストを音声に変換するAPIがありませんでしたが、C++レベルでの非公式なアクセス方法がありました。 ICSを使用すると、アプリケーションレベルのAPIのDalvik上で動作するので、通常のJava言語アプリケーションのコードを使用してアクセスできます。
古いC++APIはサポートされますが、それから新しいAPIへの橋渡しに使用できる互換レイヤとなります。 それは非常にわずかな作業でICSのために簡単に更新するされるべきです。
正しいことをしているのだ
これらの変更によって影響を受ける開発者の作業が発生することを認識しています。しかし、Android一般のプログラム、特にカレンダーやTTSアプリの両方が、先に出てくるだろうと確信しています。 ほとんどの開発者がドキュメント化されていないAPIを使用しているので、それらのAPIの変更が正しいこととして同意できると思います。
Android Developers Blog: New Public APIs in ICS