37
2/4 Featured Sessions, Kandroid S/W Fundamentals Study Group A History of Android Technology www.kandroid.org 운영자 양정수 ([email protected])

A History of Android Technology · android.support.v8.renderscript Extras ... communicates between processes using a small custom kernel module. ... High Performance Apps Development

Embed Size (px)

Citation preview

2/4 Featured Sessions,

Kandroid S/W Fundamentals Study Group

A History of

Android Technology

www.kandroid.org 운영자

양정수 ([email protected])

목 차

Technology History : Two Approaches

• Source Code and Derivative Works : Git & Gerrit

• Reinterpretation and Standard : Google IO & APIs

Since 2007, The Direction of Evolution

• Platform : Architecture, Measurement f/w, Programming Models

• Application : Compatibility, Performance, Memory

• Convergence : Android & Chrome, Platform & Service, Cross Platform

All History is Contemporary History

• Lesson : What must we learn from last 6 years?

• Forecast : What is the future of Android Technology?

• Action : What must we act as a developer right now?

3 2014, 13th Kandroid minmax - www.kandroid.org

“All history is contemporary history”

History as thought and as action, Benedetto Croce (1938)

gerrit Gerrit Code Review

1. 2008 (May 28–29)

2. 2009 (May 27–28)

3. 2010 (May 19–20)

4. 2011 (May 10–11)

5. 2012 (June 27–29)

6. 2013 (May 15–17)

7. 2014(June 25-26)

Technology History : Two Approaches

4 2014, 13th Kandroid minmax - www.kandroid.org

0

20

40

60

80

100

120

140

160

180

200

Technology History : Git & Gerrit

0

50

100

150

200

250

300

350etc

platform/bootable

platform/device

platform/frameworks

platform/hadware

platform/packages

platform/prebuilts

platform/tools

platform/system

platform/external

307

151

Source : 2012, 10th Kandroid Seminar

Android Externals & Git Technology 中에서 (JB기준)

- 조병호

Total : 416 / External : 194 (KitKat 기준)

5 2014, 13th Kandroid minmax - www.kandroid.org

Google Employees

Framework Commiters

Apps/Extra Commiters

20% time

Google Employees

Google 전체 직원수

37000여명

안드로이드 코드를

한줄이라도 바꿔본 직원 수

600여명

69명

Technology History : Git & Gerrit

68명

Source : 2013, 11th Kandroid Seminar

Gerrit – 코드 리뷰 시스템 도입의 필요성 및 사용 中에서

- 차영호

Code Review System

It is intended to find and fix MISTAKES overlooked.

- Wikipedia

Goal is COOPERATION,

not fault-finding.

from Guido

6 2014, 13th Kandroid minmax - www.kandroid.org

1. 2008 (May 28–29, 2008) : OpenSocial, App Engine, Android…

2. 2009 (May 27–28, 2009) : Android, App Engine, Chrome…

3. 2010 (May 19–20, 2010) : Android, App Engine, Chrome, Google TV…

4. 2011 (May 10–11, 2011) : Android, Chrome, Chrome OS

5. 2012 (June 27–29, 2012)

1. Day 1 : Android, Google+, Project Glass

2. Day 2 : Chrome, Cloud, Project Glass

3. Day 3 : Mobile App Analytics

6. 2013 (May 15–17, 2013)

1. Day 1 : Android, Chrome OS, Chrome, Google Play

2. Day 2 : Google Glass Apps, Google+ Development

Session Types

• 101: 101 sessions don't require previous knowledge of a particular product or technology. They include overviews of a technology and

introductions into new areas. That doesn't mean they aren't technical, because most are. If you are new to a product, start with the 101

sessions and progress to 201s.

• 201: 201 sessions provide a deeper dive into a technology or product. These sessions go beyond the basics and are aimed at developers

already familiar with a technology.

• Code Labs: Code Labs walk developers through their first experience with a product or particular aspect of a product. They are 2 hour,

