Android on i.mx Applications Processors



Similar documents
GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Android Virtualization from Sierraware. Simply Secure

The MeeGo Multimedia Stack. Dr. Stefan Kost Nokia - The MeeGo Multimedia Stack - CELF Embedded Linux Conference Europe

Overview of CS 282 & Android

Android Architecture. Alexandra Harrison & Jake Saxton

An Introduction to Android

Creating and Using Databases for Android Applications

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Issues in Android on Mobile Platform and Their Resolution

Customer Experience. Silicon. Support & Professional Eng. Services. Freescale Provided SW & Solutions

Lecture 1 Introduction to Android

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Android Operating System:

Introduction to Android

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Android 5.0: Lollipop OS

Mentor Embedded Automotive Solutions

WIND RIVER SECURE ANDROID CAPABILITY

Development. SriSeshaa Technologies. Table of Contents

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

ARM Processors for Computer-On-Modules. Christian Eder Marketing Manager congatec AG

Programming the Android Platform. Logistics

An Android Multimedia Framework based on Gstreamer

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Android Application Development. Daniel Switkin Senior Software Engineer, Google Inc.

Here to take you beyond Mobile Application development using Android Course details

TI Linux and Open Source Initiative Backgrounder

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

Mobile Phones Operating Systems

H MICRO CASE STUDY. Device API + IPC mechanism. Electrical and Functional characterization of HMicro s ECG patch

Using Mobile Processors for Cost Effective Live Video Streaming to the Internet

ANDROID OPERATING SYSTEM

Android Operating System

Berlin Institute of Technology FG Security in Telecommunications

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Mobile Operating Systems. Week I

Mentor Embedded IVI Solutions

Android Architecture Diagram:

Android Architecture For Beginners

Example of Standard API

Introduction to Android

Research and Design of Universal and Open Software Development Platform for Digital Home

An Android based Quantum GIS prototype. Ramon Carrillo, Daniel Ochoa

Android Basics. Xin Yang

Android Application Development

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

ITG Software Engineering

Multimedia Framework Overview. JongHyuk Choi

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Android Auto PoC. October Oct-15. Maxim Ovchinnikov Architect Harman

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

Android Programming and Security

SECURE IMPLEMENTATIONS OF CONTENT PROTECTION (DRM) SCHEMES ON CONSUMER ELECTRONIC DEVICES

Review On Google Android a Mobile Platform

Embedded Linux Platform Developer

Overview. The Android operating system is like a cake consisting of various layers.

Remote Desktop on Mobile

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Application of Android OS as Real-time Control Platform**

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

SBC8100 Single Board Computer

Analysis of advanced issues in mobile security in android operating system

Workshop on Android and Applications Development

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Tizen Technical Overview 枪 晦 随 鬴 缃 拜 枋 幞 垖 幁 穧 幤

Hacking your Droid ADITYA GUPTA

Introduction to Android

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Camera Sensor Driver Development And Integration

Harmonizing policy management with Murphy in GENIVI, AGL and TIZEN IVI

Android (Basic + Advance) Application Development

About Us. Technology Solutions & Services Company. Turn Innovative Ideas into Real Products & Software, Efficiently

ANDROID INTRODUCTION TO ANDROID

What else can you do with Android? Inside Android. Chris Simmonds. Embedded Linux Conference Europe Copyright 2010, 2net Limited.

Whitepaper. NVIDIA Miracast Wireless Display Architecture

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Android builders summit The Android media framework

A Short Introduction to Android

Embedded Application Development with Android. Bob Blumenscheid Product Marketing Manager Digi International

COURSE CONTENT. GETTING STARTED Select Android Version Create RUN Configuration Create Your First Android Activity List of basic sample programs

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

The Android Platform

Sierraware Overview. Simply Secure

VIA COLLAGE Deployment Guide

Crosswalk: build world class hybrid mobile apps

AllJoyn Android Environment Setup Guide

Inside Android's UI Embedded Linux Conference Europe 2012 Karim

Virtualization for Cloud Computing

Praktikum Entwicklung Mediensysteme (für Master)

Android Development: a System Perspective. Javier Orensanz

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Transcription:

