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

Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

  • Upload
    hangoc

  • View
    221

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Programming with Android: System Architecture

Luca Bedogni Marco Di Felice

Dipartimento di Scienze dell’Informazione Università di Bologna

Page 2: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 2

Outline

Android Components: Content Providers

Android Components: Services

Android Components: Intents

Android Components: Activities

Android Dalvik Java Virtual Machine

Android Architecture: An Overview

Android Application Distribution and Markets

Page 3: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 3

Android … What? v Android is a Linux-based platform for mobile

devices …

§  Operating System §  Middleware §  Applications §  Software Development Kit (SDK)

v  Which kind of mobile devices … (examples)

SMARTPHONES TABLETS EREADERS ANDROID TV GOOGLE GLASSES ?

Page 4: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 4

Android … What?

SMARTPHONES TABLETS EREADERS ANDROID TV GOOGLE GLASSES ?

SMART FRIDGE

ANDROID MICROWAVE

Page 5: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 5

Android … When?

Ø 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

2005

2006

2007

2008

2009

Time

Page 6: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 6

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

Page 7: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 7

Android … When?

Ø Android 4.4 (Kitkat) Released

Ø Wireless printing capability Ø Ability for applications to use "immersive mode” Ø Performance optimization Ø New experimental runtime virtual machine, ART…

API Level 19 (Android 4.4):

Ø  Support to new embedded sensors (e.g. STEP_DETECTOR)

Ø  Adaptive video playback functionalities Ø  Read and write SMS and MMS messages (managing default text messaging client)

2012

2013

Time

ANDROID 5.0

2014

Page 8: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 8

Android … market share

Page 9: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 9

Android … heterogeneity ht

tp://

open

sign

al.c

om/re

ports

/frag

men

tatio

n-20

13/

11,868 different devices in 2013!

Page 10: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 10

Android … heterogeneity

24,093 different devices in 2015!

http

://op

ensi

gnal

.com

/repo

rts/2

015/

08/a

ndro

id-fr

agm

enta

tion/

Page 11: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 11

Android … heterogeneity

24,093 different devices in 2015!

http

://op

ensi

gnal

.com

/repo

rts/2

015/

08/a

ndro

id-fr

agm

enta

tion/

Page 12: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 12

Android … heterogeneity

Page 13: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 13

Android … heterogeneity

2015

2013

Page 14: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 14

Android … heterogeneity

Page 15: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 15

Android … heterogeneity

Page 16: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 16

Android … heterogeneity

http://developer.android.com/about/dashboards/index.html

Page 17: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 17

Android … heterogeneity

Page 18: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 18

Android … heterogeneity

Page 19: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 19

Android … heterogeneity

Page 20: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 20

Android … When?

http://www.appbrain.com/stats/android-market-app-categories

ANDROID APP CATEGORIES

http://www.onlinemarketing-trends.com/2011/07/android-marketplace-top-5-statistics.html

ANDROID APP PRICE

Page 21: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 21

The Android Architecture

} Stack Architecture

Open Source Architecture (Apache/MIT License v. 2.0) Business-friendly License

Page 22: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 22

The Android Architecture

Built on top of Linux kernel (v. 2.6-3.4) Advantages: Ø  Portability (i.e. easy to

compile on different hardware architectures)

Ø  Security (e.g. secure multi-process environment)

Ø  Power Management

Page 23: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 23

The Android Architecture

HAL Advantages: Ø  Shadows the real device

Ø  Manages different devices of the same type

Page 24: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 24

The Android Architecture

Native Libraries (C/C++ code) Ø  Graphics (Surface Manager)

Ø  Multimedia (Media Framework)

Ø  Database DBMS (SQLite)

Ø  Font Management (FreeType)

Ø  WebKit

Ø  C libraries (Bionic)

Ø  ….

Page 25: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 25

The Android Architecture

Application Libraries (Core Components of Android) Ø  Activity Manager

Ø  Packet Manager

Ø  Telephony Manager

Ø  Location Manager

Ø  Contents Provider

Ø  Notification Manager

Ø  ….

Page 26: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 26

The Android Architecture

Applications (Written in Java code) Ø  Android Play Store

Ø  Entertainment

Ø  Productivity

Ø  Personalization

Ø  Education

Ø  Geo-communication

Ø  ….

Page 27: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 27

The Android Architecture

Dalvik Virtual Machine (VM) Ø  Novel Java Virtual

Machine implementation (not using the Oracle JVM)

Ø  Open License (Oracle JVM is not open!)

Ø  Optimized for memory-constrained devices

Ø  Faster than Oracle JVM

Ø  ….

Page 28: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 28

Dalvik Java Virtual Machine (JVM)

Java Source Code

Java Byte Code

Java Virtual Machine (JVM)

Java Source Code

Java Byte Code

Dalvik Byte Code

Dalvik Virtual Machine (VM)

Java Compiler

Java Compiler

Dex Compiler

Stack-based byte-code

Register-based byte-code

Java Standard Edition

Page 29: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 29

Android Applications Design

Ø GUI Definition

Ø Events Management

Ø Application Data Management

Ø Background Operations

Ø User Notifications

