SlideShare a Scribd company logo
Android – Architecture
Benjamin Odoi-Lartey
odlabenonline@gmail.com
0244361636
Benjamin Odoi-Lartey @odlabenonline
Benjamin Odoi-Lartey
Lecture Objectives
• Know appreciate the Android Architecture
• Know and appreciated the Android
Application, Android Framework and
Libraries and Kernel Layers.
• Know the Features of Android
• Explain the Android Application
Components
Android Architecture
Applications Layer
• Application --- (Core Applications) for
default functionalities email, SMS
messaging, calendars, internet browsing,
contacts, and more; these are APIs for
developer usage and normal user usage
• A set of core applications shipped with
Android platform
– an email client, SMS program, calendar,
maps, browser, contacts, and others
• All written in Java
• User applications are also here
Application Framework Layer
• Simplify the reuse of components
– Applications can publish their capabilities and any other application may then
make use of those capabilities
• Applications is a set of services
– Views system, content providers, resources managers such as
• Activity Manager, manages the lifecycle of applications and provides a common
navigation backstack
• Notification Manager, enables all applications to display custom alerts in the
status bar
• Resource Manager, providing access to non-code resources such as localized
strings, graphics, and layout files
• Views, used to build an application, including lists, grids, text boxes, buttons, and
even an embeddable web browser
Library Layer
• System C libraries and function Libraries, supporting multimedia, web browser,
SQLite... Native Services to hardware
• Android runtime
Dalvik Virtual Machine
– Executes files in the Dalvik Executable (.dex) format
Java core Libraries
– Provides most of the functionality of the Java programming language.
Java core libraries rely on the Dalvik VM and the underlying Linux kernel
Every Android application runs in its own process, with its own instance of the
Dalvik virtual machine
Linux kernel Layer
• The Linux Kernel is a battle-tested piece of software that has been used in developing operating
systems for devices of wide range, from supercomputers to small gadgets. It has limited
processing abilities like small networked gadgets for the Internet of Things (IoT).
• Android relies heavily on Linux and the Kernel is responsible for many foundational functionalities
including but not limited to Device Drivers, Memory Management and Power Management.
• Supplies management of security, memory process, network, and drivers
• Acts as an abstraction layer between the hardware and the rest of the Android software stack
Android Framework Support.
8
Features of Android
• Popularity (High market share)
• Enabled SMS
• Enabled GPS
• Cameras & microphones
• Open source apps
• Development with Java
• Linux based
• Short learning curve with IDE
Java Eclipse IDE for Android
app development
• Easy deployment to mobile
device
• Easy to distribute apps via
Android Market
Share app, Sell app,
Download & reuse open source
apps
• In 2020 one of the consequences of the COVID-19 pandemic, was a
dramatic spike of demand for certain mobile app categories.
• Number of downloads for Zoom, Google’s Meet, Microsoft’s Teams
went through the roof and, at some point, capitalization of Zoom
surpassed Boing.
• Mobile apps that were helping people to adapt and cope with the
disease became extremely popular and – to meet quickly rising
demand – companies had to heavily invest in development of these
apps to increase their capacity and bring new features.
Mobile applications developer
Developing mobile applications requires extensive knowledge of the various
mobile platforms currently available and how to develop applications that
will work on Android, iOS, Windows, and other operating systems.
Mobile applications developers typically have experience in programming,
UX design, troubleshooting and debugging programs, and development.
Candidates who can design mobile applications with a user-friendly
interface and who can collaborate across departments to design, test,
release, and support mobile applications are the better options.
Bachelor’s degree in CS or
relevant field
Some experience in mobile
development
Analytical and problem-
solving skills
Knowledge of iOS, Android,
Objective C, HTML, XML,
JavaScript
Android App software components
• Activity
• Service
• Broadcast Receiver
• Intent
• Content Provider
Activity
• Activities provide a user interface
for one specific task, Basic
component of most applications
• Most applications have several
activities that start each other as
needed
• Each is implemented as a
subclass of the base Activity class
Service
• A service is an application component that implements
and performs long running operations in the background
without any need to interact with the user.
• Services also handle the background processing
associated with the application. A service started by an
application will be continuing to running in background
even when user switches to another application
component.
• You can bind to an existing service, control its operation,
and run in background
• Services execute background processing, no visual
interface
Ex: Downloads, Playing Music, TCP/UDP Server, Play
music, alarm clock, etc.
• Secured if using permissions
• Callers may need to verify that service is the correct one
Content provider
• Content providers : manages access to a central repository of data
and are intended to be used by other applications which uses a
provider client object.
• Content Provider also are data storage facilities which supports data
exchange between applications by making data available to other
applications
• Transfer data between applications in Android and sends data to
widgets.
• Other applications use a
ContentResolver object to
access the data provided
via a ContentProvider
ContentProviders cont…
• Generally SQL backend
• Used to share content between apps
• Access controlled through permission tags
• Apps can be dynamically authorized access control to prevent security
flaws
• Must protect against SQL injection by verifying input using parameterization
Broadcast receivers
• A broadcast receiver (receiver) is an Android component which
allows you to register for system or application events. ... For
example, applications can register for the
ACTION_BOOT_COMPLETED system event which is fired once the
Android system has completed the boot process.
• Broadcast receiver also act as mailboxes for messages from other
applications. It receives and reacts to broadcast announcements
• If an app registered the receiver in adv., the event will notify and call
back the registered software
• Ex: Low battery, power connected, shutdown, timezone changed, etc.
Intent
– Intent is a goal action component which takes care of the process
of inter-components communication (ICC)
– Intent is simply a message object containing a destination
component address and data
– Protection
– Each application executes as its own user identity, such that OS
provides system-level isolation;
– Android middleware contains a reference monitor that mediates
the inter-component communication (ICC).
Intent action:
– Start an Activity
– Broadcast events or
changes
– Start, stop, resume. or
communicate with
background Services
– Access data held by
ContentProviders
– Call back to handle
events
– Carry data with Extras
(key, value)
Android component activation
• An intent is an object which can have a message content
and start Activities, services and broadcast receivers
- ContentProvider is started by ContentResolvers
– An activity is started by Context.startActivity(Intent
intent) or Activity.startActivityForResult(Intent intent,
int RequestCode)
– A service is started by Context.startService(Intent
service)
– An application can initiate a broadcast by using an
Intent in any of Context.sendBroadcast(Intent intent),
Context.sendOrderedBroadcast(), and
Context.sendStickyBroadcast()
21
Shutting Down Android components
• Activities
– Can terminate itself via finish();
– Can terminate other activities it started via finishActivity();
• Services
– Can terminate via stopSelf(); or Context.stopService();
• Content Providers
– Are only active when responding to ContentResolvers
• Broadcast Receivers
– Are only active when responding to broadcasts
System level protection for Android app
• Each app runs as a unique user identity such that Android
can limit the potential damage of programming flaws.
• Each app runs in own VM sandbox using unique UID
• Each app requests a simple permission label assignment
model to restrict access to resources and other
applications if necessary
• Ex. of permission: Internet, camera, GPS
• Permission specifies an access policy to protect its
resources.
Android App Signature
• Application signing allows developers to identify the author of the application and to update their
application without creating complicated interfaces and permissions.
• Every application that is run on the Android platform must be signed by the developer but are
usually self-signed
• Why self signing?
– Market ties identity to developer account
– No CA in Google, Google does not have central control over the app’s signature certificates
– No applications are trusted. No "magic key"
• What does signing determine?
– Author-update
– In signature schemes, the private key is used to sign a app or message; anyone can check
the signature using the public key.
Android Permissions
• All permission of Android’s policy are set at install time and can’t
change until the application is reinstalled.
• Android’s permission only restricts access to components and
doesn’t currently provide information flow guarantees.
• A permission is listed in app’s manifest definition XML file.
• Component A’s ability to access components B and C is determined
by comparing the access permission labels on B and C to the
collection of permission labels assigned to application A.
Permissions Levels
• User can assign permissions to applications at
– Normal Permission
– Dangerous Permission
• Art of asking permission in Android
– User should have context when you ask for permission
– If necessary explain to the user why permission is needed
– If permission denied pop-up closes app without proceeding
further with intended functionality
– Subsequent access to feature should show rationale before
popping up permission request dialog
– Subsequent request pop-ups will have “Never Ask Again”
option as Default behavior by Android
Module - Programming with android course.ppt

