21
Android Middleware

Synapseindia android middleware

Embed Size (px)

Citation preview

Page 1: Synapseindia android middleware

Android Middleware

Page 2: Synapseindia android middleware

Android System Architecture

Source: Google

Page 3: Synapseindia android middleware

overview

• Linux Kernel: memory management, process

management, networking, and other operating system services.

• Native Libraries: written in C or C++, including: Surface Manager, 2D and 3D graphics, Media codes, SQL database, Browser engine, etc. only to be called by higher level programs

Page 4: Synapseindia android middleware

overview

• Android Runtime: including the Dalvik virtual machine and the core Java libraries. (not J2SE/J2ME)

• Application Framework: Activity manager, Content providers, Resource manager, Notification manager

• Applications and Widgets: the real programs display information and interact with users.

Page 5: Synapseindia android middleware

Media Framework

• Android use OpenCore as core component of Media framework

• OpenCore supports MP3, AAC, AAC+, 3GPP, MPEG-4 and JPEG,

Page 6: Synapseindia android middleware

Media Framework

Page 7: Synapseindia android middleware

Media Framework

• Example: • MediaPlayer mp = new MediaPlayer(); • mp.setDataSource(PATH_TO_FILE); • mp.prepare(); • mp.start();

Page 8: Synapseindia android middleware

Media Framework

• OpenCore lib has a C/S Architecture.• MediaPlayer invoke JNI to manipulate client.• The client request to the server to control

hardwares.

Page 9: Synapseindia android middleware

Media Framework

Page 10: Synapseindia android middleware

Media Framework

Page 11: Synapseindia android middleware

Activity Manager

• each user interface screen is represented by an Activity class.

• Each activity has its own life cycle.• Activity uses Intent object to jump between

them.

Page 12: Synapseindia android middleware

Life cycle of activity

Source: Hello Adroid

Page 13: Synapseindia android middleware

Intent and Intent filters

• Intent activates activities, services, and broadcast receivers.

• Intent can be used in explicit way or implicit way.

• The implicit way depends on parameters: Action, Data(url and MIME type) , Category

Page 14: Synapseindia android middleware

Intent and Intent filters

• To receive other components' request, components’ need to register filters at activities framework.

• When launch a intent object, framework will match and find the qualified components and leave them for users to choose which to run.

Page 15: Synapseindia android middleware

Intent and Intent filters

• Example

• <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.EDIT" /> <action android:name="android.intent.action.PICK" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /> </intent-filter>

Page 16: Synapseindia android middleware

Activities and Tasks

• A task is a stack which contain several activities share the same affinity.

Source: http://blog.akquinet.de/2010/02/17/android-activities-the-predominance-of-the-ui-thread/

Page 17: Synapseindia android middleware

Activities and Tasks

• There are four different launch modes that can be assigned to an <activity> element's launchMode attribute:

• "standard" (the default mode) "singleTop" "singleTask" "singleInstance"

• First two share the same affinity with application, the others don’t.

Page 18: Synapseindia android middleware

Content manager

• Manage data• Client+server architecture. • Content Resolver provides API interface for

applications.• Content Providers is the server managing the

DB tables and database content with different application.

Page 19: Synapseindia android middleware

Content manager

• URI identifies the data or the table

• A: Standard prefix indicating that the data is controlled by a content provider.

• B: The authority part of the URI; it identifies the content provider.

• C: The path that the content provider uses to determine what kind of data is being requested.

• D: The ID of the specific record being requested.

Source: Google

Page 20: Synapseindia android middleware

Service Lifecycle

Page 21: Synapseindia android middleware

Security and permissions

• security between applications and the system is enforced at the process level through standard Linux facilities

• Application can't disrupt other applications, except by explicitly declaring the permissions it

• Each Android package is given its own unique Linux user ID