Embedded Android Workshop ELCE 2014 Karim Yaghmour @karimyaghmour 1 Delivered and/or customized by These slides are made available to you under a Creative Commons Share-Alike 3.0 license. The full terms of this license are here: https://creativecommons.org/licenses/by-sa/3.0/ Attribution requirements and misc., PLEASE READ: This slide must remain as-is in this specific location (slide #2), ● everything else you are free to change; including the logo :-) Use of figures in other documents must feature the below ● “Originals at” URL immediately under that figure and the below copyright notice where appropriate. You are free to fill in the “Delivered and/or customized by” space ● on the right as you see fit. You are FORBIDEN from using the default “About” slide as-is or ● any of its contents. (C) Copyright 2010-2014, Opersys inc. These slides created by: Karim Yaghmour Originals at: www.opersys.com/community/docs 2 About Author of: ● Introduced Linux Trace Toolkit in 1999 ● Originated Adeos and relayfs (kernel/relay.c) ● Training, Custom Dev, Consulting, ... ● 3 About Android Huge ● Fast moving ● Stealthy ● 4 Introduction to Embedded Android Basics ● History ● Ecosystem ● Legal framework ● Platform and hardware requirements ● Development tools ● 5 1. Basics Features ● UX Concepts ● App Concepts ● 6 1.1. Features (old snapshot) Application framework enabling reuse and replacement of components ● Dalvik virtual machine optimized for mobile devices ● Integrated browser based on the open source WebKit engine ● Optimized graphics powered by a custom 2D graphics library; 3D graphics based ● on the OpenGL ES 1.0 specification (hardware acceleration optional) SQLite for structured data storage ● Media support for common audio, video, and still image formats (MPEG4, H.264, ● MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) ● Bluetooth, EDGE, 3G, and WiFi (hardware dependent) ● Camera, GPS, compass, and accelerometer (hardware dependent) ● Rich development environment including a device emulator, tools for debugging, ● memory and performance profiling, and a plugin for the Eclipse IDE 7 1.2. UX Concepts Browser-like ● iPhone-ish ● No user-concept of “task” ● Main keys: ● HOME ● SEARCH ● BACK ● MENU ● App-model allows users to safely install/test almost ● anything 8 “Click” Activity #1 Activity “Back” “Click” Activity #2 Activity #1 “Click” “Home” “Back” Activity #3 Activity #2 Activity #1 Home Menu Back 9 1.3. App Concepts No single entry point (No main() !?!?) ● Unlike Windows or Unix API/semantics in many ● ways Processes and apps will be killed at random: ● developer must code accordingly UI disintermediated from app “brains” ● Apps are isolated, very ● Behavior predicated on low-memory conditions ● 10
Description: