Android Anatomy and Physiology

Size: px
Start display at page:

Download "Android Anatomy and Physiology"

Transcription

1 Android Anatomy and Physiology

2 Agenda Android Anatomy Linux Kernel Native Libraries Android Runtime Layer Interaction Application Framework Android Physiology Start-up Walkthrough

3 Android Anatomy Applications Home Dialer SMS/MMS IM Browser Camera Alarm Calculator Contacts Activity Voice Dial Window Calendar Media Player Albums Application Framework Content Providers View System Clock Notification Package Telephony Libraries Resource Location Android Runtime Surface Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

4 Agenda Android Anatomy Linux Kernel Native Libraries Android Runtime Layer Interaction Application Framework Android Physiology Start-up Walkthrough

5 Linux Kernel Android is built on the Linux kernel, but Android is not Linux No native windowing system No glibc support Does not include the full set of standard Linux utilities Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

6 Linux Kernel Standard Linux Kernel Patch of kernel enhancements to support Android Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

7 Why Linux Kernel? Great memory and process management Permissions-based security model Proven driver model Support for shared libraries Itʼs already open source! Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

8 Kernel Enhancements Alarm Ashmem Binder Power Management Low Memory Killer Kernel Debugger Logger Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

9 Binder: Problem Applications and Services may run in separate processes but must communicate and share data IPC can introduce significant processing overhead and security holes Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

10 Binder: Solution Driver to facilitate inter-process communication (IPC) High performance through shared memory Per-process thread pool for processing requests Reference counting, and mapping of object references across processes Synchronous calls between processes Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

11 Binder in Action Process A Process B App A Service B

12 Binder in Action Process A Process B App A Context Service B

13 Binder in Action Process A Process B App A Context Service B get service

14 Binder in Action Process A Process B App A Context Binder Driver Service B get service service

15 Binder in Action Process A Process B App A Context Binder Driver Service B get service service

16 Binder in Action Process A Process B App A Context Binder Driver Service B get service service call foo(object)

17 Binder in Action Process A Process B App A Context Binder Driver Service B get service service call foo(object) marshal proxy object

18 Binder in Action Process A Process B App A Context Binder Driver Service B get service service call foo(object) marshal proxy object relay to IPC threads

19 Binder in Action Process A Process B App A Context Binder Driver Service B get service service call foo(object) marshal proxy object relay to IPC threads call return

20 Binder Android Interface Definition Language (AIDL) Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

21 PM Problem Mobile devices run on battery power Batteries have limited capacity Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

22 PM Solution Built on top of standard Linux Power Management (PM) More aggressive power management policy Components make requests to keep the power on through wake locks Supports different types of wake locks Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

23 Android PM in Action App A Power PM Driver

24 Android PM in Action App A Power PM Driver new wake lock PARTIAL

25 Android PM in Action App A Power PM Driver new wake lock PARTIAL create wake lock

26 Android PM in Action App A Power PM Driver new wake lock PARTIAL create wake lock Turn off LCD

27 Android PM in Action App A Power PM Driver new wake lock PARTIAL create wake lock Turn off LCD release release

28 Android PM in Action App A Power PM Driver new wake lock PARTIAL create wake lock Turn off LCD release release Turn off CPU

29 Android PM android.os.power Use wake locks carefully! useractivity(long when, ); Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

30 Kernel The Android kernel source is available today at: Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

31 Agenda Android Anatomy Linux Kernel Native Libraries Android Runtime Layer Interaction Application Framework Android Physiology Start-up Walkthrough

32 Android Anatomy Libraries Surface Media Framework SQLite OpenGL ES FreeType WebKit SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

33 Native Libraries Bionic Libc Function Libraries Native Servers Hardware Abstraction Libraries Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

34 Native Libraries Bionic Libc Function Libraries Native Servers Hardware Abstraction Libraries Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

35 What is Bionic? What is bionic? Custom libc implementation, optimized for embedded use. Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

36 Why Bionic? Why build a custom libc library? License: we want to keep GPL out of user-space Size: will load in each process, so it needs to be small Fast: limited CPU power means we need to be fast Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

37 Bionic libc BSD License Small size and fast code paths Very fast and small custom pthread implementation Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

38 Bionic libc Built-in support for important Android-specific services system properties getprop( my.system.property, buff, default); log capabilities LOGI( Logging a message with priority Info ); Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

39 Bionic libc Doesn't support certain POSIX features Not compatible with Gnu Libc (glibc) All native code must be compiled against bionic Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

40 Native Libraries Bionic Libc Function Libraries Native Servers Hardware Abstraction Libraries Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

41 WebKit Based on open source WebKit browser: Renders pages in full (desktop) view Full CSS, Javascript, DOM, AJAX support Support for single-column and adaptive view rendering Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

42 Media Framework Based on PacketVideo OpenCORE platform Supports standard video, audio, still-frame formats Support for hardware / software codec plug-ins Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

43 SQLite Light-weight transactional data store Back end for most platform data storage Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

44 Native Libraries Bionic Libc Function Libraries Native Servers Hardware Abstraction Libraries Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

45 Surface Flinger Surface App App Surface Surface Flinger Frame Buffer Surface Provides system-wide surface composer, handling all surface rendering to frame buffer device Can combine 2D and 3D surfaces and surfaces from multiple applications Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

