Programming with Android: System Architecture

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Scienze dellInformazione Università di Bologna.
Programming with Android: Activities and Intents
Programming with Android: Module Overview
Introduction.  Professor  Adam Porter 
David Angulo Rubio ANDROID OS Open Software Platform for Mobile Devices.
Android architecture overview
Android Platform Overview (1)
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
DEPARTMENT OF COMPUTER ENGINEERING
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
Android and Project Structure. Android Android OS – Built on Linux Kernel – Phones – Netbooks – Readers – Other???
Mobile Application Development
Programming with Android: System Architecture
Programming with Android: System Architecture
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Introduction to Android Platform Overview
Getting Started with Android Development Rohit Ghatol.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Android Middleware Bo Pang
Android Introduction Platform Overview.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Mobile Application Development with ANDROID. Agenda Mobile Application Development (MAD) Intro to Android platform Platform architecture Application building.
About me Yichuan Wang Android Basics Credit goes to Google and UMBC.
Mobile Application Development using Android
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
01. Introduction to Android Prof. Oum Saokosal Master of Engineering in Information Systems, South Korea
Presentation Seminar on “IMAGE SLIDER –AN ANDROID APPLICATION”
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
1 Android- Platform Overview. 2 What is Android? Android is a software stack for mobile devices that includes an operating system, middleware and key.
ANDROID OS Architecture
Overview of Android Application Development
ANDROID L. Grewe Components  Java Standard Development Kit (JDK) (download) (latest version)  AndroidStudio.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Android Overview History and architecture. Brief History 1996 The WWW already had websites with color and images But, the best phones displayed a couple.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Android Development For Beginners. What is Android? Android is an open mobile phone platform that was developed by Google and later by Open Handset Alliance.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
By : Abhishek Verma Main Topics : 1. Introduction 2. Platform 3. Software Development 4. Overall Evaluation.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Android. I. What’s Android Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google. Android is designed.
CMPE419 Mobile Application Development Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Android Training in Chandigarh. What is Android Android is a mobile operating system based on the Linux Kernel. The goal of android project is to create.
Presented by: Saurabh Kumar Sinha (MRT07UGBIT 186) IT VII Semester, Shobhit University Meerut.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
A presentation on Android and Android project Around Me
Android Mobile Application Development
Android Application -Architecture.
Visit for more Learning Resources
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
chapter 6- Android Introduction
Android.
Software Engineering in Mobile Computing
Contents: Introduction Different Mobile Operating Systems
CMPE419 Mobile Application Development
Android: System Architecture
ANDROID OS Architecture
Application Development A Tutorial Driven Course
Android Developer Fundamentals V2
Android Introduction Platform Mihail L. Sichitiu.
Emerging Platform#3 Android & Programming an App
Getting Started with Android…
CMPE419 Mobile Application Development
Presentation transcript:

Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell’Informazione Università di Bologna

Outline Android Architecture: An Overview Android Dalvik Java Virtual Machine Android Components: Activities Android Components: Intents Android Components: Services Android Components: Content Providers Android Application Distribution and Markets 2

Which kind of mobile devices … (examples) Android … What? Android is a Linux-based platform for mobile devices … Operating System Middleware Applications Software Development Kit (SDK) Which kind of mobile devices … (examples) SMARTPHONES TABLETS EREADERS 3

Android … When? Google buys Android from the Android Inch 2005 Google buys Android from the Android Inch Open Handset Alliance (OHA) created for open standards for mobile devices. Partners of OHA: Google, Motorola, Samsung, Vodafone, T-Mobile, etc Android 1.0 Released The first Android smartphone: G1 HTC-Dream Android 1.1 Released Android 1.5 (CupCake) Released 2006 2007 2008 2009 Time 4

Android … When? Android 1.6 (Donut) Released Android 2.0 (Eclair) Released Android 2.2 (Froyo) Released Android 2.3 (Gingerbread) Released Android 3.0 (Honeycomb) Released (First version for devices with larger screens such as tablets) Android 4.0 (Ice-Cream Sandwich) Released. (It merges the 3.x tab centric design and the v2.x phone based design into a single version.) 2008 2009 2010 2011 2012 Time 5

Android … When? ANDROID DISTRIBUTIONS ANDROID APPLICATIONS 6 http://www.email-marketing-reports.com/wireless-mobile/smartphone-statistics.htm http://www.appbrain.com/stats/android-market-app-categories 6

The Android Architecture } Stack Architecture Open Source Architecture (Apache/MIT License v. 2.0) Business-friendly License 7