More Related Content

Similar to Module - Programming with android course.ppt (20)

PPTX
Introduction to Android
NitinMehra2205
 
PPTX
Android Security Humla Part 1
Nikhil Kulkarni
 
PDF
Android Seminar BY Suleman Khan.pdf
NomanKhan869872
 
PPT
Android ppt
Indumathy Mayuranathan
 
PPT
Android Applications
Nazeer Hussain University
 
PPT
Android ppt
blogger at indiandswad
 
PPTX
Android Penetration Testing - Day 1
Mohammed Adam
 
PPT
Android App Developement
Aayush Gupta
 
PPT
Google android os
Faiq Ali Sayed
 
PPTX
Hello androidforyarlmeetup
Vanjikumaran Sivajothy
 
PPTX
Best Android training in Chandigarh - 34
ashish09714
 
PPSX
Android OS and its Features
Harshad Lokhande
 
PPTX
android development training in mumbai
faizrashid1995
 
PPT
Android 130923124440-phpapp01
rajesh kumar
 
PPT
Lecture 1 Android Application Development.ppt
hillarykiprono4
 
PPT
Introduction to android
Jawad Mohmand
 
PPT
Android
Tapan Khilar
 
PDF
Android Workshop Part 1
NAILBITER
 
PPT
Android Application Development Training by NITIN GUPTA
NITIN GUPTA
 
