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 End User Customer Developer Component Vendors Project Manager Maintainer Architect Management Interests Usability, Functionality, Performance, Reliability Price, Support & Maintenance cost, Features, Schedule Understandability, Clear requirements, Testability System interface, Collaboration model, Integration Rules Work partitioning, Resource, Schedule, Budget System structure, Documentation, Consistency Consistency, Clarity of Concept 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 Wind River BSP for App Processor Multimedia Graphics Requirement Analysis BSP/Middleware Enablement Applications Reference Hardware Linux BSP OpenGL/OpenVG Media Codec 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 [Weakness] - Mobile Oriented - Pace of Evolution - Patent Issues [Opportunity] - Connected Car - Services Platform - Convergence [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 (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
Functional Behavior and Interaction 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
Non-functional Properties 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
Implementation C / C++ / Java Android 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
14 Android Multimedia Framework
15 Android MMF - Stagefright
16 Linux Multimedia Framework
Consideration for Reusability User Interface (Look & Feel): Foundation Technology: Hardware System: Product Specification: ISV OSV Tier-1 OEM What is changing with: New Hardware New Tier-1 New OEM New OS New Features New HMI New Model? HMI Business Logic Custom Middleware Core Middleware OS / Drivers Hardware Changes with new UX Reuse strategy needed here Changes with new hardware 17
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 Package Management Networking Security Personal Information Management System Infrastructure OS, Linux kernel, drivers and libraries 19
Strictness GENIVI Compliance Specific Component Basis of the GENIVI platform An actual Linux or Open Source package E.g. Linux kernel, ALSA Sound, ConnMan, gstreamer Framework 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 3 rd party software provider e.g. DVD Playback 20
What about Hybrid Platform? HTML5 Android APP Native APP Android APP GENIVI APP Native APP Android APP Android Native Lib Android Linux GENIVI Linux PFI Tizen In-House 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 - 3 rd Party support - Scalability [Opportunity] - Industry Support (GENIVI) - Longer lifecycle [Threat] - Initial Development Cost - Maturity of Technology - Support & Maintenance How to address these? 23
Iterative Approach for Platform Design Gap Analysis Requirement Development Validation Architecture Design 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 Performance Interoperability Scalability Execute Tests & Benchmarks 100 80 60 40 20 0 View and Analyze Results Improve send Collaborate with Developers Identify and Report Issues 26
27