46 Surface Flinger Surfaces passed as buffers via Binder IPC calls Can use OpenGL ES and 2D hardware accelerator for its compositions Double-buffering using page-flip Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

47 Audio Flinger App App Tone Audio Media Player Game Audio Audio Flinger Earpeace Speaker Bluetooth Manages all audio output devices Processes multiple audio streams into PCM audio out paths Handles audio routing to various outputs Libraries Surface Media Framework SQLite WebKit Libc OpenGL ES Audio FreeType SSL

48 Native Libraries Bionic Libc Function Libraries Native Servers Hardware Abstraction Libraries Libraries Surface Media Framework SQLite LibWebCore Libc OpenGL ES Audio FreeType SSL

49 Hardware Abstraction Layer Applications Home Dialer SMS/MMS IM Browser Camera Alarm Calculator Contacts Activity Voice Dial Window Calendar Media Player Photo Album Application Framework Content Providers View System Clock Notification Package Surface OpenGL ES Media Framework Audio Telephony Libraries Resource SQLite WebKit Libc FreeType SSL Linux Kernel Display Driver Camera Driver Bluetooth Driver Location Hardware Abstraction Layer Android Runtime Shared Memory Driver Core Libraries Dalvik Virtual Machine Graphics Audio Camera Bluetooth GPS Radio (RIL) WiFi Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

50 Hardware Abstraction Libraries User space C/C++ library layer Defines the interface that Android requires hardware drivers to implement Separates the Android platform logic from the hardware interface Hardware Abstraction Layer Graphics Audio Camera Bluetooth GPS Radio (RIL) WiFi

51 Hardware Abstraction Libraries Why do we need a user-space HAL? Not all components have standardized kernel driver interfaces Kernel drivers are GPL which exposes any proprietary IP Android has specific requirements for hardware drivers Hardware Abstraction Layer Graphics Audio Camera Bluetooth GPS Radio (RIL) WiFi

52 HAL Header Example // must be provided by each Acme hardware implementation typedef struct { int (*foo)( void ); char (*bar)( void ); } AcmeFunctions; const AcmeFunctions *Acme_Init(const struct Env *env, int argc, char **argv); Hardware Abstraction Layer Graphics Audio Camera Bluetooth GPS Radio (RIL) WiFi