PPTX
Building a Mobile Security Program
Denim Group
 
Introduction to Android
NitinMehra2205
 
Android Security Humla Part 1
Nikhil Kulkarni
 
Android Seminar BY Suleman Khan.pdf
NomanKhan869872
 
Android Applications
Nazeer Hussain University
 
Android Penetration Testing - Day 1
Mohammed Adam
 
Android App Developement
Aayush Gupta
 
Google android os
Faiq Ali Sayed
 
Hello androidforyarlmeetup
Vanjikumaran Sivajothy
 
Best Android training in Chandigarh - 34
ashish09714
 
Android OS and its Features
Harshad Lokhande
 
android development training in mumbai
faizrashid1995
 
Android 130923124440-phpapp01
rajesh kumar
 
Lecture 1 Android Application Development.ppt
hillarykiprono4
 
Introduction to android
Jawad Mohmand
 
Android
Tapan Khilar
 
Android Workshop Part 1
NAILBITER
 
Android Application Development Training by NITIN GUPTA
NITIN GUPTA
 
Building a Mobile Security Program
Denim Group
 

Recently uploaded (20)

PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
Dimensions of Societal Planning in Commonism
StefanMz
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
Ad

Module - Programming with android course.ppt

  • 1. Android – Architecture Benjamin Odoi-Lartey [email protected] 0244361636 Benjamin Odoi-Lartey @odlabenonline Benjamin Odoi-Lartey
  • 2. Lecture Objectives • Know appreciate the Android Architecture • Know and appreciated the Android Application, Android Framework and Libraries and Kernel Layers. • Know the Features of Android • Explain the Android Application Components
  • 4. Applications Layer • Application --- (Core Applications) for default functionalities email, SMS messaging, calendars, internet browsing, contacts, and more; these are APIs for developer usage and normal user usage • A set of core applications shipped with Android platform – an email client, SMS program, calendar, maps, browser, contacts, and others • All written in Java • User applications are also here
  • 5. Application Framework Layer • Simplify the reuse of components – Applications can publish their capabilities and any other application may then make use of those capabilities • Applications is a set of services – Views system, content providers, resources managers such as • Activity Manager, manages the lifecycle of applications and provides a common navigation backstack • Notification Manager, enables all applications to display custom alerts in the status bar • Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files • Views, used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
  • 6. Library Layer • System C libraries and function Libraries, supporting multimedia, web browser, SQLite... Native Services to hardware • Android runtime Dalvik Virtual Machine – Executes files in the Dalvik Executable (.dex) format Java core Libraries – Provides most of the functionality of the Java programming language. Java core libraries rely on the Dalvik VM and the underlying Linux kernel Every Android application runs in its own process, with its own instance of the Dalvik virtual machine
  • 7. Linux kernel Layer • The Linux Kernel is a battle-tested piece of software that has been used in developing operating systems for devices of wide range, from supercomputers to small gadgets. It has limited processing abilities like small networked gadgets for the Internet of Things (IoT). • Android relies heavily on Linux and the Kernel is responsible for many foundational functionalities including but not limited to Device Drivers, Memory Management and Power Management. • Supplies management of security, memory process, network, and drivers • Acts as an abstraction layer between the hardware and the rest of the Android software stack
  • 9. Features of Android • Popularity (High market share) • Enabled SMS • Enabled GPS • Cameras & microphones • Open source apps • Development with Java • Linux based • Short learning curve with IDE Java Eclipse IDE for Android app development • Easy deployment to mobile device • Easy to distribute apps via Android Market Share app, Sell app, Download & reuse open source apps
  • 10. • In 2020 one of the consequences of the COVID-19 pandemic, was a dramatic spike of demand for certain mobile app categories. • Number of downloads for Zoom, Google’s Meet, Microsoft’s Teams went through the roof and, at some point, capitalization of Zoom surpassed Boing. • Mobile apps that were helping people to adapt and cope with the disease became extremely popular and – to meet quickly rising demand – companies had to heavily invest in development of these apps to increase their capacity and bring new features.
  • 11. Mobile applications developer Developing mobile applications requires extensive knowledge of the various mobile platforms currently available and how to develop applications that will work on Android, iOS, Windows, and other operating systems. Mobile applications developers typically have experience in programming, UX design, troubleshooting and debugging programs, and development. Candidates who can design mobile applications with a user-friendly interface and who can collaborate across departments to design, test, release, and support mobile applications are the better options. Bachelor’s degree in CS or relevant field Some experience in mobile development Analytical and problem- solving skills Knowledge of iOS, Android, Objective C, HTML, XML, JavaScript
  • 12. Android App software components • Activity • Service • Broadcast Receiver • Intent • Content Provider
  • 13. Activity • Activities provide a user interface for one specific task, Basic component of most applications • Most applications have several activities that start each other as needed • Each is implemented as a subclass of the base Activity class
  • 14. Service • A service is an application component that implements and performs long running operations in the background without any need to interact with the user. • Services also handle the background processing associated with the application. A service started by an application will be continuing to running in background even when user switches to another application component. • You can bind to an existing service, control its operation, and run in background • Services execute background processing, no visual interface Ex: Downloads, Playing Music, TCP/UDP Server, Play music, alarm clock, etc. • Secured if using permissions • Callers may need to verify that service is the correct one
  • 15. Content provider • Content providers : manages access to a central repository of data and are intended to be used by other applications which uses a provider client object. • Content Provider also are data storage facilities which supports data exchange between applications by making data available to other applications • Transfer data between applications in Android and sends data to widgets. • Other applications use a ContentResolver object to access the data provided via a ContentProvider
  • 16. ContentProviders cont… • Generally SQL backend • Used to share content between apps • Access controlled through permission tags • Apps can be dynamically authorized access control to prevent security flaws • Must protect against SQL injection by verifying input using parameterization
  • 17. Broadcast receivers • A broadcast receiver (receiver) is an Android component which allows you to register for system or application events. ... For example, applications can register for the ACTION_BOOT_COMPLETED system event which is fired once the Android system has completed the boot process. • Broadcast receiver also act as mailboxes for messages from other applications. It receives and reacts to broadcast announcements • If an app registered the receiver in adv., the event will notify and call back the registered software • Ex: Low battery, power connected, shutdown, timezone changed, etc.
  • 18. Intent – Intent is a goal action component which takes care of the process of inter-components communication (ICC) – Intent is simply a message object containing a destination component address and data – Protection – Each application executes as its own user identity, such that OS provides system-level isolation; – Android middleware contains a reference monitor that mediates the inter-component communication (ICC).
  • 19. Intent action: – Start an Activity – Broadcast events or changes – Start, stop, resume. or communicate with background Services – Access data held by ContentProviders – Call back to handle events – Carry data with Extras (key, value)
  • 20. Android component activation • An intent is an object which can have a message content and start Activities, services and broadcast receivers - ContentProvider is started by ContentResolvers – An activity is started by Context.startActivity(Intent intent) or Activity.startActivityForResult(Intent intent, int RequestCode) – A service is started by Context.startService(Intent service) – An application can initiate a broadcast by using an Intent in any of Context.sendBroadcast(Intent intent), Context.sendOrderedBroadcast(), and Context.sendStickyBroadcast()
  • 21. 21 Shutting Down Android components • Activities – Can terminate itself via finish(); – Can terminate other activities it started via finishActivity(); • Services – Can terminate via stopSelf(); or Context.stopService(); • Content Providers – Are only active when responding to ContentResolvers • Broadcast Receivers – Are only active when responding to broadcasts
  • 22. System level protection for Android app • Each app runs as a unique user identity such that Android can limit the potential damage of programming flaws. • Each app runs in own VM sandbox using unique UID • Each app requests a simple permission label assignment model to restrict access to resources and other applications if necessary • Ex. of permission: Internet, camera, GPS • Permission specifies an access policy to protect its resources.
  • 23. Android App Signature • Application signing allows developers to identify the author of the application and to update their application without creating complicated interfaces and permissions. • Every application that is run on the Android platform must be signed by the developer but are usually self-signed • Why self signing? – Market ties identity to developer account – No CA in Google, Google does not have central control over the app’s signature certificates – No applications are trusted. No "magic key" • What does signing determine? – Author-update – In signature schemes, the private key is used to sign a app or message; anyone can check the signature using the public key.
  • 24. Android Permissions • All permission of Android’s policy are set at install time and can’t change until the application is reinstalled. • Android’s permission only restricts access to components and doesn’t currently provide information flow guarantees. • A permission is listed in app’s manifest definition XML file. • Component A’s ability to access components B and C is determined by comparing the access permission labels on B and C to the collection of permission labels assigned to application A.
  • 25. Permissions Levels • User can assign permissions to applications at – Normal Permission – Dangerous Permission • Art of asking permission in Android – User should have context when you ask for permission – If necessary explain to the user why permission is needed – If permission denied pop-up closes app without proceeding further with intended functionality – Subsequent access to feature should show rationale before popping up permission request dialog – Subsequent request pop-ups will have “Never Ask Again” option as Default behavior by Android

