SlideShare a Scribd company logo
1 of 35
Download to read offline
ㅍ
Extended
Seoul
신호석
Playwings Lead Developer
Shin Hosuk / Eric
Application 용량 줄이기
플레이윙즈 실적용을 중심으로
TideSquare 16.12 ~
YelloTravel 15.06 ~ 16.11
Fridaynoons 14.06 ~ 15.06
신호석 shs@playwings.co.kr
Playwings Lead Developer
Extended
Seoul
여러분의 application 용량은 얼마인가요?
지금 노트북과 스마트폰을 이용해 확인해보아요
Extended
Seoul
Extended
Seoul
Installed Size
Download
Size
Extended
Seoul
플레이스토어에 올라간 용량만 믿지 마세요
Download Size < Installed Size
평균 용량보다 높다는 것은 사용자가 취소하기 쉽다는 것
참조 : https://sweetpricing.com/blog/2017/02/average-app-file-size/
Extended
Seoul
iOSAndroid
10
20
30
40
12MB
34MB
File Size - All time
23MB
그래서 우리는 앱 용량을 줄여야합니다
서비스를 쓰기도 전에 포기하게 해서는 안되잖아요
Extended
Seoul
플레이윙즈는 항공권 특가 알림 서비스입니다
하고 싶은 것들이 엄청 많아요
Extended
Seoul
Jazz, Concrete jungle, Shake Shack. 뉴욕 얼마에 다녀오셨나요?
뉴욕 왕복 80만원, 이런 기회를 잡아주는 것이 플레이윙즈입니다
Extended
Seoul
Android Studio에는 앱을 분석할 수 있는 tool이 있습니다
지피지기 백전백승
Extended
Seoul
Extended
Seoul
analyze apk에는 다양한 기능들이 있습니다
1 ) application 용량 분석
2) AndroidManifest 분석
3) 다른 application 과의 비교
…
Extended
Seoul
Extended
Seoul
Android Studio 3.0 기능, Load Proguard mappings
application 이 얼마나 Proguard로 난독화가 되었는지 확인할 수 있습니다
플레이윙즈 3.4 버전의 앱 용량은 다음과 같습니다
다이어트가 필요하군요
Extended
Seoul
res
lib
.dex
.arsc etc
res 53.1%
lib 24.3%
.dex 21.5%
.arsc 0.8%
etc 0.3%
file size 20.8MB
53.1%
24.3%
21.5%
0.8% 0.3%
- optimize codes (코드 최적화)
- obfuscate codes (코드 난독화)
Free Java Class File Shrinker,
optimizer, obfuscation and pre verifier
Extended
Seoul
1. Proguard
MainActivity UtilClass1
UtilClass2
UtilClass3 UtilClass4
Live
codes
Dead
Codes
1-1. dead code elimination
Extended
Seoul
android {
buildTypes {
release {
minifyEnabled true
}
}
}
Extended
Seoul
Extended
Seoul
20.8MB 20MB
-0.8MB
MainActivity UtilClass1
UtilClass2
UtilClass3 UtilClass4
Live
codes
Dead
Codes
R.drawable.i
c_image_1
R.drawable.i
c_image_2
R.drawable.i
c_image_3
1-2. resources shrinking
Extended
Seoul
android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
}
}
}
Extended
Seoul
Extended
Seoul
20MB 20MB
-8KB
2. vector drawables
Vector Drawable is a vector graphic defined in a XML file
as a set of points, lines and curves along
with its associated color information.
Extended
Seoul
Extended
Seoul
android {
defaultConfig {
vectorDrawables.useSupportLibarary
= true
}
}
Extended
Seoul
<ImageView
android:id="@+id/email_login_logo"
android:layout_width=“wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/tuto_logo_icon" />
Extended
Seoul
20MB 17.9MB
-2.2MB
주의 : vector image 200 x 200 dp 이상은 png를 활용하는 것이 연산 작업이 낫습니다
Extended
Seoul
Vector Drawable이 힘든 상황이라면?
기존 PNG 파일을 색의 가지수를 줄여보자 / Google “reduce PNG file size”
참조 : https://tinypng.com/
Extended
Seoul
Android Studio 3.0 기능, WebP converter 사용
언제나 준비가 되어있는 여러분들의 친구, Android Studio!
3. exclude space translation
application 번역에는 ‘구멍’이 존재한다
이를 압축시켜 막아주는 것이 exclude space translation이다
Extended
Seoul
android {
defaultConfig {
resConfigs “en”
}
}
Extended
Seoul
Extended
Seoul
17.9MB
-0.5MB
17.4MB
4. set specific circumstance
지원하지 않는 해상도 및 환경을 지원하는 것 또한 자원 낭비다
지원하는 환경만 선택하는 것이 set specific circumstance이다
Extended
Seoul
android {
splits {
density {
enable true
}
}
}
Extended
Seoul
5. use downloadable fonts
각각의 앱들에 있던 모든 폰트들을
하나의 저장소에서 관리하게 되다, downloadable fonts
Extended
Seoul
https://github.com/googlesamples/android-DownloadableFonts
Google Font에 있는 모든걸 테스트 해볼 수 있습니다
Extended
Seoul
Extended
Seoul
용량에 대한 단계별 개선 결과는 다음과 같습니다
여러분도 다이어트 가능합니다
-0.8MB
-2.2MB
-0.5MB
-8KB
20.8MB 20MB 20MB 17.9MB 17.4MB
Original Ver
Dead code
elimination
Ressources
shrink
Vector
drawable
exclude space
translation
1. 시간 대비 proguard 설정은 해볼만하다
2. exclude space translation도 해볼만하다
3. vector drawable은 제일 효과가 크다
4. downloadable font도 적용하면 좋지만 아직 기다려야 한다
Extended
Seoul