53 Hardware Abstraction Libraries Libraries are loaded dynamically at runtime as needed dlhandle = dlopen( /system/lib/libacme.so, RTLD_NOW);... acmeinit = (const AcmeFunctions *(*)(const struct Env *, int, char **))dlsym(dlhandle, Acme_Init");... acmefuncs = acmeinit(&env, argc, argv); Hardware Abstraction Layer Graphics Audio Camera Bluetooth GPS Radio (RIL) WiFi

54 Agenda Android Anatomy Linux Kernel Native Libraries Android Runtime Layer Interaction Application Framework Android Physiology Start-up Walkthrough

55 Android Anatomy Libraries Android Runtime Surface Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

56 Dalvik Virtual Machine Androidʼs custom clean-room implementation virtual machine Provides application portability and runtime consistency Runs optimized file format (.dex) and Dalvik bytecode Java.class /.jar files converted to.dex at build time Android Runtime Core Libraries Dalvik Virtual Machine

57 Dalvik Virtual Machine Designed for embedded environment Uses runtime memory very efficiently Supports multiple virtual machine processes per device Highly CPU-optimized bytecode interpreter Android Runtime Core Libraries Dalvik Virtual Machine

58 Core Libraries Core APIs for Java language provide a powerful, yet simple and familiar development platform Data structures Utilities File access Graphics Network Access Android Runtime Core Libraries Dalvik Virtual Machine

59 Agenda Android Anatomy Linux Kernel Native Libraries Android Runtime Application Framework Android Physiology Start-up Walkthrough Layer Interaction

60 Android Anatomy Activity Window Application Framework Content Providers View System Notification Package Telephony Libraries Resource Location Android Runtime Surface Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

61 Core Platform Services Services that are essential to the Android platform Behind the scenes - applications typically donʼt access them directly Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

62 Core Platform Services Activity Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

63 Core Platform Services Activity Package Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

64 Core Platform Services Activity Package Window Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

65 Core Platform Services Activity Package Window Resource Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

66 Core Platform Services Activity Package Window Resource Content Providers Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

67 Core Platform Services Activity View System Package Window Resource Content Providers Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

68 Hardware Services Provide access to lower-level hardware APIs Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

69 Hardware Services Provide access to lower-level hardware APIs Typically accessed through local object Location lm = (Location) Context.getSystemService(Context.LOCATION_SERVICE); Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

70 Hardware Services Telephony Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

71 Hardware Services Telephony Service Location Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

72 Hardware Services Telephony Service Location Service Bluetooth Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

73 Hardware Services Telephony Service Location Service Bluetooth Service WiFi Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

74 Hardware Services Telephony Service Location Service Bluetooth Service WiFi Service USB Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

75 Hardware Services Telephony Service Location Service Bluetooth Service WiFi Service USB Service Sensor Service Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

76 Application Framework More Information At Google I/O Online Inside the Android Application Framework Activity Window Application Framework Content Providers View System Notification Package Telephony Resource Location

77 Android Anatomy Applications Home Dialer SMS/MMS IM Browser Camera Alarm Calculator Contacts Activity Voice Dial Window Calendar Media Player Albums Application Framework Content Providers View System Clock Notification Package Telephony Libraries Resource Location Android Runtime Surface Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

78 Agenda Android Anatomy Linux Kernel Native Libraries Layer Interaction Application Framework Android Physiology Start-up Walkthrough

79 Agenda Android Anatomy Linux Kernel Native Libraries Layer Interaction Application Framework Android Physiology Start-up Walkthrough

80 Runtime Walkthrough It all starts with init Similar to most Linux-based systems at startup, the bootloader loads the Linux kernel and starts the init process. Init Linux Kernel

81 Runtime Walkthrough Init starts Linux daemons, including: USB Daemon (usbd) to manage USB connections Android Debug Bridge (adbd) to manage ADB connections Debugger Daemon (debuggerd) to manage debug processes requests (dump memory, etc.) Radio Interface Layer Daemon (rild) to manage communication with the radio usbd adbd debuggerd rild Init

82 Runtime Walkthrough Init process starts the zygote process: A nascent process which initializes a Dalvik VM instance Loads classes and listens on socket for requests to spawn VMs Forks on request to create VM instances for managed processes Copy-on-write to maximize re-use and minimize footprint usbd debuggerd adbd daemons Zygote Init

83 Runtime Walkthrough Init starts runtime process: Initializes Service the context manager for Binder that handles service registration and lookup Registers Service as default context manager for Binder services Service usbd debuggerd adbd daemons runtime Zygote Init

84 Runtime Walkthrough Runtime process sends request for Zygote to start System Service Service usbd debuggerd adbd daemons runtime Zygote Init

85 Runtime Walkthrough Runtime process sends request for Zygote to start System Server Zygote forks a new VM instance for the System Service process and starts the service Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

86 Runtime Walkthrough System Service starts the native system servers, including: Surface Flinger Audio Flinger Audio Flinger Surface Flinger Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

87 Runtime Walkthrough Native system servers register with Service as IPC service targets: Audio Flinger Surface Flinger Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

88 Runtime Walkthrough System Service starts the Android managed services: Content Window Telephony Service Activity Bluetooth Service Package Connectivity Service Power Location Camera Surface Service Flinger Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

89 Runtime Walkthrough Android managed Services register with Service : Content Window Telephony Service Activity Bluetooth Service Package Connectivity Service Power Location Service Camera Service Camera Surface Service Flinger Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

90 Runtime Walkthrough Power Activity Camera Surface Service Flinger Service System Server usbd debuggerd adbd daemons runtime Zygote Dalvik VM Init

91 Runtime Walkthrough After system server loads all services, the system is ready Init Daemon Processes runtime Zygote System Server Activity Package Window Dalvik VM Init usbd debuggerd adbd daemons runtime Zygote Surface Flinger Audio Flinger

92 Runtime Walkthrough After system server loads all services, the system is ready Init Daemon Processes runtime Zygote System Server Home Activity Package Window Home Dalvik VM Dalvik VM Init usbd debuggerd adbd daemons runtime Zygote Surface Flinger Audio Flinger

93 Runtime Walkthrough After system server loads all services, the system is ready Init Daemon Processes runtime Zygote System Server Home Activity Package Window Home Dalvik VM Dalvik VM Init usbd debuggerd adbd daemons runtime Zygote Surface Flinger Audio Flinger libc libc libc libc libc libc

94 Runtime Walkthrough Each subsequent application is launched in itʼs own process Daemon Processes runtime Zygote System Server Home Contacts Activity Package Window Home Dalvik VM Contacts Dalvik VM Dalvik VM usbd debuggerd adbd daemons runtime Zygote Surface Flinger Audio Flinger libc libc libc libc libc libc

95 Agenda Android Anatomy Linux Kernel Native Libraries Layer Interaction Framework Services Android Physiology Start-up Walkthrough

96 Layer Interaction There are 3 main flavors of Android layer cake: App Runtime Service lib App Runtime Service Native Service lib App Runtime Service Native Daemon lib

97 Layer Interaction There are 3 main flavors of Android layer cake: App Runtime Service lib App Runtime Service Native Service lib App Runtime Service Native Daemon lib

98 Android Runtime Services Applications Application Application Framework Binder IPC Runtime Service Libraries Linux Kernel Kernel Driver

99 Android Runtime Services Applications Application Application Framework Binder IPC Runtime Service Libraries JNI Native Service Binding Linux Kernel Kernel Driver

100 Android Runtime Services Applications Application Application Framework Binder IPC Runtime Service Libraries JNI Native Service Binding Dynamic load HAL Library Linux Kernel Kernel Driver

101 Android Runtime Services Applications Application Application Framework Binder IPC Runtime Service Libraries JNI Native Service Binding Dynamic load HAL Library Linux Kernel Kernel Driver

102 Example: Location Applications Application Binder IPC Application Framework Location Service GpsLocationProvider Libraries JNI GpsLocationProvider libgps.so Dynamic load Linux Kernel Kernel Driver

103 Layer Interaction There are 3 main flavors of Android layer cake: App Runtime Service lib App Runtime Service Native Service lib App Runtime Service Native Daemon lib

104 Android Native Services Applications Application Application Framework Libraries Runtime Service JNI Native Service Binding Linux Kernel

105 Android Native Services Applications Application Application Framework Runtime Service Libraries JNI Native Service Binding Binder IPC Native Service Linux Kernel

106 Android Native Services Applications Application Application Framework Runtime Service Libraries JNI Native Service Binding Binder IPC Native Service Dynamic load HAL Library Linux Kernel

107 Android Native Services Applications Application Application Framework Runtime Service Libraries JNI Native Service Binding Binder IPC Native Service Dynamic load HAL Library Linux Kernel Kernel Driver

108 Android Native Services Applications Application Application Framework MediaPlayer Libraries JNI MediaPlayer Binder IPC AudioFlinger Dynamic load Media Framework libaudio.so Linux Kernel Kernel Driver

109 Android Native Services Applications Application Application Framework MediaPlayer Libraries JNI MediaPlayer Binder IPC AudioFlinger Dynamic load Media Framework libaudio.so ALSA Linux Kernel Kernel Driver

110 Android Native Services Applications Application Application Framework MediaPlayer Libraries JNI MediaPlayer Binder IPC AudioFlinger Dynamic load Media Framework libaudio.so Proprietary Audio Driver Linux Kernel

111 Layer Interaction There are 3 main flavors of Android layer cake: App Runtime Service lib App Runtime Service Native Service lib App Runtime Service Native Daemon lib

112 Daemon Connection Applications Application Application Framework Libraries Runtime Service JNI Native Service Binding Linux Kernel Kernel Driver

113 Daemon Connection Applications Application Application Framework Runtime Service Libraries JNI Native Service Binding sockets Daemon Linux Kernel Kernel Driver

114 Daemon Connection Applications Application Application Framework Runtime Service Libraries JNI Native Service Binding sockets Daemon Dynamic load HAL Library Linux Kernel Kernel Driver

115 Daemon Connection Applications Application Application Framework Telephony Libraries JNI Telephony sockets rild Dynamic load libril.so Linux Kernel Kernel Driver

116 Layer Interaction There are 3 main flavors of Android layer cake: App Runtime Service lib App Runtime Service Native Service lib App Runtime Service Native Daemon lib

117 Android Anatomy Applications Home Dialer SMS/MMS IM Browser Camera Alarm Calculator Contacts Activity Voice Dial Window Calendar Media Player Albums Application Framework Content Providers View System Clock Notification Package Telephony Libraries Resource Location Android Runtime Surface Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL Libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Shared Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

118 The End code.google.com

119 Questions Q&A

Overview of CS 282 & Android

Overview of CS 282 & Android Overview of CS 282 & Android Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282

More information

Deep Inside Android. OpenExpo 2008 - Zurich September 25 th, 2008. Gilles Printemps - Senior Architect. Copyright 2007 Esmertec AG.

Deep Inside Android. OpenExpo 2008 - Zurich September 25 th, 2008. Gilles Printemps - Senior Architect. Copyright 2007 Esmertec AG. Deep Inside Android OpenExpo 2008 - Zurich September 25 th, 2008 Copyright 2007 Esmertec AG Jan 2007 Gilles Printemps - Senior Architect Agenda What is Android? The Android platform Anatomy of an Android

More information

Android Basics. Xin Yang 2016-05-06

Android Basics. Xin Yang 2016-05-06 Android Basics Xin Yang 2016-05-06 1 Outline of Lectures Lecture 1 (45mins) Android Basics Programming environment Components of an Android app Activity, lifecycle, intent Android anatomy Lecture 2 (45mins)

More information

Programming the Android Platform. Logistics

Programming the Android Platform. Logistics Programming the Android Platform CMSC498G Logistics Professor Adam Porter 4125 AVW aporter@cs.umd.edu Course meets W 3:00 3:50 in CSI 3118 1 Goals Learn more about Mobile devices Mobile device programming

More information

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

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi An Introduction to Android Application Serdar Akın, Haluk Tüfekçi ARDIC ARGE http://www.ardictech.com April 2011 Environment Programming Languages Java (Officially supported) C (Android NDK Needed) C++

More information

Android Operating System:

Android Operating System: Android Operating System: An in depth introduction CS423 Project Mohammad Alian, Shuomeng Guang, Bo Teng Outline 1. What is Android 2. History 3. Android architecture 4. Android vs Linux 5. Process Management

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

An Introduction to Android

An Introduction to Android An Introduction to Android Michalis Katsarakis M.Sc. Student katsarakis@csd.uoc.gr Tutorial: hy439 & hy539 16 October 2012 http://www.csd.uoc.gr/~hy439/ Outline Background What is Android Android as a

More information

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

Overview. The Android operating system is like a cake consisting of various layers. The Android Stack Overview The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose but the layers are not always cleanly separated and

More information

Android Architecture. Alexandra Harrison & Jake Saxton

Android Architecture. Alexandra Harrison & Jake Saxton Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003

More information

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

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications Mobile Devices - An Introduction to the Android Operating Environment Design, Architecture, and Performance Implications Dominique A. Heger DHTechnologies (DHT) dheger@dhtusa.com 1.0 Introduction With

More information

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

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications Mobile Devices - An Introduction to the Android Operating Environment - Design, Architecture, and Performance Implications 1.0 Introduction With the worldwide proliferation of mobile devices, reliability,

More information

Android on i.mx Applications Processors

Android on i.mx Applications Processors 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

More information

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

OMX, Android, GStreamer How do I decide what to use? 15 July 2011 OMX, Android, GStreamer How do I decide what to use? 15 July 2011 When to use which framework? Android (easiest) Customer wants a full featured media player with minimal trouble and no prior knowledge

More information

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

Research and Design of Universal and Open Software Development Platform for Digital Home Research and Design of Universal and Open Software Development Platform for Digital Home CaiFeng Cao School of Computer Wuyi University, Jiangmen 529020, China cfcao@126.com Abstract. With the development

More information

Creating and Using Databases for Android Applications

Creating and Using Databases for Android Applications Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea sunguk@rist.re.kr *Correspondent Author: Sunguk Lee* (sunguk@rist.re.kr)

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

A Look through the Android Stack

A Look through the Android Stack A Look through the Android Stack A Look through the Android Stack Free Electrons Maxime Ripard Free Electrons Embedded Linux Developers c Copyright 2004-2012, Free Electrons. Creative Commons BY-SA 3.0

More information

A Short Introduction to Android

A Short Introduction to Android A Short Introduction to Android Notes taken from Google s Android SDK and Google s Android Application Fundamentals 1 Plan For Today Lecture on Core Android Three U-Tube Videos: - Architecture Overview

More information

An Introduction to Android. Huang Xuguang Database Lab. Inha University 2009.11.2 Email: xuguanghuang@yahoo.cn

An Introduction to Android. Huang Xuguang Database Lab. Inha University 2009.11.2 Email: xuguanghuang@yahoo.cn An Introduction to Android Huang Xuguang Database Lab. Inha University 2009.11.2 Email: xuguanghuang@yahoo.cn Outline Background What is Android? Development for Android Background Internet users and Mobile

More information

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

Android Application Development. Daniel Switkin Senior Software Engineer, Google Inc. Android Application Development Daniel Switkin Senior Software Engineer, Google Inc. Goal Get you an idea of how to start developing Android applications Introduce major Android application concepts Walk

More information

The Android Platform

The Android Platform The Android Platform F. Mallet Frederic.Mallet@unice.fr Université Nice Sophia Antipolis A software stack for mobile devices The Android Platform OS kernel, system libraries, application frameworks & key

More information

Android Operating System

Android Operating System Prajakta S.Adsule Student-M.B.A.[I.T.] BharatiVidyapeeth Deemed University,Pune(india) praju_hiramani@yahoo.co.in Mob. No. 9850685985 Android Operating System Abstract- Android operating system is one

More information

Android Virtualization from Sierraware. Simply Secure

Android Virtualization from Sierraware. Simply Secure Android Virtualization from Sierraware Simply Secure Integration Challenges DRM Mandates TrustZone TEE Hypervisor provides the flexibility and security needed for BYOD Power management, responsibility

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development Mobile Development Trends Need an App... 3 4 Popular Devices in Latvia

More information

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

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет Технологии Java Android: Введение Санкт-Петербургский Государственный Политехнический Университет Кузнецов Андрей Николаевич 1 2 Архитектура ОС Android See http://www.android-app-market.com/android-architecture.html

More information

Performance Analysis of Android Platform

Performance Analysis of Android Platform Performance Analysis of Android Platform Jawad Manzoor EMDC 21-Nov-2010 Table of Contents 1. Introduction... 3 2. Android Architecture... 3 3. Dalvik Virtual Machine... 4 3.1 Architecture of Dalvik VM...

More information

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

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

ANDROID OPERATING SYSTEM

ANDROID OPERATING SYSTEM ANDROID OPERATING SYSTEM Himanshi Grover,Devesh Agrawal IT Department, Dronacharya College Of Engg Gurgaon,Haryana,India Abstract - Android has become need rather than luxury these days. The computing

More information

Running Android Applications on BlackBerry 10 developer.blackberry.com/android

Running Android Applications on BlackBerry 10 developer.blackberry.com/android Running Android Applications on BlackBerry 10 developer.blackberry.com/android James Dreher Application Development Consultant BlackBerry Developer Relations Overview BB Runtime for Android Apps Upcoming

More information

Development. SriSeshaa Technologies. Table of Contents

Development. SriSeshaa Technologies. Table of Contents SriSeshaa Technologies Development Table of Contents SriSeshaa Android Development... 2 Introduction to Android... 3 SriSeshaa Capabilities... 3 SriSeshaa Android Case Studies... 5 Privacy Guard... 5 Backup

More information

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,

More information

Introduction to Android

Introduction to Android Introduction to Android Poll How many have an Android phone? How many have downloaded & installed the Android SDK? How many have developed an Android application? How many have deployed an Android application

More information

Using Chroot to Bring Linux Applications to Android

Using Chroot to Bring Linux Applications to Android Using Chroot to Bring Linux Applications to Android Mike Anderson Chief Scientist The PTR Group, Inc. mike@theptrgroup.com Copyright 2013, The PTR Group, Inc. Why mix Android and Linux? Android under Linux

More information

Mobile Operating Systems. Week I

Mobile Operating Systems. Week I Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone

More information

Mobile Phones Operating Systems

Mobile Phones Operating Systems Mobile Phones Operating Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-05-28 José Costa (DEI/IST) Mobile Phones Operating

More information

ODROID Multithreading in Android

ODROID Multithreading in Android Multithreading in Android 1 Index Android Overview Android Stack Android Development Tools Main Building Blocks(Activity Life Cycle) Threading in Android Multithreading via AsyncTask Class Multithreading

More information

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

Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu ) Graduate presentation for CSCI 5448 By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu ) Content What is Android?? Versions and statistics Android Architecture Application Components Inter Application

More information

Android Architecture Diagram:

Android Architecture Diagram: Android News Android Development Make Money FEB 17 2012 Android Architecture The Key Concepts of Android OS In the earlier post on Android Development, we ve learned how to install and setup a complete

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

Introduction to Android

Introduction to Android Introduction to Android Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering October 19, 2015 Outline 1 What is Android? 2 Development on Android 3 Applications:

More information

Inside Android's UI Embedded Linux Conference Europe 2012 Karim Yaghmour @karimyaghmour

Inside Android's UI Embedded Linux Conference Europe 2012 Karim Yaghmour @karimyaghmour Inside Android's UI Embedded Linux Conference Europe 2012 Karim Yaghmour @karimyaghmour karim.yaghmour@opersys.com 1 These slides are made available to you under a Creative Commons ShareAlike 3.0 license.

More information

Android Programming and Security

Android Programming and Security Android Programming and Security Dependable and Secure Systems Andrea Saracino andrea.saracino@iet.unipi.it Outlook (1) The Android Open Source Project Philosophy Players Outlook (2) Part I: Android System

More information

Architecture (SOSP 2011) 11/11/2011 Minsung Jang

Architecture (SOSP 2011) 11/11/2011 Minsung Jang Cells: A Virtual Mobile Smartphone Architecture (SOSP 2011) Lunch TimeReading Group 11/11/2011 Minsung Jang Summary Novel Architecture for a Virtual Phone How to do away with overhead New way to virtualize

More information

Android Architecture For Beginners

Android Architecture For Beginners Leon Romanovsky leon@leon.nu www.leon.nu April 22, 2013 Introduction Linux-based operating system with market share - 69.70% in smartphones, 42% in tablets, available on smart TVs and mini PC. History

More information

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Lecture 17: Mobile Computing Platforms: Android Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Mobile applications vs. traditional applications Traditional model of computing: an OS (Linux / Windows),

More information

Software development. Development requirements. Java. Android SDK. Eclipse IDE (optional)

Software development. Development requirements. Java. Android SDK. Eclipse IDE (optional) Android Programming Software development Development requirements Java Android SDK Eclipse IDE (optional) Software development IDE and Tools Android SDK Class Library Developer Tools dx Dalvik Cross-Assembler

More information

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

Application of Android OS as Real-time Control Platform** AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 2 http://dx.doi.org/10.7494/automat.2013.17.2.197 Krzysztof Ko³ek* Application of Android OS as Real-time Control Platform** 1. Introduction An android operating

More information

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY Suhas Holla #1, Mahima M Katti #2 # Department of Information Science & Engg, R V College of Engineering Bangalore, India Abstract In the advancing

More information

Google s Android: An Overview

Google s Android: An Overview Google s Android: An Overview Yoni Rabkin yonirabkin@member.fsf.org This work is licensed under the Creative Commons Attribution 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.5/.

