More Related Content
PDF
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~ PDF
PDF
MINCS – containers in the shell script PDF
PDF
Ylug 110th kpatch code reading ODP
PDF
What's hot
PDF
PDF
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド PDF
PPTX
パケットジェネレータipgenから見るnetmap PPTX
PDF
PDF
PDF
PDF
PostgreSQL - C言語によるユーザ定義関数の作り方 PDF
CLRの基礎 - プログラミング .NET Framework 第3版 読書会 PDF
PDF
PDF
KEY
関東GPGPU勉強会 LLVM meets GPU PPTX
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ) PDF
A_road_to_AMBER_simulations_ver_1.0 PDF
PDF
PDF
PPTX
2021 10-12.linx device-tree Viewers also liked
PPTX
Surface flingerservice(서피스플링거서비스초기화 jb) PPTX
Understanding open max il PDF
Design and Concepts of Android Graphics KEY
日本Androidの会発表スライド androidのメディア機能の話 PDF
Introduction of unit test on android kernel PPT
PPTX
A slightly deeper dive into Stagefright PDF
PDF
PPTX
Android audio system(audioflinger) PDF
PPTX
Android graphic system (SurfaceFlinger) : Design Pattern's perspective PDF
The anatomy and philosophy of Android - Google I/O 2009 PDF
PDF
Android media framework overview PDF
Android Multimedia Framework Similar to 20分で理解するdisplaysystem
PPTX
PPT
PDF
Fpga online seminar by fixstars (1st) PDF
Windowsフォームで大丈夫か?一番良いのを頼む。 PDF
MeeGo Seminar Winter Porting 20101209 PDF
PDF
openFrameworks Workshop in Kanazawa v001 PDF
PDF
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B PDF
Androidプログラミング初心者のためのゲームアプリ開発入門 PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL PDF
「さくらのINFRA WARS」で 利用されている技術 PDF
PDF
PDF
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~ PDF
coma Creators session vol.2 PDF
PDF
PDF
Delphi Community Edition Meet up ! PDF
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介 More from magoroku Yamamoto
PDF
PDF
PDF
自動並列化コンパイラをAndroidに適用してみた PDF
Oscar compiler for power reduction PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Android builders summit slide tour PDF
PPTX
PPTX
PDF
KEY
PDF
PDF
20分で理解するdisplaysystem
- 1.
- 2.
ふーあむあい
� 源氏名 @magoroku15 名古屋在住
� OS屋さん出身の組み込み屋さん
� 2009年より@androidzaurusに師事し、日本のIT勉強会で必須と
されるサブカルチャを学ぶ
� 今年はFPGAでpdp11を動かすのが目標だった
� UST検定 初段
� ぐだ生(土曜)、名古屋geekbar(月曜)を配信中
� magorokutv で検索 / 現在までに9770人が視聴
� ミキサー4台 大人買い
� 名古屋つくる部 配信係り
� よーするに 塚田部長のパシリ、 @gabu怖い
� 名古屋geekbar 早番店員
� よーするに 塚田店長のパシリ、 @gabu怖い
- 3.
display subsystemって何
� HWから見ると
� FrameBuffer 1ピクセルが1ドット
� Blit処理 矩形転送
� SWから見ると
� アプリ画面、システム画面の合成
� 画面間の重なりの管理と描画の更新
� 広義にはOSの一部
� 1つのリソースを複数のアプリが利用
� 1つのコンポーネントがアプリの要求を調停
� display susbsystem
- 4.
*unixの場合
デーモン サーバー アプリケーション
X-Window
System
VFS
Socket
Kernel
VFAT
UDF
ext3
driver
Frame
Buffer
- 5.
Windowsの場合
システムプロセス サービス アプリケーション
NTDLL.DLL
システムサービスディスパッチャ
IFS USER GDI
KERNEL
VFAT
NTFS
UDF
Frame
HAL Buffer
- 6.
今日話すこと
AndroidのDisplay subsystemの概要を説明
�skia
� ashmem
� native binder
� ashmem
引用する資料
Google I/O 2009
Noisy Androids
Mastering the Android Media Framework
Google I/O 2008
Android Anatomy and Physiology
- 10.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
SurfaceFlinger::composeSurfaces
frameworks/base/libs/surfaceflinger/SurfaceFlinger.cpp
905 void SurfaceFlinger::composeSurfaces(const Region& dirty)
906 {
912 const SurfaceFlinger& flinger(*this);
913 const LayerVector& drawingLayers(mDrawingState.layersSortedByZ);
914 const size_t count = drawingLayers.size();
915 sp<LayerBase> const* const layers = drawingLayers.array();
916 for (size_t i=0 ; i<count ; ++i) {
917 const sp<LayerBase>& layer = layers[i];
918 const Region& visibleRegion(layer->visibleRegionScreen);
919 if (!visibleRegion.isEmpty()) {
920 const Region clip(dirty.intersect(visibleRegion));
921 if (!clip.isEmpty()) {
922 layer->draw(clip);
923 }
924 }
925 }
926 }
- 18.
Androidの場合
SystemServer アプリケーション
binder
surfaceflinger
Kernel ashmem
driver
Frame
Buffer
- 19.