Editor's Notes

  • #3: Application Application Framework Android Runtime and Core Libraries Linux Kernel Developing an operating system for mobile devices comes with a set of challenges. Using this layered architecture ensures that different problems are broken down and solved at different levels. A layered architecture helps separate concerns and ensure android software developers don't have to deal with low-level problems at every turn. They can instead focus on delivering business value concerned with the layer they're working on. Developers working on making apps don't have to worry about the application framework implementation. That work is left for the system developers working on the Application framework. The Application Framework developers work on developer experience and don't have to worry about the low-level drivers. Low-level system engineers can focus completely on low-level components such as Bluetooth or Audio drivers and the like. Android's layered structure makes it possible to apply updates with bug fixes or improvements to each layer on its own. This ensures that changes across layers don't interfere with each other. This makes it possible for people working at a different level of the OS to work with obstructing each other as new updates and releases are done. Application Framework ------ build mostly with Java in the form of API and are the building blocks for App creation Activity Manager : manages lifecycle of apps Notification Manager: gives alerts from apps to the user Libraries and Android Runtime ---- Surface Manager Webkit, LibC, SSL, SGL, OpenGL Core Libraries Dalvik Virtual Machine: The Linux Kernel: Display Drivers Camera Drivers Flash Memory Keypad Drivers Wifi Drivers Audio Driver Power Management
  • #4: This is the layer that end-users interact with. It is on this layer where application developers publish their applications to run. Android, by default, comes with a set of applications that make android devices usable from the offset. Home: The Homepage on Android consists of launcher icons for commonly used applications that the end-user may want quick access to. You can start the apps by clicking on the launchers of these apps. At the very top of the screen, you have widgets that show network, battery level, date, and time. Contacts: Android, by default, provides a means to store and retrieve contacts. Contact information is shared across other apps to enhance functionality. Messages: Android provides the capability to send and receive SMS messages. Email: Android comes with native support for email services. Setting up an Android device requires a Gmail account. Setting up Gmail activates other email-dependent components on Android devices. Some email dependent features include security and recovery mechanisms. Another email dependent feature is access to the Play Store, a marketplace for Android applications. Browser: Android comes with a default browser. Notification Drawer: Swiping down on the screen exposes the notification drawer. It provides application events that the user should be aware of. Above the notification are a set of shortcuts to some commonly used device settings that the users can toggle. These settings include on and off toggles for various hardware components such as Bluetooth and Wifi. Long pressing these events enables us to navigate to their configurations page. This layer is also referred to as user-level in contrast to the layers below that are mostly tuned for application development. Application developers create and customize the experiences for their apps on this layer. The layers below the application layer are not customized by application developers. They are considered part of the system layer. These layers are customized by device manufacturers, Google android teams, or third parties who want to use the Android source code for their product or research
  • #5: 1) Activity Manager Applications use the Android activity component for presenting an entry point to the app. Android Activities are the components that house the user interface that app users interact with. As end-users interact with the Android device, they start, stop, and jump back and forth across many applications. Each navigation event triggers activation and deactivation of many activities in respective applications. The Android ActivityManager is responsible for predictable and consistent behavior during application transitions. The ActivityManager provides a slot for app creators to have their apps react when the Android OS performs global actions. Applications can listen to events such as device rotation, app destruction due to memory shortage, an app being shifted out of focus, and so on. Some examples of the way applications can react to these transitions include pausing activity in a game, stopping music playing during a phone call. 2) Window Manager Android can determine screen information to determine the requirements needed to create windows for applications. Windows are the slots where we can view our app user interface. Android uses the Window manager to provide this information to the apps and the system as they run so that they can adapt to the mode the device is running on. The Window Manager helps in delivering a customized app experience. Apps can fill the complete screen for an immersive experience or share the screen with other apps. Android enables this by allowing multi-windows for each app. 3) Location Manager Most Android devices are equipped with GPS devices that can get user location using satellite information to which can go all the way to meters precision. Programmers can prompt for location permission from the users, deliver location, and aware experiences. Android is also able to utilize wireless technologies to further enrich location details and increase coverage when devices are enclosed spaces. Android provides these features under the umbrella of the Location-Manager. 4) Telephony Manager Most Android devices serve a primary role in telephony. Android uses TelephoneManager to combine hardware and software components to deliver telephony features. The hardware components include external parts such as the sim card, and device parts such as the microphone, camera, and speakers. The software components include native components such as dial pad, phone book, ringtone profiles. Using the TelephoneManager, a developer can extend or fine-tune the default calling functionality. 5) Resource Manager Android app usually come with more than just code. They also have other resources such as icons, audio and video files, animations, text files, and the like. Android helps in making sure that there is efficient, responsive access to these resources. It also ensures that the right resources are delivered to the end-users. For example, the proper language text files are used when populating fields in the apps. 6) View System Android also provides a means to easily create common visual components needed for app interaction. These components include widgets like buttons, image holders such as ImageView, components to display a list of items such as ListView, and many more. The components are premade but are also customizable to fit app developer needs and branding. 7) Notification Manager The Notification Manager is responsible for informing Android users of application events. It does this by giving users visual, audio or vibration signals or a combination of them when an event occurs. These events have external and internal triggers. Some examples of internal triggers are low-battery status events that trigger a notification to show low battery. Another example is user-specified events like an alarm. Some examples of external triggers include new messages or new wifi networks detected. Android provides a means for programmers and end-users to fine-tune the notifications system. This can help to guarantee they can send and receive notification events in a means that best suits them and their current environments. 8) Package Manager Android also provides access to information about installed applications. Android keeps track of application information such as installation and uninstallation events, permissions the app requests, and resource utilization such as memory consumption. This information can enable developers to make their applications to activate or deactivate functionality depending on new features presented by companion apps. 9) Content Provider Android has a standardized way to share data between applications on the device using the content provider. Developers can use the content provider to expose data to other applications. For example, they can make the app data searchable from external search applications. Android itself exposes data such as calendar data, contact data, and the like using the same system.
  • #6: 1) Android Runtime Android currently uses Android Runtime (ART) to execute application code. ART is preceded by the Dalvik Runtime that compiled developer code to Dalvik Executable files (Dex files). These execution environments are optimized for the android platform taking into consideration the processor and memory constraints on mobile devices. The runtime translates code written by programmers into machine code that does computations and utilizes android framework components to deliver functionality. Android hosts multiple applications and system components that each run in their processes. Core Libraries In this segment, we will discuss some of the core libraries that are present in the Android operating system. 2) MediaFramework Android also natively supports popular media codecs, making it easy for apps created on the Android platform to use/play multimedia components out of the box. 3) SQLite Android also has an SQLite database that enables applications to have very fast native database functionality without the need for third party libraries. 4) Freetype Android comes with a preinstalled fast and flexible font engine. This makes it possible for application developers to style components of their application and deliver a rich experience that communicates the developer's intent. 5) OpenGL Android also comes with the OpenGL graphics system. It's a C library that helps Android use hardware components in the real-time rendering of 2D and 3D graphics. 6) SSL Android also comes with an inbuilt security layer to enable secure communication between applications on Android and other devices such as servers, other mobile devices, routers 6. 7) SGL Android comes with a graphics library implemented in low-level code that efficiently renders graphics for the android platform. It works with the higher-level components of the Android framework Android graphics pipeline. 8) Libc The core of Android contains libraries written in C and C++, which are low-level languages meant for embedded use that help in maximizing performance. Libc provides a means to expose low-level system functionalities such as Threads, Sockets, IO, and the like to these libraries. 9) Webkit This is an open-source Browser engine used as a basis to build browsers. The default Android browser before version 4.4 KitKat uses it for rendering web pages. It enables application developers to render web components in the view-system by using WebView. This enables apps to integrate web components into their functionality. 10) Surface Manager The surface manager is responsible for ensuring the smooth rendering of application screens. It does this by composing 2D and 3D graphics for rendering. It further enables this by doing off-screen buffering.
  • #8: Built-In Services:GUIOS services (file I/O, threads, device management)GraphicsDevice access (GPS, camera, media players, sensors),NetworkingStandard language librariesAdd-ons:Google Play services (e.g. Google Maps, Games, etc.)Database support (SQLite)WebKit/ChromiumFramework tailored to mobile apps?How?Built in services that could be used by any kind of app.Add onsMaps. DB support, WebkitWhy separated?
  • #12: Explanation of components in next slides
  • #16:  Parameter provides information about method parameters, including its name and modifiers. It also provides an alternate means of obtaining .
  • #21: The Content Resolver is the single, global instance in your application that provides access to your (and other applications') content providers In the official Android documentation, context is defined as: Interface to global information about an application environment. ... It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents
  • #23: CA = Certificate Authority Application signing ensures that one application cannot access any other application except through well-defined IPC (Inter-Process Call)
  • #25: Find the details of Android Permission Levels NORMAL and DANGEROUS Normal: Android grants permission by default No need to ask run permission Examples: Finger_Print, Internet, NFC, Bluetooth Dangerous: Android don’t grant permission by default Must ask run time permissions Examples: Contacts, Location, Microphone, SMS