SlideShare a Scribd company logo
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
구글 코리아 | 양찬석
나누고 쪼개지는 안드로이드
Home screen widgets
Soft keyboards
Speech recognition
Live folders
Live Folder!
OPEN 모든 앱은 동일하다.
앱의 경계를 넘어.. 빠르고 쉬운 앱 개발
Linux Kernel
Libraries
Application Framework
Applications
Android
Runtime
Android Architecture in 2010
자원 관리,
보안
넓은 개발자
생태계
1.Application Process
Multitasking the Android Way in 2010
“Application switching on a mobile device is
extremely critical.”
“This is especially important when the user is
switching between a few applications, such as
switching to look at a new SMS message while
watching a video, and then returning to that
video.”
written by Dianne Hackborn, 28 April 2010
Multitasking the Android Way in 2010
사용자가 앱을 종료할 필요가 없음
메모리 사용량을 최소화
앱 실행 및 다른 앱으로 전환이 빨라야함
선탑재되는 앱과 동일한 수준의 API 제공
written by Dianne Hackborn, 28 April 2010
빠른 앱 전환 vs 한정된 메모리
App #1 App #2 App #3 App #N...
System Services (Managers…)
App #1 App #2 App #3 App #N...
System Services (Managers…)
process process process process
multiple process
App #1 App #2 App #3 App #N...
System Services (Managers…)
Foreground Service Background Cached
process process process process
multiple process
App #1 App #2 App #3 App #N...
System Services (Managers…)
Foreground Service Background Cached
process process process process
multiple process
Low Memory
Binder = 아주 빠른 IPC
Dalvik, ART = 메모리 효율적인 런타임
Zygote = 아주 빠른 프로세스 생성
2. Application Components
Android Application
?App #1
process
Application Components?
Activity
Service
Receiver
Content Provider
Process
View
Fragment
Thread
Process
View
Fragment
Thread
Application Components?
Activity
Service
Receiver
Content Provider
Application Components?
Activity
Service
Receiver
Content Provider
= Entry Point
앱을 시작하는 4가지 방법
사용자에게 UI를 제공
백그라운드에서 작업을 수행
특정 이벤트에 반응
데이터를 제공
Android Manifest
“A manifesto is a
published declaration of
the intentions, motives, or
views of the issuer”
-from wikipedia-
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
to be continued; DOZE and Background Limitation
3. Framework
AOSP
Android Open Source Project
24,000
다양한 디바이스
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
호환성
지옥
Linux Kernel
Libraries
Application Framework
Applications
Android
Runtime
BIG BLACK BOX
안드로이드 호환성
Linux Kernel
Libraries
Application Framework
Applications
Android
Runtime
BIG BLACK BOX
CDD = Compatibility Definition
Document
CTS = Compatibility Test Suite
Platform APIs
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
MAY
your
s
X
플랫폼 버전 업데이트가 너무 느리다
안드로이드 디저트 베이커리
Project Treble
Libraries
Application Framework
Applications
BIG BLACK BOX
Project Treble
Libraries
Application Framework
Applications
BIG BLACK BOX
Vender
Implementation
Android OS
Framework
Vender Interface
+ VTS
Before After
안드로이드 디저트 베이커리
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
긴급한 업데이트가 필요하면?
Project Mainline
Libraries
Application Framework
Applications
BIG BLACK BOX
Vender
Implementation
Android OS
Framework
Project Mainline
Libraries
Application Framework
Applications
BIG BLACK BOX
Vender
Implementation
Android OS
Framework
똑같은 코드인데 기기마다 동작이 다르면?
System Services
(Managers…)
App #1
Platform APIs
왜 다르지?
System Services
(Managers…)
App #1
framework.jar
Platform APIs디바이스마다 다를 수 있음
왜 다르지?
Jetpack
System Services
(Managers…)
App #1
framework.jar
Platform APIs디바이스마다 다를 수 있음
Jetpack
Jetpack Library
앱에 포함됨
4. APK
폰 + 태블릿 + TV + 오토 + 웨어
ARM + ARM64 + X86 + X86_64
mdpi + hdpi + xhdpi + xxhdpi + xxxhdpi
en, ko, ja, fr, de, zh...
SUPER APK
>> APK 용량 증가
앱 번들 업로드
Split APK
Split APK
Split APK
최적화 된
APK 다운로드
Split APK
Google Play에서
재포장
다이나믹 딜리버리
다이나믹 딜리버리
apk1
apk1
apk3
APP
APK Splits
Base
xxxhdpi
xxhdpi
xhdpi
hdpi
mdpi
ldpi
x86_64 arm64
x86 arm
ptfr
en
de
zh
Pixel 2XL
다이나믹 딜리버리
ko
ja
Base
xxxhdpi
arm64
ja
Pixel 2XL
다이나믹 딜리버리
ko
나누고 쪼개지는 안드로이드
Process
Application Component
Project Treble
Project Mainline
Jetpack
Dynamic Delivery
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드