more hands-on sessions where engineers will walk you through actual code.

• Fireside Chats: Q&A is often the best part of a session, as it gives developers a chance to ask what's on their minds. Fireside chats are a

chance to talk to the product engineering teams.

• Tech Talks: Google has a tradition of holding informative Tech Talks on campus that offer insight into an area. In that tradition, Google I/O

features Tech Talks on subjects of interest to developers, such as computer science problems and programming languages.

Technology History : Google I/O & Standard API

7 2014, 13th Kandroid minmax - www.kandroid.org

SDK

(API Level)

AOSP

Branch

NDK

(Revision)

2010 2012 2014

8 7 6 5 4

2 3 4

D E F G

5

9 10

H I

13

6

14

7

15

8

16 17 18

RenderScript

2011 2013

J

9

2009 2008

C M

1 2 3

1

android.support.v8.renderscript

Extras

Support Lib. (+USB Drivers) r1 r2 r3 r4 r6 r8 r9 r10

android-support-v13.jar

android-support-v4.jar

r18 r13 r11

android-support-v7.jar

Open Handset

Alliance (OHA)

Mobile

Operators

Semiconductor

Companies

Handset

Manufacturers

T-Mobile USA SKT

Qualcomm MSM7201a

HTC G1 Partnership

with Google Inc.

New Platform

Strategy

Multi-Core GPU / 64Bit

Open Access Traffic

K

19

9c

Technology History : Google I/O & Standard API

목 차

Technology History : Two Approaches

• Source Code and Derivative Works : Git & Gerrit

• Reinterpretation and Standard : Google IO & APIs

Since 2007, The Direction of Evolution

• Platform : Architecture, Measurement f/w, Programming Models

• Application : Compatibility, Performance, Memory

• Convergence : Android & Chrome, Platform & Service, Cross Platform

All History is Contemporary History

• Lesson : What must we learn from last 6 years?

• Forecast : What is the future of Android Technology?

• Action : What must we act as a developer right now?

9 2014, 13th Kandroid minmax - www.kandroid.org

Phone & Nfc(JB) App

DRMServer (JB)

MediaServer

Binder

/dev/binder

Service

Manager

( Binder

Context

Manager )

SurfaceFlinger

SystemServer

Dalvik VM

Native Service

• Sersor Service

• Surface Flinger

Framework Service

• System Services

• Hardware Services

Launcher

(User App)

Ashemem

libbinder.so (libcutils.so, libutils.so)

User

Space

Kernel

Space

Platform : Architecture

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

10 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Architecture

Activity

Thread

Hello

Android .apk Activity

Looper

Message

Queue

Service

Receiver

ContentProvider

H

dispatchMessage()

TLS

Threaded

Task

Binder

Object

Android

Manifest.xml Resources

Intent

Application

Instru

me

nta

tion

test.apk

Test

Case

Application

Thread

Binder

Thread

Pool

AsyncTask

Thread

Pool

Choreographer

$FrameHandler

dispatchMessage()

Window

Views Views

Views

11 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Architecture

2001 2005

next generation BeOS Cobalt system Linux Android

OpenBinder Binder

Move Engineers from PalmSource (Dianne Hackborn, etc…)

The Binder communicates between processes using a small custom kernel module.

This is used instead of standard Linux IPC facilities so that we can efficiently model our IPC

operations as "thread migration".

That is, an IPC between processes looks as if the thread instigating the IPC has hopped

over to the destination process to execute the code there, and then hopped back with the

result.

Source :

http://www.angryredplanet.com/~hackbod/openbinder/docs/html/BinderIPCMechanism.html

12 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Architecture

Main Event Loop and IPC Thread Migration

User application Process

Binder

Thread

Activity

Thread

HelloAndroid.apk

Looper

Message

Queue

Service • onCreate()

• onBind()

• onUnbind()

• onDestory()

Custom 구현

IService.stub() {

• getValue()

• setValue()

}

H

handleMessage()

