Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
introduction to Choreographer
Search
Daichi Furiya (Wasabeef)
September 11, 2015
Programming
0
760
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)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
About Flutter Architecture
wasabeef
0
170
2023 Flutter/Dart Summary
wasabeef
0
46
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
140
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
2.8k
What it Takes to be a Flutter Developer
wasabeef
0
160
FlutterKaigi 2022 Keynote
wasabeef
1
560
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.3k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.1k
Other Decks in Programming
See All in Programming
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
42 best practices for Symfony, a decade later
tucksaun
1
180
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
php-conference-japan-2024
tasuku43
0
220
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
快速入門可觀測性
blueswen
0
340
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
720
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
Zoneless Testing
rainerhahnekamp
0
120
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
335
57k
Designing for Performance
lara
604
68k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
For a Future-Friendly Web
brad_frost
175
9.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
GraphQLとの向き合い方2022年版
quramy
44
13k
The Language of Interfaces
destraynor
154
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Optimising Largest Contentful Paint
csswizardry
33
3k
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