Vous êtes sur la page 1sur 22

Android Middleware

Bo Pang
Bpang@cc.hut.f

Android System Architecture

Source:
Google

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

overview
Android Runtime: including the Dalvik
virtual machine and the core Java
libraries. (not J2SE/J2ME)
Application Framework: Activity
manager, Content providers, Resource
manager, Notifcation manager
Applications and Widgets: the real
programs display information and
interact with users.

Media Framework
Android use OpenCore as core
component of Media framework
OpenCore supports MP3, AAC, AAC+,
3GPP, MPEG-4 and JPEG,

Media Framework

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

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

Media Framework

Media Framework

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.

Life cycle of activity

Source:
Hello Adroid

Intent and Intent flters


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

Intent and Intent flters


To receive other components'
request, components need to
register flters at activities
framework.
When launch a intent object,
framework will match and fnd the
qualifed components and leave them
for users to choose which to run.

Intent and Intent flters


Example

<intent-flter>
<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-flter>

Activities and Tasks


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

Source:
http://blog.akquinet.d
e/2010/02/17/androidactivities-thepredominance-of-theui-thread/

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 dont.

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.

Content manager
URI identifes the data or the table

Source:
Google

A: Standard prefx indicating that the data is


controlled by a content provider.
B: The authority part of the URI; it identifes
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 specifc record being
requested.

Service Lifecycle

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

References
http://www.j2medev.com/android/Sho
wArticle.asp?ArticleID=5439
http://docs.huihoo.com/google/io/200
9/Mastering_the_Android_Media_Fra
mework.pdf
http://developer.android.com/

Vous aimerez peut-être aussi