Upload
bonnie-powell
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
Android vs. Linux for AutomotiveTY Kim, APAC Solutions Architect
Definition of Software Architecture
2
“A software system’s architecture is the set of principal design decisions made about the system.”
— Software Architecture, Richard N. Taylor et al.
Software Architecture – Who Cares What?
Stakeholder Types Interests
End User Usability, Functionality, Performance, Reliability
Customer Price, Support & Maintenance cost, Features, Schedule
Developer Understandability, Clear requirements, Testability
Component Vendors System interface, Collaboration model, Integration Rules
Project Manager Work partitioning, Resource, Schedule, Budget
Maintainer System structure, Documentation, Consistency
Architect Consistency, Clarity of Concept
Management Price, Time to Market, Differentiation, Company Strategy
3
Which one counts the most?
Typical IVI projects Roles and Responsibility
4
Name Role Work Scope
Semi. Vendor •BSP for App Processor•Multimedia•Graphics
•Reference Hardware•Linux BSP•OpenGL/OpenVG•Media Codec
Wind River •Requirement Analysis•BSP/Middleware Enablement•Applications
•Kernel Drivers create/modify/integrate•IVI Framework create/modify•Application create•Software Integration•iPod, Fast Boot, Automated Test, App Store/SDK
ISV •Telematics•ADAS•Voice Recognition•Navigation
•Telematics, ADAS, VR, Navigation
IHV •Device Drivers •Device Drivers in Binary and/or Source
Tier-1 •Systems Integration•Device Manufacturing
•Commercial Hardware•Systems Integration•Design / Product Validation
OEM Car OEM •System Specification•Quality Assurance
Top Down or Bottom Up?
5
SWOT Analysis of Android for Automotive
6
How to address these?
High Level System Description
7
Design Decisions
System structure
Functional behavior
Interaction
Nonfunctional properties
Implementation
8
Architectural Documentation
9
A template for documenting software and firmware architectures, Version 1.3, 15-Mar-00, HP
Android (modified) Linux
Custom set of middleware
Dalvik VM + Native Runtime
Android Application Framework
Android HMI Framework
600K Apps + 500K Developers
Linux Linux
Custom set of middleware
Native
Qt / EFL/ Gtk / Custom
HTML5 / Custom
Unknown
10
System Structure
Android Custom HAL
JNI / NDK / Zygote
Binder / System Service
Content Provider / Intent
Activity / View
Linux Linux Driver
App Framework TBD
Linux IPC (D-Bus)
Socket, Signal, Daemon
Linux Process / Thread
11
Functional Behavior and Interaction
Android Mobile (and TV?) oriented
Commercially proven architecture
Wealth of information
Tightly integrated components
Fast pace of innovation
Linux Versatile
Flexible architecture
Good amount of information
Loosely coupled components
Various pace of innovation
12
Non-functional Properties
Android C / C++ / Java
Driven by Google with contribution from others
High quality of code in general
Roadmap unknown
Linux C / C++ / HTML5
Community driven
Quality of code varies
Roadmap can be known / discussed
13
Implementation
Android Multimedia Framework
14
Android MMF - Stagefright
15
Linux Multimedia Framework
16
Consideration for Reusability
17
User Interface (Look & Feel): ISV
Foundation Technology: OSV
Hardware System: Tier-1
Product Specification: OEM
OS / Drivers
Core Middleware
Business Logic
Hardware
Changes with new hardware
Reuse strategy needed hereCustom Middleware
HMI Changes with new UXWhat is changing with:• New Hardware
• New Tier-1• New OEM• New OS
• New Features• New HMI
• New Model
?
Unified Platform?
18
OS / Drivers
Core Middleware
Business Logic
Hardware
Custom Middleware
HMILow
High
Mid
Unified Platform
What is GENIVI?
19
AudioAudio GraphicsGraphics MultimediaMultimedia SpeechSpeech
ConnectivityConnectivity
PackageManagement
PackageManagement SecuritySecurity
System InfrastructureSystem Infrastructure
NetworkingNetworking
ExternalAccessExternalAccessCE-deviceCE-device PositioningPositioning
Personal Information Management
Personal Information Management
OS, Linux kernel, drivers and librariesOS, Linux kernel, drivers and libraries
GENIVI Compliance
20
Str
ictn
ess
What about Hybrid Platform?
21
CPU
Android APP
Android
LinuxLinux
Native Lib
Native APP
CPU
Android APP
Android
HypervisorHypervisor
GENIVI APP
CPU
Native APP
PFITizenIn-House
LinuxLinux
Android
Android APP
Option1: Native library can be added to Android Option2: Some commercial Hypervisor Solution Option3: Heavy modification on Android
Option1 Option2 Option3
GENIVI
HTML5
How feasible are these options?
LinuxLinux LinuxLinux
Other Evaluation Criteria
Development productivity
Automotive features
Costs
Risks
Resources
Consistency
Testability
Flexibility
Differentiation
Longevity
22
SWOT Analysis of Linux for Automotive
23
How to address these?
Iterative Approach for Platform Design
24
Proof of Concept Design
25
Implementation of the proposed architecture
The scope of the work may include:– Fastboot optimization
– Selective integration of available IP
– App / HMI framework
– Reference UI
Validation
26
Feature list
Performance
Interoperability
Scalability
Validation Plan
Execute Tests & Benchmarks
Collaborate with Developers Identify and Report Issues
View and Analyze Results
Improve
send
0
20
40
60
80
100
0
20
40
60
80
100
27