Download Android Middleware

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Android Middleware
Bo Pang
Bpang@cc.hut.fi
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,
Notification 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 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
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.
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>
Activities and Tasks
• A task is a stack which contain several
activities share the same affinity.
Source:
http://blog.akquinet.de/20
10/02/17/androidactivities-thepredominance-of-the-uithread/
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.
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 identifies the data or the table
Source: Google
• 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.
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/ShowArticl
e.asp?ArticleID=5439
• http://docs.huihoo.com/google/io/2009/Mast
ering_the_Android_Media_Framework.pdf
• http://developer.android.com/