July 2009 Android on i.mx Applications Processors Sridharan Subramanian Senior Product Manager Software and Platforms

Abstract Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google and later the Open Handset Alliance. It is penetrating in different target segments from mobile devices to netbooks to even Automotive. Freescale is providing Android solutions on its i.mx processors and this session will go into details of the port. 2

Contents Freescale i.mx Processor Linux Approach i.mx Processor Android i.mx Processor Android Integration Details i.mx Processor Android Validation 3

Freescale i.mx Processor Linux Approach 4

Freescale i.mx Processor Linux Approach A layered approach with the right selection of components to provide a common Linux stack that enables customers to easily migrate across i.mx SoCs and penetrate the markets that they want to engage in. Common board support packages (BSP) consisting of kernel optimizations, hardware drivers and unit tests; Customizations for specific target segments. Extensive portfolio of optimized multimedia codecs (ARM and Video processing unit accelerated). Common middleware with reuse from open source frameworks that enable integration of proprietary components also - multimedia framework plugins, power management, security/drm, graphics (OpenVG/OpenGL-ES), connectivity. Leverage Ubuntu, Android and ARM Linux (Gnome Mobile) solutions. 5

i.mx Processor Linux BSP Features Out-of-the-box integrated Linux environment tools + kernel + drivers Extensively tested, hardened and validated Optimized for target platforms Accelerated codecs support Common code base across different i.mx SoCs Packages Boot loader binaries and source files Source and patches for kernel and file system Source code for unit tests of the drivers Linux Target Image Builder (LTIB) Proprietary 3 rd party components in binary code format Prebuilt binaries Tool chain for ARM9/ARM11/ARM12 (Linux Open source/codesourcery) BSP Documentation (Reference manual, User s Guide, release notes) 6

i.mx Optimized Multimedia Codecs Key Features Comprehensive suite of optimized codecs (~40+ Audio/Video/Image Codecs) Highly optimized software that is coded by Freescale processor experts Consistent application programming interface (API) and frameworks across all software packages including OpenMAX support Codec APIs have been optimized from system design perspective and achieve optimal system performance along with related middleware wrappers Supplemented with Freescale development tools, sample test streams and documentation Codec Software Packages include: Codec libraries with a standard C-callable API OpenMAX plugins that provide an API layer between the multimedia framework and the codec library Audio/video file containers (parsers) that support popular multimedia content, such as.aac,.avi,.asf,.mp3 and.mp4 files Bundle of Freescale audio/video sample test streams Complete documentation, including API documentation, release notes and data sheets 7

i.mx Processor Android 8

What Android Is and Is Not It s a software stack for mobile devices including OS (Linux), middleware and key applications. It s a different Linux OS (or distribution ) based on Linux kernel. The system libraries, system initialization and program interface in it are distinct from a standard Linux OS. It s not ONLY an application framework for Linux, although it does include it s own app framework (window management, inter-app communication, event dispatch, ). It s much more. It s not ONLY a Java API for phone, although it does include a Java virtual machine (called Dalvik ) and all system interfaces are exposed only through Java libraries. It s much more. It s not a full phone stack. It s ONLY SW running on application CPU. It will interact with wireless protocol (GSM/GPRS/WCDMA/ ) running on separate baseband chip to implement telephony features. 9

Android Software Stack on Mobile Device Apps (Java) Everyone can create his/her own application based on Open Android API Android Program API Middleware (Java) App framework including window/focus management, inter-app communication, event notification, etc. Middleware (C/C++) system libraries for media, graphic, database, font, web engine, etc. Android Porting I/F 2.6 based Linux kernel with Android patch 10

Readiness i.mx Processor Android Approach An integrated solution (kernel + Android framework + dev/debug environment). Customer is able to directly develop applications on this integrated solution or easily modify/replace their own drivers based on reference code. Performance Higher performance by utilizing hardware acceleration for graphics and multimedia and optimized codecs. Contribution Participate and contribute in the OHA community. 11

i.mx Processor Android Integration Details 12