More Related Content

PDF
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
PDF
이클립스 플랫폼
PDF
Dev team chronicles
PDF
그루비 소개 발표자료 - 김연수
PDF
스프링 프로젝트 시작하기
PDF
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
PDF
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
PDF
gradle로 안드로이드 앱 빌드하기
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
이클립스 플랫폼
Dev team chronicles
그루비 소개 발표자료 - 김연수
스프링 프로젝트 시작하기
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
gradle로 안드로이드 앱 빌드하기

What's hot (16)

PDF
Welcome to Android Studio
ODP
무식하게 배우는 gradle
PDF
그레이들(Gradle)로 만드는 안드로이드 요리법
PDF
그루비로 안드로이드 앱 개발하기
PPTX
안드로이드를 위한 Gradle 맛들이기
PPTX
Modern Android App Development
PDF
About Programmer 2021
PDF
Golang+on+analytics+and+blockchain
PDF
20130709 gradle
DOCX
Gradle guide
PDF
ant로 안드로이드 앱을 자동으로 빌드하자
PDF
개알못의 오픈소스이야기 - 이상준님
PDF
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
PPTX
[133]awair 케빈조
PDF
커뮤니티와 함께한 예비개발자 성장기- 조성수님
PDF
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
Welcome to Android Studio
무식하게 배우는 gradle
그레이들(Gradle)로 만드는 안드로이드 요리법
그루비로 안드로이드 앱 개발하기
안드로이드를 위한 Gradle 맛들이기
Modern Android App Development
About Programmer 2021
Golang+on+analytics+and+blockchain
20130709 gradle
Gradle guide
ant로 안드로이드 앱을 자동으로 빌드하자
개알못의 오픈소스이야기 - 이상준님
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
[133]awair 케빈조
커뮤니티와 함께한 예비개발자 성장기- 조성수님
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
Ad

Similar to [TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드 (20)

PPT
Android발표자료 홍종진
PPT
Introducing Fragments
PDF
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
PDF
구글의 안드로이드(Android) 개요 및 전망[Iita][1]
 
PDF
Google “Android” 동향
PDF
201007 구글 안드로이드 현황 분석
PPTX
안드로이드 오픈소스 어플리케이션 블록
PPT
조재완
PDF
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
PPTX
04 안드로이드 응용프로그램의 구조
PDF
Android 성능 지표와 Oreo 의 개선사항
PDF
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
PDF
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
PPT
Designing Apps for Motorla Xoom Tablet
PDF
초보 개발자/학생들을 위한 오픈소스 트랜드
PDF
Modern android
PDF
안드로이드 운영체제 동향 및 시사점
PDF
임베디드 시스템과 안드로이드의 미래
PDF
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_4차_안드로이드_홍성훈_20120605
PPTX
Mobile architecture overview
Android발표자료 홍종진
Introducing Fragments
[특강] 현업 개발자에게 듣는 모바일 개발자의 삶과 매력 / 노현석(카카오뱅크)
구글의 안드로이드(Android) 개요 및 전망[Iita][1]
 
Google “Android” 동향
201007 구글 안드로이드 현황 분석
안드로이드 오픈소스 어플리케이션 블록
조재완
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
04 안드로이드 응용프로그램의 구조
Android 성능 지표와 Oreo 의 개선사항
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
Designing Apps for Motorla Xoom Tablet
초보 개발자/학생들을 위한 오픈소스 트랜드
Modern android
안드로이드 운영체제 동향 및 시사점
임베디드 시스템과 안드로이드의 미래
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_4차_안드로이드_홍성훈_20120605
Mobile architecture overview
Ad

More from NAVER Engineering (20)

PDF
React vac pattern
PDF
디자인 시스템에 직방 ZUIX
PDF
진화하는 디자인 시스템(걸음마 편)
PDF
서비스 운영을 위한 디자인시스템 프로젝트
PDF
BPL(Banksalad Product Language) 무야호
PDF
이번 생에 디자인 시스템은 처음이라
PDF
날고 있는 여러 비행기 넘나 들며 정비하기
PDF
쏘카프레임 구축 배경과 과정
PDF
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
PDF
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
PDF
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
PDF
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
PDF
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
PDF
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
PDF
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
PDF
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
PDF
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
PDF
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
PDF
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
PDF
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
React vac pattern
디자인 시스템에 직방 ZUIX
진화하는 디자인 시스템(걸음마 편)
서비스 운영을 위한 디자인시스템 프로젝트
BPL(Banksalad Product Language) 무야호
이번 생에 디자인 시스템은 처음이라
날고 있는 여러 비행기 넘나 들며 정비하기
쏘카프레임 구축 배경과 과정
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기

[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드