Upload
trandien
View
214
Download
0
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])