3. 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
4. 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.
5. Media Framework
⢠Android use OpenCore as core component of
Media framework
⢠OpenCore supports MP3, AAC, AAC+, 3GPP,
MPEG-4 and JPEG,
7. Media Framework
⢠Example:
⢠MediaPlayer mp = new MediaPlayer();
⢠mp.setDataSource(PATH_TO_FILE);
⢠mp.prepare();
⢠mp.start();
8. Media Framework
⢠OpenCore lib has a C/S Architecture.
⢠MediaPlayer invoke JNI to manipulate client.
⢠The client request to the server to control
hardwares.
11. 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.
13. 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
14. 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.
16. 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/
17. 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.
18. 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.
19. 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.
21. 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