android vs. linux for automotive - digitimes-首頁 · pdf filetypical ivi projects roles and...

27
Android vs. Linux for Automotive TY Kim, APAC Solutions Architect

Upload: duongnguyet

Post on 28-Mar-2018

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Android vs. Linux for Automotive

TY Kim, APAC Solutions Architect

Page 2: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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.

Page 3: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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?

Page 4: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 5: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Top Down or Bottom Up?

5

Bottom Up

* Analysis of existing system

* Past project experiences

* Engineering capability

* Ecosystem

Top Down

* Requirement gathering

* Architecture design

* Cost / Schedule analysis

* Project planning

Page 6: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

SWOT Analysis of Android for Automotive

6

[Strength]

- Platform Maturity

- EcoSystem

- Open Source

[Weakness]

- Mobile Oriented

- Pace of Evolution

- Patent Issues

[Opportunity]

- Connected Car

- Services Platform

- Convergence

[Threat]

- Google Dependency

- Support & Maintenance

- Smartphone

How to address these?

Page 7: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

High Level System Description

7

Pros

Cons

Page 8: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Design Decisions

System structure

Functional behavior

Interaction

Nonfunctional properties

Implementation

8

Page 9: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Architectural Documentation

9

A template for documenting software and firmware architectures, Version 1.3, 15-Mar-00, HP

Page 10: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 11: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 12: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 13: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 14: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Android Multimedia Framework

14

Page 15: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Android MMF - Stagefright

15

Page 16: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Linux Multimedia Framework

16

Page 17: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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 here Custom Middleware

HMI Changes with new UX What is changing with:

• New Hardware

• New Tier-1

• New OEM

• New OS

• New Features

• New HMI

• New Model

?

Page 18: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Unified Platform?

18

OS / Drivers

Core Middleware

Business Logic

Hardware

Custom Middleware

HMI Low

High

Mid

Unified Platform

Page 19: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

What is GENIVI?

19

Audio Graphics Multimedia Speech

Connectivity

Package Management

Security

System Infrastructure

Networking

External Access

CE-device Positioning

Personal Information Management

OS, Linux kernel, drivers and libraries

Page 20: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

GENIVI Compliance

20

• Basis of the GENIVI platform

• An actual Linux or Open Source package

• E.g. Linux kernel, ALSA Sound, ConnMan, gStreamer Framework

Specific Component

• Defines only it’s interfaces and behavior, but does not refer to any specific implementation – e.g. libc, OpenGL, Bluetooth stack, Telephony

Abstract 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

Placeholder Component

Str

ictn

ess

Page 21: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

What about Hybrid Platform?

21

CPU

Android APP

Android

Linux

Native Lib

Native APP

CPU

Android APP

Android

Hypervisor

GENIVI APP

CPU

Native APP

PFI

Tizen

In-House

Linux

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?

Linux Linux

Page 22: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Other Evaluation Criteria

Development productivity

Automotive features

Costs

Risks

Resources

Consistency

Testability

Flexibility

Differentiation

Longevity

22

Page 23: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

SWOT Analysis of Linux for Automotive

23

[Strength]

- Full Customization

- Ownership

- Open Source Community

[Weakness]

- Too much freedom

- No control tower

- 3rd Party support

[Opportunity]

- Scalability

- Industry Support (GENIVI)

- Longer lifecycle

[Threat]

- Initial Development Cost

- Maturity of Technology

- Support & Maintenance

How to address these?

Page 24: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

Iterative Approach for Platform Design

24

Requirement Development

Architecture Design

Proof of Concept

Validation

Gap Analysis

Page 25: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 26: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

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

Page 27: Android vs. Linux for Automotive - DIGITIMES-首頁 · PDF fileTypical IVI projects Roles and Responsibility 4 Name Role Work Scope Semi. Vendor •BSP for App Processor •Multimedia

27