Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Best Practices 
to Slim Down Your App Size

Best Practices 
to Slim Down Your App Size

# About me
- Twitter
- https://twitter.com/shihochandesu

- Github
- https://github.com/shihochan

# Links
- What's new in Android Development Tools + Google Play
- https://goo.gl/lV4o2s

- What's new in Android Development Tools
- https://goo.gl/ekrV3L

- What's new in Android at I/O '17
- https://goo.gl/5eZKRX

- Best Practices to Slim Down Your App Size
- https://goo.gl/St88vS

- What's New in Google Play
- https://goo.gl/69Rp7E

Yuki Shiho

June 16, 2017
Tweet

More Decks by Yuki Shiho

Other Decks in Programming

Transcript

  1. :VLJ4IJIP
    !TIJIPDIBO
    #FTU1SBDUJDFT

    UP4MJN%PXO:PVS"QQ4J[F
    VNFEBBQLJO

    View Slide

  2. "CPVUNF
    䘊歂⣇秀:6,*4)*)0
    !TIJIPDIBO
    "OESPJE"QQ%FWFMPQFSBU$ZCFS"HFOU *OD
    !TIJIPDIBOEFTV
    4IJCVZBBQL

    View Slide

  3. .PCJMFSTUUP"*STU

    View Slide

  4. .Z*0ˏ
    㸜㹀ך衅鼅

    View Slide

  5. .Z*0ˏ
    䗁崞

    View Slide

  6. (PPHMF*0

    View Slide

  7. (PPHMF*OQVU0VUQVU

    View Slide

  8. .Z*0ˏ
    ׃קˏT*OQVU
    ˖ (PPHMF,FZOPUF
    ˖ %FWFMPQFS,FZOPUF
    ˖ 8IBUT/FXJO"OESPJE
    ˖ "OESPJE1FSGPSNBODF"O0WFSWJFX
    ˖ &YP1MBZFS'MFYJCMFNFEJBQMBZCBDLGPS"OESPJE
    ˖ #FTU1SBDUJDFTUPTMJNEPXOZPVSBQQTJ[F
    ˖ 'SBHNFOU5SJDLT
    ˖ 8IBUT/FXJO"OESPJE%FWFMPQNFOU5PPMT
    ˖ *OUSPEVDUJPOUP"OESPJE*OTUBOU"QQT
    ˖ 8IBUTOFXJO"OESPJE4FDVSJUZ
    ˖ 8IBUTOFXJO"OESPJE%FTJHO5PPMT/FXGFBUVSFTBOE
    UPPMTGPSSBQJE6*EFWFMPQNFOU
    ˖ 8IBUTOFXJO/PUJDBUJPOT -BVODIFS*DPOTBOE4IPSUDVUT
    ˖ 4QFFEJOHVQZPVS"OESPJE(SBEMFCVJMET
    ˖ 1FSGPSNBODFBOE.FNPSZ*NQSPWFNFOUTJO"OESPJE3VO
    5JNF "35

    "OE.03&٥٥٥

    View Slide

  9. .Z*0ˏ
    ׃קˏT0VUQVU
    ˖ (PPHMF*0䮶׶鵤׶BU"11%0+0
    ˖ IUUQTHPPHM8NW/0
    ˖ $"BQL(PPHMF*0㜠デ⠓
    ˖ IUUQTHPPHMH6TNH
    ˖ (PPHMF*0ؿ؍٦سغحؙ⠓
    ˖ IUUQTHPPHMU3#8:$
    ˖ VNFEBBQL3FQPSUGSPN(PPHMF*0
    ˖ /PX

    View Slide

  10. 4MJN%PXO"QQ4J[F

    View Slide

  11. %PXOMPBE4J[F*OTUBMMFE4J[F

    View Slide

  12. ˑ"1,TJ[FJT

    TVQFSJNQPSUBOU˒
    "HVTUJO'POUT

    View Slide

  13. 8IZJNQPSUBOU

    View Slide

  14. 6QUPEPXOMPBEDBODFMMBUJPOSBUFT
    4PVSDF(PPHMF*OUFSOBM%BUB

    View Slide

  15. .#BQQTYNPSFMJLFMZUPHFUVOJOTUBMMFE
    4PVSDF(PPHMF*OUFSOBM%BUB

    View Slide

  16. )PXUPTMJNEPXO

    View Slide

  17. :PVS.JMFBHF.BZ7BSZ
    "ODJFOU%FWFMPQFS1SPWFSCT

    View Slide

  18. ˟⸬卓חכ

    խ⦐➂䊴ָ֮׶תׅ
    ݹΑΓ఻ΘΔΤϯδχΞ͜ͱΘ͟

    View Slide

  19. XBZUPTMJNEPXO
    ˖ $VTUPNJ[JOHCVJMEHSBEMF
    ˖ "OESPJE4UVEJP
    ˖ 1MBZ$POTPMF

    View Slide

  20. $VTUPNJ[JOHCVJMEHSBEMF
    android {
    buildTypes {
    release {
    minifyEnabled true
    }
    }
    }
    6TF1SPHVBSE

    View Slide

  21. $VTUPNJ[JOHCVJMEHSBEMF
    android {
    buildTypes {
    release {
    minifyEnabled true
    shrinkResources true
    }
    }
    }
    &OBCMF3FTPVSDF4ISJOLJOH

    View Slide

  22. $VTUPNJ[JOHCVJMEHSBEMF
    android {
    splits {
    density {
    enable true
    }
    }
    }
    #VJME.VMUJQMF"1,T

    View Slide

  23. $VTUPNJ[JOHCVJMEHSBEMF
    android {
    defaultConfig {
    vectorDrawables.useSupportLibrary true
    }
    }
    6TF7FDUPS%SBXBCMFT

    View Slide

  24. $VTUPNJ[JOHCVJMEHSBEMF
    android {
    defaultConfig {
    resConfigs en
    }
    }
    &YDMVEF4QBSTF5SBOTMBUJPOT

    View Slide

  25. .#MFTTUIBO.#
    $VTUPNJ[JOHCVJMEHSBEMF

    View Slide

  26. "OESPJE4UVEJP
    %PXOMPBEBCMF'POUT4VQQPSU

    View Slide

  27. ˖ ""15 "OESPJE"TTFU1BDLBHJOH5PPM

    ˖ 7FSTJPODPMMBQTJOH
    ˖ 3FTPVSDFEFEVQMJDBUJPO
    ˖ 65'FWFSZXIFSF
    ˖ 4NBSUFSDSVODIFS
    "OESPJE4UVEJP

    View Slide

  28. android.enableAapt2=true
    5SZ""15OPX
    gradle.properties
    "OESPJE4UVEJP

    View Slide

  29. ˖ "1,"OBMZ[FS
    "OESPJE4UVEJP

    View Slide

  30. ˖ "1,"OBMZ[FS
    ˖ *OTUBOU"QQTך׋׭ח刿חꅾ銲ח
    ˖ 1SP(VBSEך.BQQJOHؿ؋؎ٕ㼎䘔
    "OESPJE4UVEJP

    View Slide

  31. 1MBZ$POTPMF
    ˖ 'JMFCZ'JMFQBUDIJOH
    ˖ (PPHMF1MBZ"QQ4JHOJOH
    ˖ "QQ0QUJNJ[BUJPOT
    ˖ "VUPNVMUJQMF"1,

    View Slide

  32. 1MBZ$POTPMF
    'JMFCZ'JMFQBUDIJOH
    4PVSDF(PPHMF*OUFSOBM%BUB

    View Slide

  33. 3FGFSFODFT
    ˖ #FTU1SBDUJDFTUP4MJN%PXO:PVS"QQ4J[F
    ˖ IUUQTHPPHMC[;(C9

    View Slide

  34. :VLJ4IJIP
    !TIJIPDIBO
    5IBOLZPV
    4FFZPVOFYU*0ˏ
    VNFEBBQLJO

    View Slide