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
A journey to smaller apk size
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Dmytro Khmelenko
March 07, 2018
Technology
75
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A journey to smaller apk size
Dmytro Khmelenko
March 07, 2018
More Decks by Dmytro Khmelenko
See All by Dmytro Khmelenko
Securing High-Risk Django Applications: Lessons from the Payment Domain
dkhmelenko
0
41
Securing Python Web Applications
dkhmelenko
0
41
Best of login experience
dkhmelenko
0
120
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
130
Red or Green? Let us test
dkhmelenko
0
51
A journey to smaller APK size
dkhmelenko
1
130
How Git helps us with localization
dkhmelenko
0
110
Dagger.Android module
dkhmelenko
0
78
MVVM vs. MVP
dkhmelenko
0
59
Other Decks in Technology
See All in Technology
世界、断片、モデル。そして理解
ardbeg1958
1
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.5k
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
300
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
430
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
430
複数プロダクトで進めるAI機能実装 ── 実践から得たリアルな学びとロードマップ実現への挑戦 / AICon2026_yanari
rakus_dev
0
140
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
1k
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
830
Type-safe IaC for Dart
coborinai
0
160
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
290
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
860
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
990
Faster Mobile Websites
deanohume
310
32k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
First, design no harm
axbom
PRO
2
1.2k
Between Models and Reality
mayunak
4
370
Building Adaptive Systems
keathley
44
3.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Transcript
A JOURNEY TO SMALLER APK SIZE Dmytro Khmelenko Software Engineer
7 March 2018
ONCE UPON A TIME… Release APK size is 63 MB
2
ONCE UPON A TIME… Release APK size is 63 MB
3
4 ANALYZE APK
ANALYZE APK 5
RESOURCES OPTIMIZATION 6 ✅ Shrink video files (- 10 MB)
7 Overall bit rate : 3 235 kb/s Bits/(Pixel*Frame) :
0.549 Stream size : 4.77 MiB (94%) File size : 5.3 MB Overall bit rate : 735 kb/s Bits/(Pixel*Frame) : 0.108 Stream size : 963 KiB (81%) File size: : 1.2 MB
RESOURCES OPTIMIZATION 8 ✅ Shrink video files (- 10 MB)
✅ Shrink audio files (- 4 MB)
AUDIO FILES 9 Before: Bit rate : 256 kb/s Channel(s)
: 2 channels Sampling rate : 44.1 kHz File size : 56.4 KB After: Bit rate : 32.0 kb/s Channel(s) : 1 channel Sampling rate : 16.0 kHz File size : 13.7 KB
RESOURCES OPTIMIZATION ✅ Shrink video files (- 10 MB) ✅
Shrink audio files (- 4 MB) ✅ Shrink and optimize drawables (- 25 MB) 10
11 525 KB, .png 75 KB, .jpg
DRAWABLES OPTIMIZATION ✅ Remove unused drawables (Lint, ProGuard) ✅ Support
only hdpi, xhdpi and xxhdpi ✅ Use .jpeg, when possible ✅ Use .webp instead of .png 12
DRAWABLES SIZE hdpi ~ 50 KB xhdpi ~ 100 KB
xxhdpi ~ 150 KB 13
TIME TO REVIEW 14
TIME TO REVIEW 15
LEARNINGS Pay attention to resources Collaborate with designers 16
MEANWHILE 17
WE NEED TO STOP IT 18
IT WORKS 19
FURTHER STEPS • Multiple APK split by screen density •
Multiple APK split by CPU architecture • Automatically check size for every new file 20
RESOURCES • https://developer.android.com/topic/performance/reduce-apk-size.html • https://developer.android.com/google/play/publishing/multiple-apks.html • https://gist.github.com/dkhmelenko/d74dbc6c9907c7a581bde0e1bee5c74b 21
QUESTIONS? @dkhmelenko