Android の描画フロー ( 前編 )             @yuuto
Android の描画ってどうなってるん? 描画用のスレッドが延々ぐるぐるして ます。 描画用スレッドは mainThread とか UIThread と呼ばれます。 描画命令とかがメッセージキューとい うところに Handler 経由などで ...
Looper と Handler  偉大な先人達のサイトを見てね☆  throw Life - Android の Handler とは何  か?     http://www.adamrocker.com/blog/261/      wh...
View#invalidate()  UI を描画・再描画するときに呼ぶメソ  ッド     TextView#setText(String) 内でもコールさ      れてるよ  このメソッドをコールするとメッセー  ジキューに描画してねっ...
View#invalidate()
ちょっとヒエラルキー確認。 View の構成はこんな感じ。 Root にい る View は PhoneWindow$DecorView 。 DecorView の親は ViewRoot/ViewRootImpl
クラス関係も確認。
View#invalidate()
View#invalidate() のまとめ 結局は Looper と Handler の関係と一緒 。 変更のあった( invalidte() した) View の親をひたすらたどっていくと ViewRootImpl にたどり着く。 View...
描画処理そのものは? 入り口は Looper#loop() 代表的な処理は measure/layout/draw 。 ハードウェアアクセラレータ対応のコ ードが(多分) honeycomb から入って きたけどやっつけっぽくてコードがば っちぃ
measure まではこんな感じ
続きはまた今度。 ここらへんを調べてて気になっている こと。    描画処理時の View 間の補完関係。    Looper は自分で使える。    HandlerThread クラス。      俺俺 Looper を扱いやすくして...
Upcoming SlideShare
Loading in …5
×

Androidの描画フロー(前編)

4,526 views
4,308 views

Published on

androidの描画処理

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,526
On SlideShare
0
From Embeds
0
Number of Embeds
37
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Androidの描画フロー(前編)

  1. 1. Android の描画フロー ( 前編 ) @yuuto
  2. 2. Android の描画ってどうなってるん? 描画用のスレッドが延々ぐるぐるして ます。 描画用スレッドは mainThread とか UIThread と呼ばれます。 描画命令とかがメッセージキューとい うところに Handler 経由などで push さ れます。 UIThread はそれを一個ずつ処理します 。 今回はメッセージキューに入れるとこ
  3. 3. Looper と Handler 偉大な先人達のサイトを見てね☆ throw Life - Android の Handler とは何 か?  http://www.adamrocker.com/blog/261/ what-is-the-handler-in-android.html
  4. 4. View#invalidate() UI を描画・再描画するときに呼ぶメソ ッド  TextView#setText(String) 内でもコールさ れてるよ このメソッドをコールするとメッセー ジキューに描画してねってメッセージ が入る。
  5. 5. View#invalidate()
  6. 6. ちょっとヒエラルキー確認。 View の構成はこんな感じ。 Root にい る View は PhoneWindow$DecorView 。 DecorView の親は ViewRoot/ViewRootImpl
  7. 7. クラス関係も確認。
  8. 8. View#invalidate()
  9. 9. View#invalidate() のまとめ 結局は Looper と Handler の関係と一緒 。 変更のあった( invalidte() した) View の親をひたすらたどっていくと ViewRootImpl にたどり着く。 ViewRootImpl は Handler なの で、 Handler#post() したときと同様に メッセージキューにメッセージが入る 。
  10. 10. 描画処理そのものは? 入り口は Looper#loop() 代表的な処理は measure/layout/draw 。 ハードウェアアクセラレータ対応のコ ードが(多分) honeycomb から入って きたけどやっつけっぽくてコードがば っちぃ
  11. 11. measure まではこんな感じ
  12. 12. 続きはまた今度。 ここらへんを調べてて気になっている こと。  描画処理時の View 間の補完関係。  Looper は自分で使える。  HandlerThread クラス。  俺俺 Looper を扱いやすくしてくれるクラス  IdleHandler クラス  なんか Looper が暇だったらコールバックメソ ッドが呼ばれるようなやつっぽい。

×