Android

advertisement
Android vs. Linux for Automotive
TY Kim, APAC Solutions Architect
Definition of Software Architecture
“A software system’s architecture is the
set of principal design decisions made
about the system.”
— Software Architecture, Richard N. Taylor et al.
2
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
Which one counts the most?
3
Typical IVI projects Roles and Responsibility
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
4
Top Down or Bottom Up?
Bottom Up
* Analysis of existing system
* Past project experiences
* Engineering capability
* Ecosystem
Top Down
* Requirement gathering
* Architecture design
* Cost / Schedule analysis
* Project planning
5
SWOT Analysis of Android for Automotive
[Strength]
- Platform Maturity
- EcoSystem
- Open Source
[Opportunity]
- Connected Car
- Services Platform
- Convergence
[Weakness]
- Mobile Oriented
- Pace of Evolution
- Patent Issues
[Threat]
- Google Dependency
- Support & Maintenance
- Smartphone
How to address these?
6
High Level System Description
Pros
Cons
7
Design Decisions
 System structure
 Functional behavior
 Interaction
 Nonfunctional properties
 Implementation
8
Architectural Documentation
A template for documenting software and firmware architectures, Version 1.3, 15-Mar-00, HP
9
System Structure
Android
10
Linux
 (modified) Linux
 Linux
 Custom set of middleware
 Custom set of middleware
 Dalvik VM + Native Runtime
 Native
 Android Application Framework
 Qt / EFL/ Gtk / Custom
 Android HMI Framework
 HTML5 / Custom
 600K Apps + 500K Developers
 Unknown
Functional Behavior and Interaction
Android
11
Linux
 Custom HAL
 Linux Driver
 JNI / NDK / Zygote
 App Framework TBD
 Binder / System Service
 Linux IPC (D-Bus)
 Content Provider / Intent
 Socket, Signal, Daemon
 Activity / View
 Linux Process / Thread
Non-functional Properties
Android
 Mobile (and TV?) oriented
 Versatile
 Commercially proven
architecture
 Flexible architecture
 Wealth of information
 Loosely coupled components
 Tightly integrated components
 Various pace of innovation
 Fast pace of innovation
12
Linux
 Good amount of information
Implementation
Android
 C / C++ / Java
 C / C++ / HTML5
 Driven by Google with
contribution from others
 Community driven
 High quality of code in general
 Roadmap can be known /
discussed
 Roadmap unknown
13
Linux
 Quality of code varies
Android Multimedia Framework
14
Android MMF - Stagefright
15
Linux Multimedia Framework
16
Consideration for Reusability
 User Interface (Look & Feel):
ISV
 Foundation Technology:
OSV
 Hardware System:
Tier-1
 Product Specification:
OEM
What is changing with:
• New Hardware
• New Tier-1
• New OEM
• New OS
• New Features
• New HMI
• New Model
?
17
HMI
Changes with new UX
Business Logic
Custom Middleware
Reuse strategy needed here
Core Middleware
OS / Drivers
Changes with new hardware
Hardware
Unified Platform?
Unified Platform
Low
HMI
Business Logic
Custom Middleware
Mid
Core Middleware
OS / Drivers
Hardware
High
18
What is GENIVI?
Audio
Graphics
Multimedia
Speech
CE-device
External
Access
Connectivity
Positioning
Security
Personal
Information
Management
Package
Management
Networking
System Infrastructure
OS, Linux kernel, drivers and libraries
19
GENIVI Compliance
Specific Component
Abstract Component
• Defines only it’s interfaces and behavior, but does not refer to any
specific implementation – e.g. libc, OpenGL, Bluetooth stack,
Telephony
Placeholder Component
• A placeholder that has an established name, defined purpose and
must meet specific requirements but the implementation is either:
• Non-existent in open source
• Provided by 3rd party software provider – e.g. DVD Playback
20
Strictness
• Basis of the GENIVI platform
• An actual Linux or Open Source package
• E.g. Linux kernel, ALSA Sound, ConnMan, gStreamer Framework
What about Hybrid Platform?
HTML5
Android APP
Android
Native APP
Native Lib
Android APP
GENIVI APP
Native APP
Android
GENIVI
Linux
Linux
PFI
Tizen
In-House
Android APP
Android
Linux
Hypervisor
Linux
CPU
CPU
CPU
Option1
Option2
Option3
 Option1: Native library can be added to Android
 Option2: Some commercial Hypervisor Solution
 Option3: Heavy modification on Android
How feasible are these options?
21
Other Evaluation Criteria
 Development productivity
 Automotive features
 Costs
 Risks
 Resources
 Consistency
 Testability
 Flexibility
 Differentiation
 Longevity
22
SWOT Analysis of Linux for Automotive
[Strength]
- Full Customization
- Ownership
- Open Source Community
[Weakness]
- Too much freedom
- No control tower
- 3rd Party support
[Opportunity]
[Threat]
- Scalability
- Industry Support (GENIVI)
- Longer lifecycle
- Initial Development Cost
- Maturity of Technology
- Support & Maintenance
How to address these?
23
Iterative Approach for Platform Design
Gap
Analysis
Requirement
Development
Architecture
Design
Validation
Proof of
Concept
24
Proof of Concept Design
 Implementation of the proposed architecture
 The scope of the work may include:
– Fastboot optimization
– Selective integration of available IP
– App / HMI framework
– Reference UI
25
Validation
Validation
Plan
 Feature list
Execute Tests & Benchmarks
 Performance
 Interoperability
100
80
 Scalability
60
40
20
0
View and Analyze
Results
Improve
send
Collaborate with Developers
26
Identify and Report
Issues
27
Download