43

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

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

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

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

4

4 に答える 4

44

Android グラフィックスには、SurfaceFlinger と Skia という 2 つのコア部分があります。SurfaceFlinger は Android のコンポジターであり、ウィンドウ マネージャーがウィンドウ (実際にはサーフェスと呼ばれます) を作成および表示するために使用します。 T-Mobile G1、または Xoom のハードウェア オーバーレイ。)

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

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

于 2011-02-15T17:38:23.233 に答える
10

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

于 2012-01-05T08:21:00.963 に答える
6

Romain Guyは間違いなく正しかった。しかし、Android 3.0 以降は状況が変わりました。Skia はもはや重要ではありません。ほとんどの 2D 描画は、HWUI コンポーネントとしても知られる openGL を使用して高速化されています。

于 2013-03-08T05:34:51.073 に答える