APPLICATION DESIGN:

Page 30: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 30

Android Applications Design

Ø Activities & Fragments

Ø Intents

Ø Services

Ø Content Providers

Ø  Broadcast Receivers

APPLICATION COMPONENTS

Page 31: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 31

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

Page 32: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 32

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:

Example: Button button=new Button (this); TextView text= new TextView(); text.setText(“Hello world”);

PROGRAMMATIC APPROACH

Page 33: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 33

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:

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” />

DECLARATIVE APPROACH

Page 34: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 34

-  Build the application layout through XML files (like HTML)

-  Define two different XML layouts for two different devices

-  At runtime, Android detects the current device configuration and loads the appropriate resources for the application

-  No need to recompile! -  Just add a new XML file if you

need to support a new device

EXAMPLE

Device 1 HIGH screen pixel density

Device 2 LOW screen pixel density

XML Layout File Device 1

XML Layout File Device 2

Java App Code

Android Components: Activities

Page 35: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 35

Android Components: Activities

Ø Android applications typically use both the approaches!

DECLARATIVE APPROACH

PROGRAMMATIC APPROACH

Define the Application layouts and resources used by the Application (e.g. labels).

Manages the events, and handles the interaction with the user.

XML Code

Java Code

Page 36: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 36

Android Components: Activities

Ø Views can generate events (caused by human interactions) that must be managed by the Android-developer.

public void onClick(View arg0) { if (arg0 == Button) { // Manage Button events }

}

ESEMPIO

But

ton

Text

Edi

t

Page 37: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 37

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 …)

Page 38: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 38

Android Components: Activities

Ø Main difference between Android-programming and Java (Oracle) -programming:

Ø Mobile devices have constrained resource capabilities!

Ø Activity lifetime depends on users’ choice (i.e. change of visibility) as well as on system contraints (i.e. memory shortage).

Ø Developer must implement lifecycle methods to account for state changes of each Activity …

Page 39: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 39

Android Components: Activities

public  class  MyApp  extends  Activity  {    

 public  void  onCreate()  {  ...  }    public  void  onPause()    {  ...  }    public  void  onStop()      {  ...  }    public  void  onDestroy(){  ...  }    ….  

}  

Called when the Activity is created the first time.

Called when the Activity is partially visible.

Called when the Activity is no longer visible.

Called when the Activity is dismissed.

Page 40: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 40

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

PASSWORD

Login

marco

**********

Welcome Marco!

Login Intent

Act

ivity

1

Act

ivity

2

Page 41: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 41

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”).

View

Implicit Intent

Act

ivity

1

Act

ivity

2 A

ctiv

ity2

Multiple choices might be available

to the user! } Intent- Filters

Page 42: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 42

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

Running

(on background)

onCreate() onStart() onDestroy()

Page 43: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 43

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.

DB

APP insert()

update()

delete()

query()

Content Provider

e.g. Photo Gallery

Page 44: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 44

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

Page 45: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 45

Android Components: Broadcast Receivers

 class  WifiReceiver  extends  BroadcastReceiver  {                  public  void  onReceive(Context  c,  Intent  intent)  {                          String  s  =  new  StringBuilder();                          wifiList  =  mainWifi.getScanResults();                          for(int  i  =  0;  i  <  wifiList.size();  i++){                                  s.append(new  Integer(i+1).toString()  +  ".");                                  s.append((wifiList.get(i)).toString());                                  s.append("\\n");                          }                          mainText.setText(sb);                  }          }  

BROADCAST RECEIVER example

Page 46: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 46

Android Components: System API

Ø Using the components described so far, Android applications can then leverage the system API …

Ø  Telephony Manager data access (call, SMS, etc) Ø Sensor management (GPS, accelerometer, etc) Ø Network connectivity (Wifi, bluetooth, NFC, etc) Ø Web surfing (HTTP client, WebView, etc) Ø Storage management (files, SQLite db, etc) Ø ….

SOME EXAMPLEs …

Page 47: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 47

Android Components: Google API

Ø … or easily interface with other Google services:

Page 48: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 48

Ø 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

XML Files

C

Android Application Distribution

Page 49: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 49

Android Application Distribution

Ø Each application must be signed through a key before being distributed.

Ø Applications can be distributed via Web or via Stores.

Ø Android Play Store: application store run by Google … but several other application stores are available (they are just normal applications).

Page 50: Luca Bedogni Marco Di Felice - Dipartimento di · PDF file# Ability for applications to use "immersive mode” ... # Education # Geo-communication # ... Luca Bedogni, Marco Di Felice

Luca Bedogni, Marco Di Felice - Programming with Android – System Architecture 50

Android Application Security

Ø Android applications run with a distinct system identity (Linux user ID and group ID), in an isolated way.

Ø Applications must explicitly share resources and data. They do this by declaring the permissions they need for additional capabilities. Ø Applications statically declare the permissions they require. Ø User must give his/her consensus during the installation.

<uses-­‐permission  android:name=“android.permission.IACCESS_FINE_LOCATION"  />    <uses-­‐permission  android:name=“android.permission.INTERNET"  />  

ANDROIDMANIFEST.XML