Multimedia Audio/Video Codec APPLICATIONS Audio/Video Apps APP FRAMEWORK MediaPlayer/Recorder Class Verify audio/video player/authoring is available in Application level. RUNTIME -> NATIVE NATIVE LIBRARIES MediaPlayer Service (Native) IPC binding JNI Media Library PV OpenCore Player/Author Engine Verify audio/video player/authoring work fine in PV engine level via PV test utilities. PV MediaInput Node LINUX KERNEL OpenMAX IL I/F FSL Audio Codecs with OMX IL PV SW Codec/Parser FSL Video Codecs with OMX IL VPU Driver FSL OMX Core PV MediaOutput Node Integrate FSL OpenMAX core. Integrate FSL Audio Codecs OMX component. Integrate FSL Video Codecs OMX component. If it s HW codec (e.g. i.mx51), integrate VPU driver also. 13

Integration details (Bottom-up) Multimedia Audio/Video Codecs Integrate low-level video drivers (if h/w accelerated) Integrate Freescale Audio/Video Codecs OMX Components Integrate Freescale OpenMAX core Verify A/V player/authoring works fine in PV engine via PV test utilities Verify audio/video player/authoring is available in Application level (works as expected in Android) Camera Leverage low level V4l2 API Use user space lib (Glue IPU/Camera driver with camera service) Interact via JNI to Camera service Utilize android.hardware.camera class Verify Camera Service (parameter setting, preview, still image capture,..etc.) is available in Application level (works as expected) 14

GPS Integration details (Bottom-up) Contd. Integrate low level Linux GPS driver Interact with the GPS lib through HAL Interact with the user HAL through JNI Verify Location Service is available in Application level (ensure it works as expected in Android) WiFi Integrate low level WiFi driver kernel module Setup WPA supplicant daemon User HAL (Update to load WiFi kernel module) Verify WiFi Service (enable, search list, connect, etc.) is available in Application level as expected (i.e. WiFi HW/driver is properly integrated into Android) 15

Bluetooth Integration details (Bottom-up) Contd. Integrate low level BlueZ kernel module driver Communicate from A2DP or device service to BlueZ library through dbus Verify Bluetooth Service (service discovering, paring, headset, hands free, A2DP, etc.) is available in Application level as expected (i.e. Bluetooth HW/driver is properly integrated into Android) Graphics For 2D, utilize the SGL graphic engine and surface manager to render to framebuffer For 3D, investigating on integration of OpenGL/ES wrappers 16

i.mx Processor Android Validation 17

Android Test Approach Freescale provides platform software components under the Android framework, to enable customers develop final Androidbased solutions. Our validation approach consists of validating the key platform pieces that constitute an Android port which is focused on the HAL, BSP and Codecs. From a system stand point, we focus on integration and validation of certain components like Codecs, WiFi, Bluetooth, GPS, camera, graphics, and extensions that would feed into the Android stack. 18

Android Test Scope Test Class System Test Codec Test BSP Test Description System test: Validate the fundamental functionalities and performance of the system. e.g. power consumption, system power on/off, etc. Application test: Validate the functionality of system supported applications. These include default Android applications like media player, camera, etc. and basic functionalities for BSP relevant features under Android stack. E.g. USB, SD, Keypad, Touchpanel. Test the Codecs after integrating them through OpenMax IL into OpenCore. Test scope includes: Quality and Profile Test (Using Gallery for Video and Image test, music player for audio test to do playback test of the test vectors, covering different codec profiles/formats that are supported) Trick-mode test Stress and security test etc. BSP tests validate functionality, performance and stability of BSP modules (e.g. drivers, core lib, etc.). Also validate the reliability, robustness, and stability of Linux kernel OS through LTP suite 19

Codecs Validation Exhaustive bitmatch on target platform for the suite of conformance test vectors Platform testing with the platform test suite for bitmatch, re-entrancy, preemption, relocation, endurance, robustness and error recovery Test streams used for validation (raw and composite streams) Conformance streams Performance/stress streams Error streams 3 rd party codec/platform certification (Microsoft, DivX, etc.) OpenMax interface validation System tests for validation in OpenCore and through Android applications like Gallery and Media player 20

Q&A Thank you for attending this presentation. We ll now take a few moments to review the audience questions, and then we ll begin the question and answer session. 21