More information

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

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG 1 Virtualization: Hypervisors for Embedded and Safe Systems Hanspeter Vogel Triadem Solutions AG 2 Agenda Use cases for virtualization Terminology Hypervisor Solutions Realtime System Hypervisor Features

More information

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based

More information

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you? BogDan Vatra and Andy Gryc Qt on Android: Is it right for you? Coffee and Code sessions Free, three-hour, hands-on session that delves into the internals of Qt on Android. Learn how to: set up the Qt development

More information

Android for the Enterprise and OEMs. Peter Vescuso Black Duck Software

Android for the Enterprise and OEMs. Peter Vescuso Black Duck Software Android for the Enterprise and OEMs Peter Vescuso Black Duck Software About Black Duck Software Build better software faster by automating and managing the acquisition and governance of open source OSS

More information

Des Moines Area Community College

Des Moines Area Community College Des Moines Area Community College Course Information EFFECTIVE FL 2012-01 Acronym/Number MDT 210 Historical Ref Title Android App Development II Credit breakout 3 3 0 0 0 (credit lecture lab practicum

More information

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi ANDROID PROGRAMMING - INTRODUCTION Roberto Beraldi Introduction Android is built on top of more than 100 open projects, including linux kernel To increase security, each application runs with a distinct

More information

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

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile

More information

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

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012 Android Development Lecture 1 Android SDK & Development Environment Università Degli Studi di Parma Lecture Summary - 2 The Android Platform Android Environment Setup SDK Eclipse & ADT SDK Manager Android

More information

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

Here to take you beyond Mobile Application development using Android Course details Here to take you beyond Mobile Application development using Android Course details Mobile Application Development using Android Objectives: To get you started with writing mobile application using Android

More information

Introduction to Android

Introduction to Android Introduction to Android Ref: Wei-Meng Lee, BEGINNING ANDROID 4 APPLICATION DEVELOPMENT, Ch1, John Wiley & Sons, 2012 1. What is Android Android is a mobile operating system that is based on a modified

More information

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 1 Goals of the Lecture Present an introduction to the Android Framework Coverage of the framework will be

More information

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus 6111 E. Skelly Drive P. O. Box 477200 Tulsa, OK 74147-7200 INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus Course Number: APD-0248 OHLAP Credit: No OCAS Code: None Course Length: 120 Hours Career Cluster:

More information

Issues in Android on Mobile Platform and Their Resolution

Issues in Android on Mobile Platform and Their Resolution Issues in Android on Mobile Platform and Their Resolution 1 Monika A. Ganpate, 2 Dipika R. Shinde 1, 2 Institute of Management and Computer Studies, Thane (West), India, University of Mumbai, India Abstract:

More information

Linux based 3G Multimedia Mobile-phone Reference Architecture Specification

Linux based 3G Multimedia Mobile-phone Reference Architecture Specification Linux based 3G Multimedia Mobile-phone Reference Architecture Specification Draft 1.0 NEC Corporation Panasonic Mobile Communication Ltd. Contents Preface...iii 1. Introduction...1 2. Scope...1 3. Reference...1

More information

CS378 -Mobile Computing. Android Overview and Android Development Environment

CS378 -Mobile Computing. Android Overview and Android Development Environment CS378 -Mobile Computing Android Overview and Android Development Environment What is Android? A software stack for mobile devices that includes An operating system Middleware Key Applications Uses Linux

More information

TUTORIALS AND QUIZ ANDROID APPLICATION SANDEEP REDDY PAKKER. B. Tech in Aurora's Engineering College, 2013 A REPORT

TUTORIALS AND QUIZ ANDROID APPLICATION SANDEEP REDDY PAKKER. B. Tech in Aurora's Engineering College, 2013 A REPORT TUTORIALS AND QUIZ ANDROID APPLICATION by SANDEEP REDDY PAKKER B. Tech in Aurora's Engineering College, 2013 A REPORT submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE

More information

Running a Program on an AVD

Running a Program on an AVD Running a Program on an AVD Now that you have a project that builds an application, and an AVD with a system image compatible with the application s build target and API level requirements, you can run

More information

Mobile Operating Systems Lesson 05 Windows CE Part 1

Mobile Operating Systems Lesson 05 Windows CE Part 1 Mobile Operating Systems Lesson 05 Windows CE Part 1 Oxford University Press 2007. All rights reserved. 1 Windows CE A 32 bit OS from Microsoft Customized for each specific hardware and processor in order

More information

How to Run Your Existing Android APK on the Tizen Platform. Chandra Bajpai Matt O Keefe OpenMobile World Wide www.openmobileww.com

How to Run Your Existing Android APK on the Tizen Platform. Chandra Bajpai Matt O Keefe OpenMobile World Wide www.openmobileww.com How to Run Your Existing Android APK on the Tizen Platform Chandra Bajpai Matt O Keefe OpenMobile World Wide www.openmobileww.com OpenMobile Speakers Chandra Bajpai Vice President of New Technologies Matthew

More information

ANDROID. Programming basics

ANDROID. Programming basics ANDROID Programming basics Overview Mobile Hardware History Android evolution Android smartphone overview Hardware components at high level Operative system Android App development Why Android Apps? History

More information

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable

More information

An Android Multimedia Framework based on Gstreamer

An Android Multimedia Framework based on Gstreamer An Android Multimedia Framework based on Gstreamer Hai Wang 1, Fei Hao 2, Chunsheng Zhu 3, Joel J. P. C. Rodrigues 4, and Laurence T. Yang 3 1 School of Computer Science, Wuhan University, China hkhaiwang@gmail.com

More information

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

What else can you do with Android? Inside Android. Chris Simmonds. Embedded Linux Conference Europe 2010. Copyright 2010, 2net Limited. What else can you do with Android? Chris Simmonds Embedded Linux Conference Europe 2010 Copyright 2010, 2net Limited 1 Overview Some background on Android Quick start Getting the SDK Running and emulated

More information

Android (Basic + Advance) Application Development

Android (Basic + Advance) Application Development Android (Basic + Advance) Application Development You will learn how to create custom widgets, create animations, work with camera, use sensors, create and use advanced content providers and much more.

More information

Android Security (and Not) Internals

Android Security (and Not) Internals Android Security (and Not) Internals Yury Zhauniarovich Version 1.01 Android Security (and Not) Internals Limit of Liability/Disclaimer of Warranty: The author does not guarantee the accuracy or completeness

More information

Android 5.0: Lollipop OS

Android 5.0: Lollipop OS IJISET - International Journal of Innovative Science, Engineering & Technology, Vol. 2 Issue 6, June 2015. www.ijiset.com Android 5.0: Lollipop OS ISSN 2348 7968 Meenakshi M.Tech Student, Department of

More information

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

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development Android Development Lecture AD 0 Android SDK & Development Environment 2013/2014 Parma Università degli Studi di Parma Lecture Summary Android Module Overview The Android Platform Android Environment Setup

More information

A Survey on Android vs. Linux

A Survey on Android vs. Linux A Survey on Android vs. Linux Frank Maker 1 and Yu-Hsuan Chan 2 Department of Electrical and Computer Engineering, University of California, Davis 1 Department of Computer Science, University of California,

More information

Android builders summit The Android media framework

Android builders summit The Android media framework Android builders summit The Android media framework Author: Bert Van Dam & Poornachandra Kallare Date: 22 April 2014 Usage models Use the framework: MediaPlayer android.media.mediaplayer Framework manages

More information

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based

More information

imaginea white paper

imaginea white paper white paper Building Mobile Android Applications Even though Android was created for handsets, there is a great opportunity for developing other innovative devices on the Android platform with significant

More information

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring Chanmin Yoon*, Dongwon Kim, Wonwoo Jung, Chulkoo Kang, Hojung Cha Dept. of Computer Science Yonsei

More information

STLinux Software development environment

STLinux Software development environment STLinux Software development environment Development environment The STLinux Development Environment is a comprehensive set of tools and packages for developing Linux-based applications on ST s consumer

More information

Remote Desktop on Mobile

Remote Desktop on Mobile Remote Desktop on Mobile SonamGavhane RasikaPhanse Monica Sadafule B.W.Balkhande Abstract In This paper we will see how the remote Desktop with static IP can be accessed using Android based mobile phones,to

More information

Multithreading and Java Native Interface (JNI)!

Multithreading and Java Native Interface (JNI)! SERE 2013 Secure Android Programming: Best Practices for Data Safety & Reliability Multithreading and Java Native Interface (JNI) Rahul Murmuria, Prof. Angelos Stavrou rmurmuri@gmu.edu, astavrou@gmu.edu

More information

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP) Android Syllabus Pre-requisite: C, C++, Java Programming JAVA Concepts OOPs Concepts Inheritance in detail Exception handling Packages & interfaces JVM &.jar file extension Collections HashTable,Vector,,List,

