Page 1
Taking the Ks off your APKs
19MB 7.5MB
Page 2
Hello!I am Rotem Mizrachi MeidanAndroid Infra @EverythingMe
@rotemmiz
Page 3
EverythingMeLauncherOne tap access to everything you need - people, apps & content.
Internal SDKs- contextual engine- discovery engine
In active development for 2+ years
Page 4
We weren’t paying attention
Page 5
Wake up!
▷ Features added▷ 10+ devs, 1 cup▷ Native libs and code▷ 450,459 lines of code (~)
Page 6
Facing Reality 19MB
Page 7
19MB is TOO MUCH for any app
Especially one that grows globally -data plans, slow network, etc..
Reality
Page 9
19
18
Time
18
15
14 1413
Universal size 19 to 13
MB
Page 10
19
18
15
1110
87.5
Time
User-facing size 19 to 7.5
MB
Page 11
19
18
15
1110
87.5
Time
MB
Starting point
Page 12
19
18
15
1110
87.5
Time
MB
Proguard
Page 16
19
15
1110
87.5
Time
MB
Split by CPU arch. (native code split)18
Page 17
Native code split
Page 18
19
1110
87.5
Time
MB
Remove native lib (realm)18
15
Page 19
Should I use native libs ?
●●
Page 20
Seeking a solution
Page 21
DB gets/puts Benchmark
Page 22
DB gets/puts Benchmark
Page 23
DB gets/puts Benchmark (HTC One M7)
get put
Page 24
19
108
7.5
Time
MB
18
15
11
Page 26
19
87.5
Time
MB
Split by density /form factor
18
15
1110
Page 28
Splits:revisited20 phone APKs
20 tablet APKs
Google Play Developer Console
Page 29
19
7.5
Time
MB
PNGQuant
18
15
1110
8
Page 30
PNGQuant
https://pngquant.org/
Page 31
Can’t improve what you can’t measure
Page 32
Metrics with redash
Page 33
Thanks!We’re HIRING!
[email protected] @everything.me
Android DevelopersAutomation Developers