Slide 1

Slide 1 text

1SP fi MFBCMFCVJMEͰ ΑΓਖ਼֬ͳύϑΥʔϚϯεΛ௫Ή TIJCVZBBQL !FEPLVQ

Slide 2

Slide 2 text

{ “id”: “@e10dokup”, “name”: “Yoshihiro Wada”, “affiliation”: “CyberAgent Inc, / Ameba”, “interested”: [ “camera”, “gadget”, “driving”, “motorsports” ] }

Slide 3

Slide 3 text

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

Slide 10

Slide 10 text

"OESPJEͷ࣮ػ্ͰඳըͷύϑΥʔϚϯεΛ֬ೝ͢Δ 10 ref: https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering

Slide 11

Slide 11 text

"OESPJEͷ࣮ػ্ͰඳըͷύϑΥʔϚϯεΛ֬ೝ͢Δ 11 ref: https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering ֤ϑϨʔϜͷඳը ʹ͔͔ͬͨ࣌ؒ ʢ௕͍΄Ͳ஗͍ʣ

Slide 12

Slide 12 text

"OESPJEͷ࣮ػ্ͰඳըͷύϑΥʔϚϯεΛ֬ೝ͢Δ 12 ref: https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering ඳը࣌ؒͷج४ઢ ྘ɿNT ԫ྘ɿNT ੺ɿNT

Slide 13

Slide 13 text

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 %FCVHCVJME͸3FMFBTFCVJMEͱ͸ҧ͍ɺύϑΥʔϚϯε໘Ͱ͸ෆར w σόοά৘ใΛఏڙ͢ΔͨΊʹɺίϯύΠϥͷ࠷దԽΛࢭΊΔͳͲ ύϑΥʔϚϯεଌఆͷ؀ڥʹ͍ͭͯ 16

Slide 17

Slide 17 text

%FCVHCVJMEͱ3FMFBTFCVJMEͰݟΔ/PXJO"OESPJE 17 %FCVHCVJME 3FMFBTFCVJME ඳըʹ࣌ؒͷ͔͔Δ ϑϨʔϜ͕૿͑ͨ ˣ %FCVHCVJMEͷ ύϑΥʔϚϯε΁ͷ Өڹ͸େ͖͍

Slide 18

Slide 18 text

ͦ͜Ͱ

Slide 19

Slide 19 text

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