Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
introduction to Choreographer
Daichi Furiya (Wasabeef)
September 11, 2015
Programming
0
650
introduction to Choreographer
introduction to Choreographer
Daichi Furiya (Wasabeef)
September 11, 2015
Tweet
Share
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
1
380
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
1.6k
Flutter Hooks, sometimes Jetpack Compose
wasabeef
2
1.3k
Skia and Skija, Skiko [ja]
wasabeef
1
1k
Flutter はプロダクション開発に耐えうるのか / Flutter ready for production?
wasabeef
34
10k
モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform expectations and challenges in mobile development
wasabeef
0
250
Repository with Store4 [ja]
wasabeef
2
950
来年に備えるために Android の知識を網羅する / Looking back on this Android year in preparation for next year.
wasabeef
17
13k
What's new Android Studio 4.0 [ja]
wasabeef
4
1.4k
Other Decks in Programming
See All in Programming
Where and how to run UI tests (Droidcon Lisbon & Android Makers, Paris)
nonews
0
120
Keep Your Cache Always Fresh With Debezium
gunnarmorling
0
180
Composing an API with Kotlin (Kotlin Dev Day 2022)
zsmb
0
150
アプリのログをチーム外で活用してもらうためにやったこと
shotakashihara
0
150
Let's make a contract: the art of designing a Java API
mariofusco
0
160
ebpfとWASMに思いを馳せる2022 / techfeed-conference-2022-ebpf-wasm-amsy810
masayaaoyama
0
520
Go API クライアントの実装 〜Go Conference に載せれなかったTIPS〜
yyoshiki41
0
190
WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ
oniak3ibm
PRO
0
140
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
110
Swift Concurrencyによる安全で快適な非同期処理
tattn
2
260
Kotlin KSP - Intro
taehwandev
1
470
확장 가능한 테라폼 코드 관리 (Scalable Terraform Code Management)
posquit0
1
310
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
The Brand Is Dead. Long Live the Brand.
mthomps
45
2.7k
KATA
mclloyd
7
8.6k
Robots, Beer and Maslow
schacon
152
7.1k
What's in a price? How to price your products and services
michaelherold
229
9.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
350
21k
Documentation Writing (for coders)
carmenhchung
48
2.5k
Support Driven Design
roundedbygravity
86
8.4k
The Cult of Friendly URLs
andyhume
68
4.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
YesSQL, Process and Tooling at Scale
rocio
157
12k
Transcript
$IPSFPHSBQIFS 8BTBCFFG
"CPVU.F @wasabeef_jp CyberAgent, Inc.
Choreographer IUUQEBODFXPSLTOFUJOTQJSBUJPODIPSFPHSBQIFST
$IPSFPHSBQIFS “The choreographer receives timing pulses (such as vertical synchronization)
from the display subsystem then schedules work to occur as part of rendering the next display frame.”
'SBNF3BUF
'SBNF3BUF “ϑϨʔϜϨʔτɺಈըʹ͓͍ͯɺ୯Ґ࣌ؒ͋ ͨΓʹॲཧͤ͞ΔϑϨʔϜʢ੩ࢭը૾ɺί ϚʣͰ͋Δɻ௨ৗɺ1ඵ͋ͨΓͷͰද͠ɺ fpsʢӳ: frames per secondʹϑϨʔϜຖ ඵʣͱ͍͏୯ҐͰද͢ɻ”
IUUQTUXJUUFSDPN.D'VOLZQBOUTTUBUVT
60fps: 16.666666667/ms 40fps: 33.333333333/ms 15fps: 66.666666667/ms
74ZOD
IUUQCJUMZ&2RKL
None
)PXUPVTF
class Metronome implements Choreographer.FrameCallback { private Choreographer choreographer; public Metronome()
{ choreographer = Choreographer.getInstance(); } public void start() { choreographer.postFrameCallback(this); } public void stop() { choreographer.removeFrameCallback(this); } @Override public void doFrame(long frameTimeNanos) { Timber.i(“Callback frameTimeNanos” + frameTimeNanos); choreographer.postFrameCallback(this); } }
$IPSFPHSBQIFS$PNQBU JOGBDFCPPLSFCPVOE
None
IUUQTXXXqJDLSDPNQIPUPTUFUTVL
IUUQTHJUIVCDPNXBTBCFFG5BLU
EFQFOEFODJFT\ DPNQJMFKQXBTBCFFGUBLU ^ 5BLUTUPDL UIJT QMBZ
5IBOLT