More Related Content

Similar to Application 용량 줄이기 - 플레이윙즈 실적용을 중심으로

I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebHanboramRobinJang
 
권기훈_개인포트폴리오
권기훈_개인포트폴리오권기훈_개인포트폴리오
권기훈_개인포트폴리오Kihoon4
 
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기NAVER Engineering
 
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수NAVER Engineering
 
100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법SooHwan Ok
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기Yunhwan Na
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용jinwook shin
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteSeok-yong Kim
 
5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹지수 윤
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
반응형 웹 기술 이해 V.2
반응형 웹 기술 이해 V.2반응형 웹 기술 이해 V.2
반응형 웹 기술 이해 V.2Lee Ji Eun
 
경영과 정보기술 - 어플리케이션 디자인 과제
경영과 정보기술 - 어플리케이션 디자인 과제 경영과 정보기술 - 어플리케이션 디자인 과제
경영과 정보기술 - 어플리케이션 디자인 과제 Young Eun Park
 
투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드병수 김
 
1.아이디어 발표
1.아이디어 발표1.아이디어 발표
1.아이디어 발표sanghak lee
 
[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5thPark Jonggun
 
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...Amazon Web Services Korea
 
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)Amazon Web Services Korea
 
[안드앱콘] 1.다양한스크린사이즈
[안드앱콘] 1.다양한스크린사이즈[안드앱콘] 1.다양한스크린사이즈
[안드앱콘] 1.다양한스크린사이즈Neoroid
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기hajaekwon
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie양재동 코드랩
 

Similar to Application 용량 줄이기 - 플레이윙즈 실적용을 중심으로 (20)

I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in Web
 
권기훈_개인포트폴리오
권기훈_개인포트폴리오권기훈_개인포트폴리오
권기훈_개인포트폴리오
 
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
 
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
200819 NAVER TECH CONCERT 01_100만 달러짜리 빠른 앱을 만드는 비법 전수
 
100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법100만 달러짜리 빠른앱 만드는 비법
100만 달러짜리 빠른앱 만드는 비법
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹5주 모바일웹과 반응형웹
5주 모바일웹과 반응형웹
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
반응형 웹 기술 이해 V.2
반응형 웹 기술 이해 V.2반응형 웹 기술 이해 V.2
반응형 웹 기술 이해 V.2
 
경영과 정보기술 - 어플리케이션 디자인 과제
경영과 정보기술 - 어플리케이션 디자인 과제 경영과 정보기술 - 어플리케이션 디자인 과제
경영과 정보기술 - 어플리케이션 디자인 과제
 
투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드투어팁스모바일웹 제작가이드
투어팁스모바일웹 제작가이드
 
1.아이디어 발표
1.아이디어 발표1.아이디어 발표
1.아이디어 발표
 
[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th
 
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...
5G 엣지 컴퓨팅을 AWS에서! Wavelength 5G Edge 서비스 구현 사례 - 온정상 AWS 솔루션즈 아키텍트 / 이랑혁 대표, ...
 
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)
20121015 AWS Meister Reloaded - AWS SDK for Android / iOS (Korean)
 
[안드앱콘] 1.다양한스크린사이즈
[안드앱콘] 1.다양한스크린사이즈[안드앱콘] 1.다양한스크린사이즈
[안드앱콘] 1.다양한스크린사이즈
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 

Application 용량 줄이기 - 플레이윙즈 실적용을 중심으로