More information

Developing Android Apps for BlackBerry 10. JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012

Developing Android Apps for BlackBerry 10. JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012 Developing Android Apps for BlackBerry 10 JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012 Overview What is the BlackBerry Runtime for Android Apps? Releases and Features New Features Demo Development

More information

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

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd. Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps Hyeokgon Ryu, Infraware Technology, Ltd. Talking about Needs of Automated Converting from Android To Tizen Introduce

More information

Disclaimer: The contents in this document are only my personal opinions, do not reflect the opinions of my employer or anyone else.

Disclaimer: The contents in this document are only my personal opinions, do not reflect the opinions of my employer or anyone else. Disclaimer: The contents in this document are only my personal opinions, do not reflect the opinions of my employer or anyone else. Android overview From a system design perspective Xiao-Feng Li xiaofeng.li@gmail.com

More information

Workshop on Android and Applications Development

Workshop on Android and Applications Development Workshop on Android and Applications Development Duration: 2 Days (8 hrs/day) Introduction: With over one billion devices activated, Android is an exciting space to make apps to help you communicate, organize,

More information

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Performance Optimization and Debug Tools for mobile games with PlayCanvas Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with

More information

Android for Java Developers OSCON 2010. Marko Gargenta Marakana

Android for Java Developers OSCON 2010. Marko Gargenta Marakana Android for Java Developers OSCON 2010 Marko Gargenta Marakana About Marko Gargenta Developed Android Bootcamp for Marakana. Trained over 1,000 developers on Android. Clients include Qualcomm, Sony-Ericsson,

