web-dev-qa-db-ja.com

Androidグラフィック内部

Androidグラフィックシステムがどのように機能するか、具体的には、ディスプレイサーバーを使用するか、DirectFBまたはX11に基づいているかなど)の明確な説明が見つかりません。

Androidは Linuxフレームバッファー)に依存します 。私がどのような種類のディスプレイサーバーであるかについてはあまり知りません ウィンドウマネージャー Androidはフレームバッファーへのアクセスを多重化するために使用するので、ポインターがあれば大歓迎です!

最後に、私が理解していることから、ARM命令セットはOpenGLを高速化するための命令を提供しますが、これがディスプレイサーバーとどのように統合されるかは明確ではありません。つまり、クライアントアプリケーションが共有メモリバッファをネゴシエートします。クライアントは直接書き込みますか?

プラットフォームアクセラレータのOpenGLライブラリはオープンソースですか?それらがクローズドソースのバイナリであることを示唆するいくつかの参照を見つけました。繰り返しになりますが、ポインタがあれば幸いです。

41
naasking

Androidグラフィック:SurfaceFlingerとSkiaの2つのコアピースがあります。SurfaceFlingerは、ウィンドウマネージャーがウィンドウ(実際にはサーフェスと呼ばれます)を作成および表示するために使用するAndroidのコンポジターです。)SurfaceFlingerはOpenGLの上に実装されていますES 1.xは現在利用可能であり、他のハードウェアアクセラレーション技術(MDP、T-Mobile G1の2Dブリッター、またはXoomのハードウェアオーバーレイ)も使用できます。

各アプリケーションは、主にSkiaを使用してウィンドウ(またはサーフェス)にレンダリングします。 SkiaはAndroidの2Dグラフィックライブラリです。 OpenGL ES 1.xおよび2.0を使用して、サーフェスにレンダリングすることもできます。

Androidは、DirectFBやX11、その他の既存のLinuxソリューションを使用していません。

41
Romain Guy

Android Graphics: http://www.slideshare.net/jserv/design-and-concepts-of-Android-graphics についての簡単な紹介プレゼンテーションがあります。

8
jserv

ロマンガイは間違いなく正しかった。しかし、Android 3.0以降変更されました。Skiaはもはやそれほど重要ではありません。ほとんどの2D描画は、openGL、別名HWUIコンポーネントを使用して高速化されています。

4
pierrotlefou

Androidグラフィックに関するすべての情報は、ここで見つけることができます:

https://source.Android.com/devices/graphics/

1
Juan Moreno