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
PWA 품은 안드로이드 웹뷰 성능 개선기
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jinny You
April 05, 2019
Programming
0
1.2k
PWA 품은 안드로이드 웹뷰 성능 개선기
2019 드로이드 나이츠(Droid Knights)에서 발표한 자료입니다.
Jinny You
April 05, 2019
Tweet
Share
More Decks by Jinny You
See All by Jinny You
나의 오픈소스 이야기 : 한 줄의 코드에서 글로벌 애니메이션 엔진까지
tinyjin
0
15
Next Gen Lottie: Powering Motion Graphics Across the Apple Ecosystem
tinyjin
0
8
디자이너와 개발자가 자주 겪는 Lottie 핸드오프 FAQ - Figma Config Watch Party Seoul
tinyjin
0
110
인디 앱 개발자와 Flutter
tinyjin
0
520
모던 웹 기술로 C++ 렌더링 엔진 테스트 자동화하기
tinyjin
0
79
그래픽 엔진 포팅 사례로 배우는 웹어셈블리 웹 컴포넌트 개발부터 디버깅, 최적화까지
tinyjin
0
470
韩国的打卡地:你喜欢海边吗?
tinyjin
0
62
LottieFiles로 시작하는 빠르고 효율적인 애니메이션 핸드오프
tinyjin
0
120
エンジニアが見つめるLottieアニメーション
tinyjin
0
140
Other Decks in Programming
See All in Programming
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
atmaCup #23でAIコーディングを活用した話
ml_bear
1
110
CSC307 Lecture 06
javiergs
PRO
0
690
CSC307 Lecture 07
javiergs
PRO
1
560
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
ぼくの開発環境2026
yuzneri
0
250
AI & Enginnering
codelynx
0
120
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
130
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
280
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Faster Mobile Websites
deanohume
310
31k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Skip the Path - Find Your Career Trail
mkilby
0
60
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Code Reviewing Like a Champion
maltzj
527
40k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
Transcript
18"ಿ উ٘۽٘ਢ࠭ࢿמѐࢶӝ 4QFBLFS ߅ࢳ ਬ
ӝࣗѐ ߅ࢳ ޖо҅ࣘߓҊरউ٘۽٘ѐߊ ਬ ࢜۽Ѧदب೧ࠁҊरਢѐߊ !NJOTFPLLS !UJOZKJO JBNNJOTFPLQBSL!HNBJMDPN CBSBN!HNBJMDPN
֬ৈ࢚ട बܻ࢚ݫन ۽झ
बܻ࢚ݫन ۽झ ֎ झఋসੑפ ֬ৈ࢚ട
֬ৈ࢚ട ӏݽসؘ ೠػܻࣗझ טযաח୭ജ҃ইצҊёٜ࠙ ೧৻ࢎਊ וܽੋఠ֔
ӒۢীبࠛҳೞҊજࢲ࠺झ҃ਸઁҕೞҊर ֬ৈ࢚ട ӏݽসؘ ೠػܻࣗझ טযաח୭ജ҃ইצҊёٜ࠙ ೧৻ࢎਊ וܽੋఠ֔
ӒۢীبࠛҳೞҊજࢲ࠺झ҃ਸઁҕೞҊर ֬ৈ࢚ട ӏݽসؘ ೠػܻࣗझ טযաח୭ജ҃ইצҊёٜ࠙ ೧৻ࢎਊ וܽੋఠ֔
ࢲ࠺झীࠄѺਵ۽ ਢਸ֍যࠁ
ӒۢীبࠛҳೞҊજࢲ࠺झ҃ਸઁҕೞҊर ֬ৈ࢚ട ӏݽসؘ ೠػܻࣗझ טযաח୭ജ҃ইצҊёٜ࠙ ೧৻ࢎਊ וܽੋఠ֔ ࢲ࠺झীࠄѺਵ۽
ਢਸ֍যࠁ ખܲ
֬ৈ࢚ട
ޤ উ٘۽٘ஶಌ۠झীਢਸоҊ৳Ҋ Ӓ۞פө
ޤ উ٘۽٘ஶಌ۠झীਢਸоҊ৳Ҋ Ӓ۞פө উबೞࣁਃ উ٘۽٘҃ҕਬੑפ
ܻח৵18"ܳोחо 18"ܳࢶఖೞӝөৈj
ܻח৵18"ܳोחо ਢࢎਊ҃ਸѐࢶೞӝਤೠ ৈ۞ݧӝࣿ 18"ӝמ நद ਢಹए Ѿઁ
കചݶীࢸ
ܻח৵18"ܳोחо 4FSWJDF8PSLFSח 18"ӝࣿѐߊਸب৬ח࠳ۄ"QJ
ܻח৵18"ܳोחо ਢ࠭ܳࢎਊೞחজ ו۷؍ࣘبj ࣘبܳࡅܰѱೞӝਤ೧ࢲח tநदu t٘झܻu t443u t"1*୭ചu
ܻࢶఖ நदઙܨীחযڃѱ ਢநद 18"நद 18"ۄҊ࢜۽աৡਢӝࣿ؍ؘযڃѢ ਢநदࠁ؊աਵ۰ա
ܻח৵18"ܳोחо ਢநदחযڌѱزೞחо $BDIF$POUSPM &5BH ݅ܐदрӝ߈ ٣ణޙӝ߈
ܻח৵18"ܳोחо $BDIF$POUSPM நदоਬؼӝрदр ݅ܐदрӝ߈
ܻח৵18"ܳोחо $BDIF$POUSPM நदоਬؼӝрदр ࢜۽ܻࣗझо৬ب ݅ܐदрӝ߈
ܻח৵18"ܳोחо $BDIF$POUSPM நदоਬؼӝрदр ࢜۽ܻࣗझо৬ب दрաӝөח ܻࣗझসؘоࠛоמ ݅ܐदрӝ߈
ܻח৵18"ܳोחо &5BH ۽ஸ <fsa88sad8v> ࢲߡ <9asd8f7v8a> == ٣ణޙӝ߈
ܻח৵18"ܳोחо &5BH ۽ஸ <fsa88sad8v> ࢲߡ <9asd8f7v8a> == ٣ణޙӝ߈ ۽ஸҗࢲߡীח ٣ణޙਸ࠺ҮѨࢎೞӝਤ೧
֎ਕాनࣻ
ܻח৵18"ܳोחо &5BH ۽ஸ <fsa88sad8v> ࢲߡ <9asd8f7v8a> == ٣ణޙӝ߈ ۽ஸҗࢲߡীח ٣ణޙਸ࠺ҮѨࢎೞӝਤ೧
֎ਕాनࣻ ֎ਕాन߽ݾਸ೧Ѿೡࣻহ
ܻח৵18"ܳोחо 18"நदחযڌѱزೞחо நदܳসؘೞӝਤ೧ࢲח ਃೡٸߡ٘ܳ߄Բӝ݅ೞݶؽ ਬോदрਸഝਊೠܻࣗझসؘ ֎ਕ߽ݾਵ۽ੋೠו۰ߊࢤೞঋ ݒ۽٘द݃நदসؘदب ܻࣗझসؘदઁযоݒਬ۽ 4FSWJDF8PSLFS
ߡ٘ӝ߈
ܻח৵18"ܳोחо 4UBMF8IJMF3FWBMJEBUF
ܻח৵18"ܳोחо 18"நदחযڌѱزೞחо நदܳসؘೞӝਤ೧ࢲח ਃೡٸߡ٘ܳ߄Բӝ݅ೞݶؽ ਬോदрਸഝਊೠܻࣗझসؘ ֎ਕ߽ݾਵ۽ੋೠו۰ߊࢤೞঋ ݒ۽٘द݃நदসؘदب ܻࣗझসؘदઁযоݒਬ۽ 4FSWJDF8PSLFS
ߡ٘ӝ߈
ܻח৵18"ܳोחо 18"நदחযڌѱزೞחо நदܳসؘೞӝਤ೧ࢲח ਃೡٸߡ٘ܳ߄Բӝ݅ೞݶؽ ਬോदрਸഝਊೠܻࣗझসؘ ֎ਕ߽ݾਵ۽ੋೠו۰ߊࢤೞঋ ݒ۽٘द݃நदসؘदب ܻࣗझসؘदઁযоݒਬ۽ 4FSWJDF8PSLFS
ߡ٘ӝ߈
ܻח৵18"ܳोחо ܻࣗझসؘदਬ۽ݶࢲب ֎ਕ߽ݾহחҙܻоמೠநदܳਤ೧ 18"நदܳࢶఖ
18"ۆ 18"ীࢲਗೞחநद ܻநद 1SF$BDIF ۄநद 3PVUF$BDIF ࢶDBDIFറMPBE ࢶMPBEറDBDIF ۽٘ೞחܻࣗझੌۄب ۽٬ࣘبоݒࡅܴ
ױ ୡӝজप೯द ࣘبо࢚ਵ۽ו۰ࣻ ۽٘ೞחܻࣗझח ܻநदࠁࣘبоוܿ ױ ୡӝজप೯द ࢿמೞоѢহ
ӒѾҗ #FGPSF ܻࣗझ۽٬өѦܽदр T
ӒѾҗ "GUFS ܻࣗझ۽٬өѦܽदр NT
ӒѾҗ #FGPSF"GUFS T NT ড 7~8ߓ ର!!!
18"ܳऔҊࡅܰѱ݅٘חߑߨ 8PSL#PY۽ষрױೞѱ 18"ਢਸٜ݅ࣻ (PPHMF8PSL#PYۄ࠳۞ܻ 18"ܳऔѱҳഅೡࣻח18"ಁః ױ٘۽ 18"߂18"நदܳҳഅ
18"҃ ࢎդ೮؍উ٘۽٘҃
18"҃ ݾח
ݾח ಕ ಕ যڃജ҃ٚ ಕо֎౭࠳ۢ ࡅܰѱࠁৈ दр ࡅܴ ࡅܴ
18"জߓನҗীࢲ؍ࢎѤٜ
ߣ૩҃tੌ߈ਢҗחܰu
18"҃ t18"ۄӒۗ u tӒېبjҳӖҊjਢפөjੜٜ݅ѷju tӝࠄࣁਵ۽׳ܽu ੌ߈ਢҗחܰ
18"҃ पಁ ੌױ18"ޥঌইࠁӝ۽ೣ t18"ۄӒۗ u tӒېبjҳӖҊjਢפөjੜٜ݅ѷju tӝࠄࣁਵ۽׳ܽu ੌ߈ਢҗחܰ
18"҃ ࠳ۄ࢚ҙহݽٚࢎਊীѱ ੌ߈ਢҗחܰ https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko
18"҃ ࠳ۄ࢚ҙহݽٚࢎਊীѱ য়ۄੋաוܽ֎ਕীࢲبࠗ٘۞ز ੌ߈ਢҗחܰ https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko
18"҃ ࠳ۄ࢚ҙহݽٚࢎਊীѱ য়ۄੋաוܽ֎ਕীࢲبࠗ٘۞ز জۢࢎਊदࠂೠࢸসࠛਃ ੌ߈ਢҗחܰ https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko
18"҃ ࠳ۄ࢚ҙহݽٚࢎਊীѱ য়ۄੋաוܽ֎ਕীࢲبࠗ٘۞ز জۢࢎਊदࠂೠࢸসࠛਃ ֎౭࠳জਸоמ ੌ߈ਢҗחܰ https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko
18"҃ ࠳ۄ࢚ҙহݽٚࢎਊীѱ য়ۄੋաוܽ֎ਕীࢲبࠗ٘۞ز জۢࢎਊदࠂೠࢸসࠛਃ ֎౭࠳জਸоמ ݽٚࢎਊীѱוܽ֎ਕীࢲب ࠗ٘۞زਸઁҕೡࣻҳա ੌ߈ਢҗחܰ https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko
فߣ૩҃t(JUIVCীࢲસસೞӝu
18"҃ (JUIVCীࢲસસೞӝ t৬জী18"֍ਵݶજѷ֎ tӔؘޖੜޅظࢲউغ؍Ѣ u tҙ۲ܐоয٥оѷ u (JUIVC۽׳ܽu
18"҃ पಁ t৬জী18"֍ਵݶજѷ֎ tӔؘޖੜޅظࢲউغ؍Ѣ u tҙ۲ܐоয٥оѷ u (JUIVC۽׳ܽu (JUIVCীࢲસસೞӝ
18"҃ 18"ܳউ٘۽٘ੌࠗ۽ॄࢎਊೠ҃ח٘ޛ पಁ (JUIVCীࢲસસೞӝ t৬জী18"֍ਵݶજѷ֎ tӔؘޖੜޅظࢲউغ؍Ѣ u tҙ۲ܐоয٥оѷ u
(JUIVC۽׳ܽu
18"҃ न18"8SBQQFS۽ ҳഅೠѪ (JUIVCীࢲસસೞӝ
18"҃ ޤоର न18"8SBQQFS۽ ҳഅೠѪ (JUIVCীࢲસસೞӝ
18"҃ 8FC7JFXநयߑधର ޤоର न18"8SBQQFS۽ ҳഅೠѪ (JUIVCীࢲસસೞӝ
18"҃ -0"%@$"$)&@&-4&@/&5803, -0"%@$"$)&@0/-: -0"%@%&'"6-5 -0"%@/0@$"$)& 6TFDBDIFESFTPVSDFTXIFOUIFZBSFBWBJMBCMF FWFOJGUIFZIBWFFYQJSFE %POUVTFUIFOFUXPSL MPBEGSPNUIFDBDIF
%FGBVMUDBDIFVTBHFNPEF %POUVTFUIFDBDIF MPBEGSPNUIFOFUXPSL (JUIVCীࢲસસೞӝ ޙઁ8FC7JFX$BDIFࢸ
ޙઁ8FC7JFX$BDIFߑधࢸ 18"ܳਤ೧ࢲח நद৬֎ਕܳࢎਊೞחࢸਸࢎਊ೮যঠ೮ -0"%@$"$)&@&-4&@/&5803, -0"%@$"$)&@0/-: -0"%@/0@$"$)& 6TFDBDIFESFTPVSDFTXIFOUIFZBSFBWBJMBCMF FWFOJGUIFZIBWFFYQJSFE %POUVTFUIFOFUXPSL MPBEGSPNUIFDBDIF
%POUVTFUIFDBDIF MPBEGSPNUIFOFUXPSL 18"҃ (JUIVCীࢲસસೞӝ -0"%@%&'"6-5 %FGBVMUDBDIFVTBHFNPEF
ࣁߣ૩҃tઁٚநदࢎਊೞӝu
18"҃ ઁٚநदࢎਊೞӝ tয়য়நयߑधࢸਸ߄Բפөػu tӔؘޥо࢚ೠؘ u tفߣ૩ಕࠗఠࡅܰѱڰ֎ u
दೠߣ࢚ӝೞחݾח ಕ ಕ दр ࡅܴ ࡅܴ ಕо֎౭࠳ۢ ࡅܰѱࠁৈ 18"҃
ઁٚநदࢎਊೞӝ
पಁ 18"҃ ઁٚநदࢎਊೞӝ tয়য়நयߑधࢸਸ߄Բפөػu tӔؘޥо࢚ೠؘ u tفߣ૩ಕࠗఠࡅܰѱڰ֎ u
पಁ ۚੋநयߑधਸࢎਊೡਃо 18"҃ ઁٚநएࢎਊೞӝ tয়য়நयߑधࢸਸ߄Բפөػu tӔؘޥо࢚ೠؘ u tفߣ૩ಕࠗఠࡅܰѱڰ֎ u
ӝ അप A A A A ಕо ী۽٬ೠࠗఠ۽٬হ ࡅܰѱڲ दр
दр וܿ ࡅܴ ࡅܴ ࡅܴ ಕо֎౭࠳ۢ ࡅܰѱࠁৈ 18"҃ ઁٚநएࢎਊೞӝ
וܿ ࡅܴ ࢜۽ ߉ই১ நद 18"҃ ઁٚநएࢎਊೞӝ
וܿ ࡅܴ நद 18"҃ ઁٚநएࢎਊೞӝ
18"҃ וܿ ࡅܴ ࠗఠࡅܰѱڰѱ೧۰ݶযڌѱ೧ঠೞ ઁٚநएࢎਊೞӝ
18"҃ ࡅܴ ࡅܴ খীࢲநयೞҊӒѦਊೞ ઁٚநएࢎਊೞӝ
18"҃ ࡅܴ ࡅܴ ۄ நद ܻ நद ઁٚநएࢎਊೞӝ
18"҃ A ۞ೠ நय ߑध ؋࠙ী ৈ۞ ಕۄب ࡅܰѱ
ڸযח Ѫ оמ! B C ઁٚநएࢎਊೞӝ
֎ߣ૩҃t߹بநदҙܻসu
18"҃ tநदоসؘغঋਵݶয u tӒېبநदܳઁೡࣻѱՔٜ݅ݶજਸѪэؘu tநदઁח࢚҃8FC7JFXDMFBS$BDIF j ۽উؼѪэؘ u ߹بநएҙܻস
18"҃ ઁоউؽ ߹بநएҙܻস tநदоসؘغঋਵݶয u tӒېبநदܳઁೡࣻѱՔٜ݅ݶજਸѪэؘu tநदઁח࢚҃8FC7JFXDMFBS$BDIF j ۽উؼѪэؘ
u
18"҃ েjநदߑधࢸਢ࠭ٮۄоݶࢲਢ࠭ݫࣗ٘ח৵উغ ߹بநएҙܻস ઁоউؽ tநदоসؘغঋਵݶয u tӒېبநदܳઁೡࣻѱՔٜ݅ݶજਸѪэؘu tநदઁח࢚҃8FC7JFXDMFBS$BDIF
j ۽উؼѪэؘ u
18"҃ েjநदߑधࢸਢ࠭ٮۄоݶࢲਢ࠭ݫࣗ٘ח৵উغ நदীೠ࠙ࢳਃ೮ ߹بநएҙܻস ઁоউؽ tநदоসؘغঋਵݶয u tӒېبநदܳઁೡࣻѱՔٜ݅ݶજਸѪэؘu
tநदઁח࢚҃8FC7JFXDMFBS$BDIF j ۽উؼѪэؘ u
18"҃ 8FC7JFX WebView WebKit Chrome Network Stack ߹بநएҙܻস
18"҃ 8FC7JFX WebView WebKit Chrome Network Stack Ӓ۰ח ాनೞח
ਢ࠭ ߹بநएҙܻস
18"҃ 8FC7JFX WebView WebKit Chrome Network Stack .FNPSZ$BDIF %JTL$BDIF
$PACKAGE_DIRECTORY/cache/org.chromium.android_webview ߹بநएҙܻস
18"҃ WebView WebKit Chrome Network Stack .FNPSZ$BDIF Service Worker
%JTL$BDIF $PACKAGE_DIRECTORY/cache/org.chromium.android_webview 4FSWJDF8PSLFS$BDIF 8FC7JFX 18" 4FSWJDF8PSLFS $PACKAGE_DIRECTORY/app_webview/Service Worker/CacheStorage ߹بநएҙܻস
18"҃ WebView WebKit Chrome Network Stack .FNPSZ$BDIF Service Worker
%JTL$BDIF $PACKAGE_DIRECTORY/cache/org.chromium.android_webview 4FSWJDF8PSLFS$BDIF $PACKAGE_DIRECTORY/app_webview/Service Worker/CacheStorage पઁ WebView.clearCache(…) ழߡܻ 8FC7JFX 18" 4FSWJDF8PSLFS ߹بநएҙܻস
18"҃ WebView WebKit Chrome Network Stack .FNPSZ$BDIF Service Worker
%JTL$BDIF $PACKAGE_DIRECTORY/cache/org.chromium.android_webview 4FSWJDF8PSLFS$BDIF $PACKAGE_DIRECTORY/app_webview/Service Worker/CacheStorage 18"நदઁܳਤ೧ࢶ ߹بসਃ पઁ WebView.clearCache(…) ழߡܻ 8FC7JFX 18" 4FSWJDF8PSLFS ߹بநएҙܻস
18"҃ 18"4FSWJDF8PSLFS$BDIFઁ private void removeServiceWorkerCache() { File cacheStorage =
new File(getCacheDir() + "/../app_webview/Service Worker/CacheStorage"); clearFolder(cacheStorage); } private void clearFolder(File folder) { if (folder != null) { if (folder.isDirectory()) { File files[] = folder.listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].delete()) { GlobalUtil.debug("app_serviceworker", files[i].getName() + “ ઁ ࢿҕ!”); } else { GlobalUtil.debug("app_serviceworker", files[i].getName() + " ઁ पಁ ƕƕ"); } } } } } } ߹بநएҙܻস
ࢽߣ૩҃tੜزೞחഛੋೞӝu
18"҃ tੜجইоחѪэؘju tে u tࢲ࠺झਕழநदоੜزೞחযڌѱঌ u ੜزೞחഛੋೞӝ
18"҃ 8FC7JFXਗѺ٣ߡӦ tੜجইоחѪэؘju tে u tࢲ࠺झਕழநदоੜزೞחযڌѱঌ u ੜزೞחഛੋೞӝ
%FCVHHFS ਢ࠭ীࢲࠁחಕܳ٣ߡӦೡࣻҊ ܻࣗझоযוࣗझীࢲৡѤഛੋоמ WebView.setWebContentsDebuggingEnabled(true);
۞ೠੌ۲ٜ҃ਸѻҊ
ಕ ಕ दр ࡅܴ ࡅܴ நएҙܻب ػ ѾҴࢿҕ ಕо֎౭࠳ۢ ࡅܰѱࠁৈ
ҕࣻহ
ࢸറप೯ וܽੋఠ֔ /FUXPSL5ZQF &%(& ਊ ਊറ
ਊറ ਊ ࢸറप೯ ؊וܽੋఠ֔ /FUXPSL5ZQF (4.
18"ী೧ۧѱוԕणפ
18"৬ೞ࠳ܻ٘জীࢲח 1SPT ࣘبоѐࢶؽ நदҙܻоמ ӝઓೞ࠳ܻ٘ਢ࠭ীҕࣻহਊоמ $POT
J04ਢ࠭ীࢲח4FSWJDF8PSLFSܳਗೞঋ ইܐо݆ঋ
Ѿۿ ೠػदр ੋܻࣗझ જࢎਊ҃ࢶ ӓੋਢ࠭بੑ 18"ب જࢶఖؼࣻ
5)"/,4 ߅ࢳ ޖо҅ࣘߓҊरউ٘۽٘ѐߊ ਬ ࢜۽Ѧदب೧ࠁҊरਢѐߊ !NJOTFPLLS !UJOZKJO JBNNJOTFPLQBSL!HNBJMDPN CBSBN!HNBJMDPN
IUUQTXMTENMCMPHNF IUUQTNJOTFPLLSHJUIVCJP