1 GettingToKnowAndroid
1 GettingToKnowAndroid
1 GettingToKnowAndroid
• History of Android OS
• Components of Android OS
• The cooperation of the Android operating system with Linux for memory, device,
processor, and network management
Prepared By Gaddisa
3 Olani (Ph.D.) 2021
• Linux based OS that is optimized for Mobile
Devices
• Open Source
❑ Initial challenges
➢ Phone battery power limitations
➢ Small CPU
Prepared By Gaddisa
6 Olani (Ph.D.) 2021
Brief History (cont’d.)
• Since then, Android extended to reach entire mobile smartphones and tablets
generations
• “There are now 2.5 billion active Android devices”
Google report (2019)
Prepared By Gaddisa
7 Olani (Ph.D.) 2021
Android Logo
Prepared By Gaddisa
8 Olani (Ph.D.) 2021
Android Version
Prepared By Gaddisa
9 Olani (Ph.D.) 2021
Android OS Structure
• You will find all the Android application at the top layer. You will write
your application to be installed on this layer only. Examples of such
applications are Contacts Books, Browser, Games etc.
Application Framework
• Enable and simplify the reuse of components in the form of Java classes.
• Developers have full access to the same framework APIs used by the core applications.
Examples:
• Content Providers that enable applications to access data from other applications (such as Contacts), or to share
their own data
• A Notification Manager that enables all applications to display custom alerts in the status bar
• An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack
• SSL
• SQLite
• Audio Manager
• Media Framework
o MediaPlayer
• Surface Manager
o Composes 2D and 3D windows, widgets, apps, toolbars
and more using Surface Flinger
o Uses Binder IPC to get buffers from apps to put into
frames
Core Libraries
✓Providing most of the functionality available in the core libraries of the Java
language
✓APIs
➢Data Structures
➢Utilities
➢File Access
➢Network Access
➢Etc
Prepared By Gaddisa Olani (Ph.D.) 2021 16
Android OS Structure: Android Runtime
➢ Every Android application runs in its own process, with its own
instance of the Dalvik virtual machine.
➢ Dalvik has been written so that a device can run multiple VMs
efficiently.
➢ Since Android devices are usually battery-powered, Android is designed to manage memory (RAM)
to keep power consumption at a minimum, in contrast to desktop operating systems which generally
assume they are connected to unlimited mains electricity.
➢ When an Android app is no longer in use, the system will automatically suspend it in memory - while
the app is still technically "open," suspended apps consume no resources (e.g. battery power or
processing power) and sit idly in the background until needed again.
➢ This has the dual benefit of increasing the general responsiveness of Android devices, since apps
don't need to be closed and reopened from scratch each time, but also ensuring background apps
don't waste power needlessly.
➢ Android manages the apps stored in memory automatically: when memory is low, the system will
begin killing apps and processes that have been inactive for a while, in reverse order since they
were last used (i.e. oldest first). This process is designed to be invisible to the user, such that
users do not need to manage memory or the killing of apps themselves.
Prepared By Gaddisa
20 Olani (Ph.D.) 2021
Design concerns
Prepared By Gaddisa
21 Olani (Ph.D.) 2021
Device Management (cont’d.)
Prepared By Gaddisa
22 Olani (Ph.D.) 2021
Device Management (cont’d.)
Two screens of the same size may have a different number of pixels
Prepared By Gaddisa
24 Olani (Ph.D.) 2021
Security Management in Android cont…
• User-defined permissions
• Individual controls device security
Prepared By Gaddisa
25 Olani (Ph.D.) 2021
Diagram that shows the high-level workflow for using
permissions on Android.
Fin out :
• Flaws in Android OS itself
• Flaws in phone software/firmware
• Vulnerabilities within downloaded apps that you are using