More information

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9 SECOND EDITION Programming Android kjj *J} Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii Parti.

More information

Introduction to Android

Introduction to Android Introduction to Android 26 October 2015 Lecture 1 26 October 2015 SE 435: Development in the Android Environment 1 Topics for Today What is Android? Terminology and Technical Terms Ownership, Distribution,

More information

ANDROID INTRODUCTION TO ANDROID

ANDROID INTRODUCTION TO ANDROID ANDROID JAVA FUNDAMENTALS FOR ANDROID Introduction History Java Virtual Machine(JVM) JDK(Java Development Kit) JRE(Java Runtime Environment) Classes & Packages Java Basics Data Types Variables, Keywords,

More information

Building an Android client. Rohit Nayak Talentica Software

Building an Android client. Rohit Nayak Talentica Software Building an Android client Rohit Nayak Talentica Software Agenda iphone and the Mobile App Explosion How mobile apps differ Android philosophy Development Platform Core Android Concepts App Demo App Dissection

More information

CELLS A Virtual Mobile Smartphone Architecture

CELLS A Virtual Mobile Smartphone Architecture CELLS A Virtual Mobile Smartphone Architecture Jeremy Andrus, Christoffer Dall, Alexander Van t Hof, Oren Laadan, Jason Nieh Columbia University 23rd ACM Symposium on Operating Systems Principles, Cascais,

More information

Praktikum Entwicklung Mediensysteme (für Master)

Praktikum Entwicklung Mediensysteme (für Master) Praktikum Entwicklung Mediensysteme (für Master) An Introduction to Android An Introduction to Android What is Android? Installation Getting Started Anatomy of an Android Application Life Cycle of an Android

More information

Praktikum Entwicklung von Mediensystemen (Android)

Praktikum Entwicklung von Mediensystemen (Android) Praktikum Entwicklung von Mediensystemen (Android) Wintersemester 2014/15 Daniel Buschek, Dr. Alexander De Luca, Raphael Kösters Today Organization Android 101 Hands-On Assignment 01 October 9, 2014 PEM

More information