BT #1

BT #N

TLS

User application Process

Context

bindService()

Service

Connection

onService

Connected

(IBinder)

IService.Stub.

Proxy() { }

IService.Stub.

asInterface

(IBinder);

13 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Measurement Framework

Event

Invalidate Adapter

Measurem

ent

Layout

Draw

• getView()

- Dump

- Recycling

- ViewHolder

General Performance

Sensitive Paths

Performance Monitoring

Tools / APIs

• systrace

• TraceView

Update

DisplayList

Draw

DisplayList

Swap

Buffers dumpsys

• HierarchyViewer

• Tracer for OpenGL ES

• Setting App (Dev Opt.)

StrictMode

Bitmap

Decoding

Networking

and I/O

14 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Measurement Framework

adbd

atrace

start

Trace

stop

Trace

dump

Trace

Linux Kernel (ftrace feature)

android.os.Trace ATRACE_CALL()

ATRACE_INT()

ScopedTrace

Tracer

Tracing Point

Java Native

android_os_Trace

jni

trace_marker trace tracing_on …

systrace

(python)

adb

15 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Measurement Framework

Activity

SurfaceFlinger

Event

Set

Property

Value

Invalidate

Measure

&

Layout

Prepare

Draw

Update

DisplayList

Draw

DisplayList

Swap

Buffers

Display

List

Dequeue

Buffer

Composite

Windows

Post

Buffer

Enqueue

Buffer

Something

Happens

Draw

Display

16 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Programming Models

Comparison and Analysis of

the Three Programming Models

in Google Android (2012, Intel)

• What are the Three Programming Models ?

• Working Flow Comparison

• Execution Model Comparison

• Performance Difference and Analysis

• Differences in Development and Deployment

• Conclusion & Unified Programming Model

Source : http://people.apache.org/~xli/papers/applc2012-android-programming-models.pdf

17 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Programming Models

0

10

20

30

40

50

60

70

200 300 400 500 600 700 800 900 1000

SDK

SDK-MT

NDK

NDK-MT

Performance Analysis : Multiple Worker Thread

Source : http://people.apache.org/~xli/papers/applc2012-android-programming-models.pdf

18 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Programming Models

0

10

20

30

40

50

60

70

200 300 400 500 600 700 800 900 1000

SDK-MT

NDK-MT

Renderscript

Performance Analysis : Runtime design diff.

Source : http://people.apache.org/~xli/papers/applc2012-android-programming-models.pdf

19 2014, 13th Kandroid minmax - www.kandroid.org

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Performance

• Memory

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Platform : Programming Models

Class Sub Class SDK NDK RS NDK + RS

Programmability

Memory

Management O X X X

Library

Extensibility O O X O

Portability O △ O O

Security Strong Typing

and Verification O X X X

Performance

Vector Type X △ O O

Thread Pool O △ O O

OpenGLES O O X O

1

2

3

3

1. Is it possible to support vector type without changing the JNI implementation?

2. Why did Google make RS separate from NDK?

3. Are Memory Management and Strong Typing critical issues?

Source : 12th Kandroid Conference High Performance Apps Development with RenderScript

20 2014, 13th Kandroid minmax - www.kandroid.org

Compatibility Program Overview

The Android compatibility program makes it easy for mobile

device manufacturers to develop compatible Android devices.

Program goals

• Provide a consistent application and

hardware environment to application developers.

• Enable a consistent application experience

for consumers.

• Enable device manufacturers to differentiate

while being compatible.

• Minimize costs and overhead associated

with compatibility.

Key components

• The source code to the Android software stack(AOSP Source)

• The Compatibility Definition Document(CDD), representing the "policy" aspect of

compatibility

• The Compatibility Test Suite(CTS), representing the "mechanism" of compatibility

+ Compatibility Test Suite Verifier (CTS Verifier)

Application : Compatibility

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

PDK (Platform Development Kit) is a reduced set of Android release provided