The Android Architecture Built on top of Linux kernel (v. 2.6-3.0) Advantages: Portability (i.e. easy to compile on different harwdare architectures) Security (e.g. secure multi-process environment) Power Management 8

The Android Architecture Native Libraries (C/C++ code) Graphics (Surface Manager) Multimedia (Media Framework) Database DBMS (SQLite) Font Management (FreeType) WebKit C libraries (Bionic) …. 9

The Android Architecture Application Libraries (Core Components of Android) Activity Manager Packet Manager Telephony Manager Location Manager Contents Provide Notification Manager …. 10

The Android Architecture Applications (Written in Java code) Android Market Entertainment Productivity Personalization Education Geo-communication …. 11

The Android Architecture Dalvik Virtual Machine (VM) Novel Java Virtual Machine implementation (not using the Sun JVM) Open License (Sun JVM is not open!) Optimized for memory-constrained devices Faster than Sun JVM …. 12

Dalvik Java Virtual Machine (JVM) Java Source Code Java Source Code Java Standard Edition Java Compiler Java Compiler Java Byte Code Java Byte Code Dex Compiler Stack-based byte-code Dalvik Byte Code Register-based byte-code Java Virtual Machine (JVM) Dalvik Virtual Machine (VM) 13

Android Applications Design APPLICATION DESIGN: GUI Definition Events Management Application Data Management Background Operations User Notifications 14

Android Components: Activities An Activity corresponds to a single screen of the Application. An Application can be composed of multiples screens (Activities). The Home Activity is shown when the user launches an application. Different activities can exhange information one with each other. Hello World! Android HelloWorld Button1 15

Android Components: Activities The Activity Manager is responsible for creating, destroying, managing activities. Activities can be on different states: starting, running, stopped, destroyed, paused. Only one activity can be on the running state at a time. Activities are organized on a stack, and have an event-driven life cycle (details later …) 16

Android Components: Activities Each activity is composed by a list of graphics components. Some of these components (also called Views) can interact with the user by handling events (e.g. Buttons). Two ways to build the graphic interface: PROGRAMMATIC APPROACH Example: Button button=new Button (this); TextView text= new TextView(); text.setText(“Hello world”); 17

Android Components: Activities Each activity is composed by a list of graphics components. Some of these components (also called Views) can interact with the user by handling events (e.g. Buttons). Two ways to build the graphic interface: DECLARATIVE APPROACH Example: < TextView android.text=@string/hello” android:textcolor=@color/blue android:layout_width=“fill_parent” android:layout_height=“wrap_content” /> < Button android.id=“@+id/Button01” android:textcolor=“@color/blue” android:layout_width=“fill_parent” android:layout_height=“wrap_content” /> 18

Android Components: Activities Android applications typically use both the approaches! DECLARATIVE APPROACH Define the Application layouts and resources used by the Application (e.g. labels). XML Code PROGRAMMATIC APPROACH Manages the events, and handles the interaction with the user. Java Code 19

Android Components: Intents Intents: asynchronous messages to activate core Android components (e.g. Activities). Explicit Intent  The component (e.g. Activity1) specifies the destination of the intent (e.g. Activity 2). LOGIN Welcome Marco! marco Activity1 PASSWORD Activity2 ********** Login Intent Login 20

Android Components: Intents Intents: asynchronous messages to activate core Android components (e.g. Activities). Implicit Intent  The component (e.g. Activity1) specifies the type of the intent (e.g. “View a video”). Activity2 Multiple choices might be available to the user! } Intent- Filters Activity1 View Implicit Intent Activity2 21

Android Components: Services Services: like Activities, but run in background and do not provide an user interface. Used for non-interactive tasks (e.g. networking). Service life-time composed of 3 states: Starting Destroyed onCreate() onStart() onDestroy() Running (on background) 22

Android Components: Content Providers Each Android application has its own private set of data (managed through files or through SQLite database). Content Providers: Standard interface to access and share data among different applications. insert() APP update() DB Content Provider delete() query() e.g. Photo Gallery 23

Android Components: Broadcast Receivers Publish/Subscribe paradigm Broadcast Receivers: An application can be signaled of external events. Notification types: Call incoming, SMS delivery, Wifi network detected, etc 24

Android Application Distribution Each Android application is contained on a single APK file. Java Byte-code (compiled for Dalvik JVM) Resources (e.g. images. videos, XML layout files) Libraries (optimal native C/C++ code) APK FILE C XML Files 25

Android Application Distribution Each application must be signed through a key before being distributed. Applications can be distributed via Web or via Markets. Android Market: application store run by Google … but several other application stores are available (they are just normal applications). 26