w ύϑΥʔϚϯεଌఆ
w ʮύϑΥʔϚϯε͕ѱ͍ΞϓϦʯͱʁ
w ύϑΥʔϚϯεΛଌΔํ๏
w 1SP
fi
MFBCMFCVJMEͱʁ
w ҎԼͷ༰ʹ৮Ε·ͤΜ
w ͲͷΑ͏ʹύϑΥʔϚϯεΛվળ͢Δ͔
ࠓճͷ
3
Slide 4
Slide 4 text
w ύϑΥʔϚϯεࢦඪͱ͍ͬͯ৭ʑ͋Δ
w ௨৴͕গͳ͍ɺόοςϦʔͷෛ୲͕গͳ͍ʜ
w ͱ͍͑ɺʮଟ͘ͷϢʔβʹͱ͍͍ͬͯ͢ʯΞϓϦʹͱͬͯɺύ
ϑΥʔϚϯεඇৗʹॏཁͳࢦඪ
w ʮΞϓϦ͕ॏ͍ʯͱײͤ͡͞Δཁૉɺ69ͷ્ʹͭͳ͕Δ
w Ξχϝʔγϣϯ6*ͷ+BOL
w ϑϨʔϜͷϑϦʔζ
w ϝϞϦ༻ྔ͕ߴ͍
ʮύϑΥʔϚϯε͕ѱ͍ΞϓϦʯͱʁ
4
Slide 5
Slide 5 text
w ΞϓϦ͕ੜ͢ΔϑϨʔϜ͕6*ϨϯμϦϯάʹؒʹ߹ΘͣɺγεςϜ͕
ϑϨʔϜΛεΩοϓ͢Δݱ
w +BOL͕ൃੜ͢ΔͱϢʔβνϥ͖ͭΛײ͡Δ
w 6*εϨουͷ࣮ߦԼ6*εϨουΛϒϩοΩϯά͢Δඇಉظݺ
ͼग़͕͠ى͖͍ͯΔͷ͕ओͳݪҼ
w ॲཧʹ࣌ؒͷ͔͔Δ$PNQPTBCMFͳؔ
w 3FDZDMFS7JFX-JTU7JFXͷ࠶ඳըͷաͳൃੜ
w ωετͳͲɺෳࡶͳϨΠΞτվ
Ξχϝʔγϣϯ6*ͷ+BOLͬͯʁ
5
ref: https://developer.android.com/studio/profile/jank-detection
Slide 6
Slide 6 text
w "OESPJE4UVEJPͷ$161SP
fi
MFSͰ֬ೝ͢Δ
w "OESPJEҎ߱ɿ4ZTUFN5SBDF͔Β+BOLZ'SBNFTͰ֬ೝͰ͖Δ
+BOLͷܭଌํ๏
6
+BOLͨ͠ϑϨʔϜͷৄࡉ֬ೝͰ͖Δ
ref: https://developer.android.com/studio/profile/jank-detection
Slide 7
Slide 7 text
w ϨϯμϦϯάʹNTҎ্͔͔ΔϑϨʔϜ
w +BOLͱผͷ໊લ͕͍͍ͭͯΔ͕ɺݪҼͱͯ͠΄΅ಉ͡
w ΞϓϦͷىಈ࣌ͳͲɺ͔ΒϑϨʔϜͷϨϯμϦϯάΛߦ͏γʔϯͰ
ؕΓ͍͢
w ϢʔβϑϨʔϜͷϑϦʔζʹର͠ɺʮΞϓϦͷಈ࡞͕ఀࢭͨ͠ʯͱೝ
ࣝ͢ΔͷͰ69తʹඇৗʹΑ͘ͳ͍ݱ
ϑϨʔϜͷϑϦʔζͬͯʁ
7
ref: https://developer.android.com/topic/performance/vitals/frozen
Slide 8
Slide 8 text
w ϦϦʔε͍ͯ͠ΔΞϓϦͰൃੜ͍ͯ͠Δ߹ɺ"OESPJE7JUBMTͷμο
γϡϘʔυͰऩू͞ΕΔͷͰͦͷ౷ܭΛ֬ೝͰ͖Δ
ϑϨʔϜͷϑϦʔζΛ֬ೝ͢Δ
8
Slide 9
Slide 9 text
w ։ൃऀ͚Φϓγϣϯ͔ΒϓϩϑΝΠϥΛىಈͰ͖Δ
w όʔδϣϯʹΑ໊ͬͯલ͕ҧ͏
w ʮ)86*ϨϯμϦϯάͷϓϩϑΝΠϧ࡞ʯ
w ʮ(16ϨϯμϦϯάͷϓϩϑΝΠϧ࡞ʯ
w ༗ޮʹ͢Δͱɺը໘্ʹ֤ϑϨʔϜͷඳըʹ͔͔Δ࣌ؒ
͕άϥϑͰදࣔ͞ΕΔ
"OESPJEͷ࣮ػ্ͰඳըͷύϑΥʔϚϯεΛ֬ೝ͢Δ
9
ref: https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering
w ʮͦΓΌ͋ɺ͍ͬͺ͍ϝϞϦͬͯΔͱ͍͏͜ͱͰʁʯ
w ·͊ɺͦͷͱ͓Γɻ
w "OESPJEʹΨϕʔδίϨΫγϣϯϝϞϦڞ༗ͱ͍ͬͨཧػೳ͕උ
Θ͍ͬͯΔ͕ɺݶք͋Δ
w ϝϞϦϦʔΫʹΑͬͯΨϕʔδίϨΫλʔ͕ϝϞϦΛ։์Ͱ͖ͳ͍
w ཧͷΛ͑Δ͍ͰΞϓϦ͕ϝϞϦΛཁٻ͢Δ
w Ϣʔβʮ͍ͬͯΔͱͲΜͲΜ͘ͳΔͷͰλεΫΩϧΛ͢Δʯͱ͍
͏ೝࣝΛ͢Δ
ϝϞϦͷ༻ྔ͕ߴ͍ͬͯʁ
13
Slide 14
Slide 14 text
w "OESPJE4UVEJPͷ.FNPSZ1SP
fi
MFSΛͬͯܭଌͰ͖Δ
w ώʔϓμϯϓ͔ΒৄࡉͳϝϞϦঢ়ଶϝϞϦϦʔΫऔಘͰ͖Δ
ϝϞϦͷ༻ྔͷܭଌ
14
Slide 15
Slide 15 text
ͱ͜ΖͰ
Slide 16
Slide 16 text
w %FCVHCVJMEͰΈ͍ͯΔʁ
w android:debuggable=“true”
w "OESPJE1SP
fi
MFS͕ඞཁ͔ͩΒ
w σόοάϥΠϒϥϦ͕debugImplementationͰґଘ͍ͯ͠Δ͔Β
w %FCVHCVJME3FMFBTFCVJMEͱҧ͍ɺύϑΥʔϚϯε໘Ͱෆར
w σόοάใΛఏڙ͢ΔͨΊʹɺίϯύΠϥͷ࠷దԽΛࢭΊΔͳͲ
ύϑΥʔϚϯεଌఆͷڥʹ͍ͭͯ
16
w "OESPJEҎ߱Ͱಋೖ͞Εͨ"OESPJE.BOJGFTUʹ͚ͭΔ༻ͷλά
•
w %FCVHCVJME͕͍࣋ͬͯͨΦʔόʔϔουΛճආͭͭ͠ɺϓϩϑΝΠϦ
ϯάπʔϧΛ༗ޮʹ͢Δ
w %FCVHCVJMEͱൺֱͨ͠ͱ͖ʹɺύϑΥʔϚϯεͷӨڹ͕খ͍͞
w ΑΓਖ਼֬ͳύϑΥʔϚϯεใΛಘΔ͜ͱ͕Ͱ͖Δ
1SP
fi
MFBCMFCVJME͕Ճ͞Ε·ͨ͠
19
ref: https://android-developers.googleblog.com/2022/10/accurately-measure-android-app-performance-with-profileable-builds.html
Slide 20
Slide 20 text
1SP
fi
MFBCMFCVJMEͱ3FMFBTFCVJMEͰݟΔ/PXJO"OESPJE
20
1SP
fi
MFBCMFCVJME 3FMFBTFCVJME
ඳըʹ࣌ؒͷ͔͔Δ
ϑϨʔϜ͕ݮͬͨ
ˣ
%FCVHCVJMEΑΓ
ύϑΥʔϚϯεͷ
Өڹ͕খ͍͞
Slide 21
Slide 21 text
ͭฒͯΈΔ
21
%FCVHCVJME 3FMFBTFCVJME
1SP
fi
MFBCMFCVJME
Slide 22
Slide 22 text
w ͔݁Βݴ͏ͱେৎ
w ಡԽΛεΩοϓ͢ΔͷͰͳ͍ͷͰγϯϘϧܽམ͢Δ
w (PPHMFͷTUQBSUZBQQTطʹετΞʹ͋Δͷ͕1SP
fi
MFBCMFCVJME
w ํతʹηΩϡϦςΟ͕༏ઌ͞ΕΔͷͰɺ੍ݶ͕͍Δ
w $161SP
fi
MFSίʔϧελοΫαϯϓϦϯάɺγεςϜτϨʔεͳ
ͲɺλΠϛϯάͷଌఆʹॏཁͳϓϩϑΝΠϧ͔͠αϙʔτ͠ͳ͍
w .FNPSZ1SP
fi
MFSωΠςΟϒϝϞϦͷϓϩϑΝΠϧͷΈ
w &OFSHZ1SP
fi
MFS&WFOU5JNFMJOFͦͦ͑ͳ͍
1SP
fi
MFBCMFCVJMEɺຊ൪ΞϓϦͰΔͷେৎͳͷʁ
22
Slide 23
Slide 23 text
1SP
fi
MFBCMFCVJMEͩͱOBUJWFBMMPDBUJPOTҎ֎ແޮԽ͞ΕΔ
23
Slide 24
Slide 24 text
1SP
fi
MFBCMFCVJMEͩͱϝιουτϨʔεಡԽ͞Εͨ··
24
Slide 25
Slide 25 text
1SP
fi
MFBCMFCVJMEͷ࡞Γํ
Slide 26
Slide 26 text
w ཁɿ"OESPJE4UVEJP'MBNJOHP"(1
w 1SP
fi
MFbBQQOBNF`XJUIMPXPWFSIFBEͱ͍͏Φϓγϣϯ͕Ճ͞
Εͨ
w ࣗಈతʹ1SP
fi
MFBCMFCVJMEΛߦ͍ɺϓϩϑΝΠϥ্Ͱ໌ࣔతʹ
ʮ1SP
fi
MFBCMFCVJMEͰݟ͍ͯΔʯ͜ͱ͕දࣔ͞ΕΔ
w ͲͷϏϧυλΠϓ1SP
fi
MFBCMFʹͰ͖Δ͕ɺύϑΥʔϚϯεଌఆత
Ͱ͋ΕSFMFBTFCVJMEͳͲɺVOEFCVHHBCMFͳλΠϓΛࢦఆ͖͢
"OESPJE4UVEJPͰ1SP
fi
MFBCMF#VJMEΛࣗಈతʹߦ͏
26
Slide 27
Slide 27 text
w "OESPJE.BOJGFTUʹQSP
fi
MFBCMFλάΛ͚ͭΔ
w
w #VJME'MBWPSΛVOEFCVHHBCMFͳCVJMEUZQFʹࢦఆ͢Δ
w ॺ໊ͨ͠ΞϓϦΛ࡞Δ
w σόοάॺ໊Ͱɺ1SP
fi
MFBCMFCVJMEઐ༻ͷॺ໊Ͱ0,
w "OESPJEҎ߱ͷσόΠεͰΞϓϦΛ࣮ߦ͢Δͱɺ֤1SP
fi
MFS͔Β
1SP
fi
MFBCMFCVJMEͰಈ͍͍ͯΔϓϩηεΛࢦఆ͢Δ͜ͱ͕Ͱ͖Δ
ࣗͰ1SP
fi
MFBCMFCVJMEΛߦ͏
27
Slide 28
Slide 28 text
w ύϑΥʔϚϯεͷଌఆͪΌΜͱ͍ͬͯ·͔͢ʁ
w ࢹͰ໌֬ʹ͍Ͱͳ͘ɺ1SP
fi
MFSͰʮίίͷύϑΥʔϚϯε͕
ѱ͍ʯΛ໌֬ʹσʔλͱͯ͠ಘΔͷେ
w 1SP
fi
MFBCMFCVJMEΛ͏͜ͱͰɺΑΓਖ਼֬ͳύϑΥʔϚϯεใΛऔಘ
͢Δ͜ͱ͕Ͱ͖Δ
w ̋̋ͳλΠϛϯάͰύϑΥʔϚϯε͕མ͍ͪͯΔʂͱ͍͏ͷ͕Θ͔ͬ
ͨΒɺ%FCVHCVJMEͳΓͰͳΜͰམ͍ͪͯΔͷ͔ΛΑΓৄࡉʹ٧Ίͯ
͍͘ͷ͕ྑͦ͞͏
·ͱΊ
28