to chipset vendors and OEMs before a new android platform is released.

The goal of the PDK release is to help chipset vendors and OEMs to

migrate to a new release.

21 2014, 13th Kandroid minmax - www.kandroid.org

2010 2012 2014

8 7 6 5 4

2 3 4

D E F G

5

9 10

H I

13

6

14

7

15

8

16 17 18

2011 2013

J

9

2009 2008

C M

1 2 3

1

android.support.v8.renderscript Extras

Support Lib. r1 r2 r3 r4 r6 r8 r9 r10

android-support-v13.jar

android-support-v4.jar

r18 r13 r11

android-support-v7.jar

K

19

9c

Application : Compatibility

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Support Library : Backward-compatibility

22 2014, 13th Kandroid minmax - www.kandroid.org

Application : Memory

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Memory Leak vs. Memory Overload

Java Footprint vs. External Limit

-

5,000

10,000

15,000

20,000

25,000

30,000

35,000

40,000

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91

External

Java Java Footprint

Java curAlloc

23 2014, 13th Kandroid minmax - www.kandroid.org

Application : Memory

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

-

20,000,000

40,000,000

60,000,000

80,000,000

100,000,000

120,000,000

140,000,000

160,000,000

180,000,000

Total

Alloc

Free

NPss

OPss

TextureCount

TextureSize

Historical Analysis for Native and GPU Memory

24 2014, 13th Kandroid minmax - www.kandroid.org

Application : Memory

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

0

10000000

20000000

30000000

40000000

50000000

60000000

LoadBitm

ap[1

]

Bitm

apRecy

cle[1

]

LoadText

ure

[2]

LoadBitm

ap[3

]

Bitm

apRecy

cle[3

]

LoadText

ure

[4]

LoadBitm

ap[5

]

Bitm

apRecy

cle[5

]

LoadText

ure

[6]

LoadBitm

ap[7

]

Bitm

apRecy

cle[7

]

LoadText

ure

[8]

LoadBitm

ap[9

]

Bitm

apRecy

cle[9

]

LoadText

ure

[10]

dra

wFra

me[1

]

dra

wFra

me[3

]

dra

wFra

me[5

]

dra

wFra

me[7

]

dra

wFra

me[9

]

dra

wFra

me[1

]

dra

wFra

me[3

]

Total

Alloc

Free

NPss

OPss

? D/cocos2d-x debug info(697): OpenGL Error 0x0505

Historical Analysis for Cocos2d-x Memory

25 2014, 13th Kandroid minmax - www.kandroid.org

Application : Memory

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

kmemtracer :

https://code.google.com/p/kmemtracer/

Activity

Thread

Hello

Android .apk

Activity

Looper

Message

Queue

Service

Receiver

ContentProvider

H

dispatchMessage()

TLS

Threaded

Task

Binder

Object

Android

Manifest.xml Resources

Intent

Application

Instru

me

nta

tion

test.apk

Test Case

Application

Thread

Binder

Thread Pool

AsyncTask

Thread Pool

Choreographer

$FrameHandler

dispatchMessage()

Window

Views Views

Views

26 2014, 13th Kandroid minmax - www.kandroid.org

Application : Performance

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Event

Invalidate Adapter

Measurem

ent

Layout

Draw

• getView()

- Dump

- Recycling

- ViewHolder

General Performance

Sensitive Paths

Performance Monitoring

Tools / APIs

• systrace

• TraceView

Update

DisplayList

Draw

DisplayList

Swap

Buffers dumpsys

• HierarchyViewer

• Tracer for OpenGL ES

• Setting App (Dev Opt.)

StrictMode

Bitmap

Decoding

Networking

and I/O

27 2014, 13th Kandroid minmax - www.kandroid.org

Application : Performance

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Event

Adapter

View

(Invalidate)

Adapter

Measurement

Layout

Draw

• getView()

Bitmap

Decoding

Network

I/O

Dumb

Recycle

View

Holder

Storage Async

