Android Overview. Android (Google) is a widely anticipated open source operating system for mobile devices, Supporting Bluetooth ( wireless for short.

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.
Android OS : Core Concepts Dr. Jeyakesavan Veerasamy Sr. Lecturer University of Texas at Dallas
Application Fundamentals Android Development. Announcements Posting in D2L Tutorials.
What is Android?.
Android architecture overview
Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Android Platform Overview (1)
DEPARTMENT OF COMPUTER ENGINEERING
Android 101 Application Fundamentals January 29, 2010.
Mobile Application Development
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Introduction to Android Platform Overview
@2011 Mihail L. Sichitiu1 Android Introduction Application Fundamentals.
Android Security Enforcement and Refinement. Android Applications --- Example Example of location-sensitive social networking application for mobile phones.
Android Overview Android (Google) is a widely anticipated open source operating system for mobile devices, Supporting Bluetooth ( wireless for short distance)
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
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
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.
Android Introduction Based on slides made by
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
01. Introduction to Android Prof. Oum Saokosal Master of Engineering in Information Systems, South Korea
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
CS378 - Mobile Computing Intents.
Android for Java Developers Denver Java Users Group Jan 11, Mike
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
10/10/2015 E.R.Edwards 10/10/2015 Staffordshire University School of Computing Introduction to Android Overview of Android System Android Components Component.
Overview of Android Application Development
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
Mobile Application Security on Android Originally presented by Jesse Burns at Black Hat
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
Wireless and Mobile Security
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
1 Android Development Lean and mean introduction Based on a presentation by Mihail L. Sichitiu.
Lecture 2: Android Concepts
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
Android Mobile Application Development
Android Application -Architecture.
Android Application Development 1 6 May 2018
Visit for more Learning Resources
Understanding Android Security
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
CMPE419 Mobile Application Development
Application Fundamentals
Application Development A Tutorial Driven Course
Android Introduction Platform Mihail L. Sichitiu.
Understanding Android Security
Android Platform, Android App Basic Components
Emerging Platform#3 Android & Programming an App
Introduction to Android
Application Fundamentals
Android Overview.
CMPE419 Mobile Application Development
Presentation transcript:

Android Overview

Android (Google) is a widely anticipated open source operating system for mobile devices, Supporting Bluetooth ( wireless for short distance) Wi-Fi (wireless for 150 feet indoors, 300 ft outdoors) 3G(200 kbits/sec ) and 4G ( 100 Mbit -1Gbit/sec) Android software stack –Android Linux operating system –Middleware(Dalvik Runtime Optimized Java virtual machineVM, Java API) and Library(Phone, contact, GPS map, SQLite, OpenGL.)

Android Architecture

Linux kernel Layer Android relies on Linux kernel Supplies management of security, memory process, network, and drivers Acts as an abstraction layer between the hardware and the rest of the Android software stack

Library Layer System C libraries and function Libraries, supporting multimedia, web browser, SQLite... Native Services to hardware Android runtime Dalvik Virtual Machine –Executes files in the Dalvik Executable (.dex) format Java core Libraries –Provides most of the functionality of the Java programming language. Java core libraries rely on the Dalvik VM and the underlying Linux kernel Every Android application runs in its own process, with its own instance of the Dalvik virtual machine

Application Framework Layer Simplify the reuse of components –Applications can publish their capabilities and any other application may then make use of those capabilities Applications is a set of services –Views system, content providers, resources managers such as Activity Manager, manages the lifecycle of applications and provides a common navigation backstack Notification Manager, enables all applications to display custom alerts in the status bar Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files Views, used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser

Applications Layer A set of core applications shipped with Android platform –an client, SMS program, calendar, maps, browser, contacts, and others All written in Java User applications are also here

Features of Android Popularity (High market share) AWAT Enabled SMS Enabled GPS Cameras & microphones Open source apps Development with Java Linux based Short learning curve with IDE Java Eclipse IDE for Android app development Easy deployment to mobile device Easy to distribute apps via Android Market Share app, Sell app, Download & reuse open source apps

Cont. Hot job market –Market for mobile software surges from $4.1 billion in 2009 to $17.5 billion by 2012 –2010 Dice.com survey: 60% for Android –Dice.com: mobile app developers made $85,000 in 2010 and salaries expected to rise2

Limitations screen size battery life time processor capacity Slow network access and Web browser Input: soft keyboard, phone keypad, touch screen, or stylus Security

Android App software components –Activity –Service –Broadcast Receiver –Intent –Content Provider Android App Development Tutorial:

Activity Activities provide a user interface for one specific task, Basic component of most applications Most applications have several activities that start each other as needed Each is implemented as a subclass of the base Activity class

Service Services execute background processing, no visual interface Ex: Downloads, Playing Music, TCP/UDP Server You can bind to an existing service, control its operation, and run in background Play music, alarm clock, etc. Secured if using permissions Callers may need to verify that service is the correct one

Content provider Content providers are data storage facilities which supports data exchange between applications Make data available to other applications Transfer data between applications in Android Other applications use a ContentResolver object to access the data provided via a ContentProvider

ContentProviders Generally SQL backend Used to share content between apps Access controlled through permission tags Apps can be dynamically authorized access control –Possible security hole Must protect against SQL injection –verify input using parameterization

Broadcast receivers Broadcast receivers act as mailboxes for messages from other applications. It receives and reacts to broadcast announcements If an app registered the receiver in adv., the event will notify and call back the registered software Ex: Low battery, power connected, shutdown, timezone changed, etc.

Broadcast receivers Act as receivers for multiple components Provide secure IPC Done by specifying permissions on BroadcastReceiver regarding sender Otherwise, behave like activities in terms of IPC –Can’t define permission Don’t send sensitive data

Component life cycle Activities –Can terminate itself via finish(); –Can terminate other activities it started via finishActivity(); Services –Can terminate via stopSelf(); or Context.stopService(); Content Providers –Are only active when responding to ContentResolvers Broadcast Receivers –Are only active when responding to broadcasts

Intent –Intent is a goal action component which takes care of the process of inter-components communication (ICC) –Intent is simply a message object containing a destination component address and data –Protection –Each application executes as its own user identity, such that OS provides system-level isolation; –Android middleware contains a reference monitor that mediates the inter-component communication (ICC).

Intent(cont.) Intent action: –Start an Activity –Broadcast events or changes –Start, stop, resume. or communicate with background Services –Access data held by ContentProviders –Call back to handle events –Carry data with Extras (key, value)

Android component activation An intent is an object which can have a message content and start Activities, services and broadcast receivers - ContentProvider is started by ContentResolvers –An activity is started by Context.startActivity(Intent intent) or Activity.startActivityForResult(Intent intent, int RequestCode) –A service is started by Context.startService(Intent service) –An application can initiate a broadcast by using an Intent in any of Context.sendBroadcast(Intent intent), Context.sendOrderedBroadcast(), and Context.sendStickyBroadcast()

Intent Filters Used to determine recipient of Intent Specify the main entrance for activities A user interface consists of a series of Activities Each Activity is a “screen”. Intent may leave a security flaw (hole) –Solution: Intents explicitly define receiver

@2011 Mihail L. Sichitiu24 Goal Understand applications and their components Concepts: –activity, –service, –broadcast receiver, –content provider, –intent, –AndroidManifest

@2011 Mihail L. Sichitiu25 Applications Written in Java (it’s possible to write native code – will not cover that here) Good separation (and corresponding security) from other applications: –Each application runs in its own process –Each process has its own separate VM –Each application is assigned a unique Linux user ID – by default files of that application are only visible to that application (can be explicitly exported)

26 Application Components Activities – visual user interface focused on a single thing a user can do Services – no visual interface – they run in the background Broadcast Receivers – receive and react to broadcast announcements Content Providers – allow data exchange between applications

27 Activities Basic component of most applications Most applications have several activities that start each other as needed Each is implemented as a subclass of the base Activity class

28 Activities – The View Each activity has a default window to draw in (although it may prompt for dialogs or notifications) The content of the window is a view or a group of views (derived from View or ViewGroup) Example of views: buttons, text fields, scroll bars, menu items, check boxes, etc. View(Group) made visible via Activity.setContentView() method.

29 Services Does not have a visual interface Runs in the background indefinitely Examples –Network Downloads –Playing Music –TCP/UDP Server You can bind to a an existing service and control its operation

30 Broadcast Receivers Receive and react to broadcast announcements Extend the class BroadcastReceiver Examples of broadcasts: –Low battery, power connected, shutdown, timezone changed, etc. –Other applications can initiate broadcasts

31 Content Providers Makes some of the application data available to other applications It’s the only way to transfer data between applications in Android (no shared files, shared memory, pipes, etc.) Extends the class ContentProvider; Other applications use a ContentResolver object to access the data provided via a ContentProvider

32 Intents An intent is an Intent object with a message content. Activities, services and broadcast receivers are started by intents. ContentProviders are started by ContentResolvers: –An activity is started by Context.startActivity(Intent intent) or Activity.startActivityForResult(Intent intent, int RequestCode) –A service is started by Context.startService(Intent service) –An application can initiate a broadcast by using an Intent in any of Context.sendBroadcast(Intent intent), Context.sendOrderedBroadcast(), and Context.sendStickyBroadcast()

33 Shutting down components Activities –Can terminate itself via finish(); –Can terminate other activities it started via finishActivity(); Services –Can terminate via stopSelf(); or Context.stopService(); Content Providers –Are only active when responding to ContentResolvers Broadcast Receivers –Are only active when responding to broadcasts

34 Android Manifest Its main purpose in life is to declare the components to the system:...

35 Intent Filters Declare Intents handled by the current application (in the AndroidManifest):... Shows in the Launcher and is the main activity to start Handles JPEG images in some way

System level protection for Android app Each app runs as a unique user identity such that Android can limit the potential damage of programming flaws. Each app runs in own VM sandbox using unique UID Each app requests a simple permission label assignment model to restrict access to resources and other applications if necessary Ex. of permission: Internet, camera, GPS Permission specifies an access policy to protect its resources.

Android Permissions All permission of Android’s policy are set at install time and can’t change until the application is reinstalled. Android’s permission only restricts access to components and doesn’t currently provide information flow guarantees. A permission is listed in app’s manifest definition XML file. If a public component doesn’t explicitly declare any access permission, Android permits any application to access it. Component A’s ability to access components B and C is determined by comparing the access permission labels on B and C to the collection of permission labels assigned to application A.

Android App Signature All Android applications must be signed, but are usually self-signed Why self signing? –Market ties identity to developer account –No CA in Google, Google does not have central control over the app’s signature certificates –No applications are trusted. No "magic key" What does signing determine? –Author-update –In signature schemes, the private key is used to sign a app or message; anyone can check the signature using the public key.sign

Permissions Levels User can assign permissions to applications at - normal –dangerous –signature –signatureOrSystem ng/building/index.html#detailed-build

Reference _ htmhttp:// _ htm 2. App-Developers-Wanted-at-Ad-Agencies App-Developers-Wanted-at-Ad-Agencies Android Overview, =7&ved=0CEcQFjAG&url=http%3A%2F%2Fai.arizona.edu%2Fmis5 10%2Fslides%2FAndroid%2520Overview.ppt&ei=4HBXUNPvMuPe 0QGm3oCYCg&usg=AFQjCNE2Li9vyh34rECKYDuOjKjI5pjyzw&sig 2=E-wfIL1bPNJacCi6ZaAWCA =7&ved=0CEcQFjAG&url=http%3A%2F%2Fai.arizona.edu%2Fmis5 10%2Fslides%2FAndroid%2520Overview.ppt&ei=4HBXUNPvMuPe 0QGm3oCYCg&usg=AFQjCNE2Li9vyh34rECKYDuOjKjI5pjyzw&sig 2=E-wfIL1bPNJacCi6ZaAWCA 6. Mobile Application Security on Android, Originally presented by Jesse Burns at Black Hat 2009