Drawable

A

B

• If an AdapterView has many children,

part A is as important as part B.

• If the AdapterView has few children,

part B becomes a bottleneck.

• Bitmap decoding and Networking

are responsible.

28 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Android & Chrome

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Project Butter vs. Chrome Incognito

29 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Android & Chrome

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

WebKit vs. Chrome

Chromium

Chromium OS

Chromium Chrome browser :

uses multiple processes !

safer

more stable

Separate threads for separate web apps

Separate address spaces

for separate web apps

Sandbox the web app’s process

blink

v8

Fast rendering engine,

small footprint, …

Optimized JS engine,

many opportunities

faster

Why Google did develop Chrome?

30 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Android & Chrome

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

VSync and Chromium Powered WebView

Browser Process

Render

Process

System VSync

~3.2ms

internal

timer’s tick

Improved VSync Scheduling on Android

New Architecture

31 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Android & Chrome

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Beta testing and staged rollouts

Localization improvements

• App translation service

• Optimization tips

New Analytics

and monetization features

Google Play Developer Console:

a better distribution experience

32 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Android & Chrome

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Google Play Services 3.1

Google Play games services

• Achievements

• Social and public leaderboards

• Cloud saves

• Real-time multiplayer

Location APIs

• Fused location provider

• Geofencing APIs

• Activity recognition API

Google Cloud Messaging

• New registration API

• Cloud Connection Server (CCS) over XMPP

• User Notifications API

Google+ Cross-Platform Single Sign On

• Authentication

• Over-the-air installs

• Interactive posts

• Profile & social graph access

• App activities in Google Search

33 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Cross Platform

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

User interface programming overview

(Android to Windows)

Source : http://msdn.microsoft.com/en-us/library/windows/apps/dn263251.aspx

34 2014, 13th Kandroid minmax - www.kandroid.org

Convergence : Cross Platform

Since 2007,

The Direction of Evolution

Platform

• Architecture

• Measurement f/w

• Programming Models

Application

• Compatibility

• Memory

• Performance

Convergence

• Android & Chrome

• Platform & Service

• Cross Platform

Beyond Android

With the current market saturation, is it possible to create

a new platform?

• B2G, Tizen, LG Web OS, Ubuntu Mobile

The successful development of a new platform could lead

to advances. Nevertheless, it would be just one more in an

already saturated market. So, we must streamline the

market and focus on cross-platform compatibility with the

status quo.

• Web-based (e.g. PhoneGap)

• Native-based (e.g. Cocos2d-x)

• VM-based (e.g. Mono)

Source : High Performance Android App. Development http://deview.kr/2013/detail.nhn?topicSeq=9

목 차

Technology History : Two Approaches

• Source Code and Derivative Works : Git & Gerrit

• Reinterpretation and Standard : Google IO & APIs

Since 2007, The Direction of Evolution

• Platform : Architecture, Measurement f/w, Programming Models

• Application : Compatibility, Performance, Memory

• Convergence : Android & Chrome, Platform & Service, Cross Platform

All History is Contemporary History

• Lesson : What must we learn from last 6 years?

• Forecast : What is the future of Android Technology?

• Action : What must we act as a developer right now?

36 2014, 13th Kandroid minmax - www.kandroid.org

2012

kandroid s/w membership (2012)

kandroid s/w fundamentals study group (2013)

kandroid s/w fundamentals study group (2014)

1. How SoC Works?

2. How Linux Works?

3. How Toolchain Works?

4. How Programming Language Works?

5. How Chrome Browser Works?

Traditional Manufacturer

Traditional Service/Game Company

New Business Model

2009

Google IO 2012 Project Butter

Lesson : What must we learn from last 6 years?

Forecast : What is the future of Android Technology?

Action : What must we act as a developer right now?

All History is Contemporary History

2/4 Featured Sessions,

Kandroid S/W Fundamentals Study Group

Q & A

www.kandroid.org 운영자

양정수 ([email protected])