Android Architecture and Framework
Android Architecture and Framework
and Framework
Ms. Maryam Sajjad
Platform Architecture
Applications
Frameworks
Android Runtime
Different libraries
Linux Kernel
Linux Kernel
The foundation of the Android platform is the Linux kernel. For
example, the Android Runtime (ART) relies on the Linux kernel for
underlying functionalities such as threading and low-level memory
management.
The entire feature-set of the Android OS is available to you through APIs written
in the Java language. These APIs form the building blocks you need to create
Android apps by simplifying the reuse of core, modular system components and
services, which include the following:
A rich and extensible view system you can use to build an app’s UI, including lists,
grids, text boxes, buttons, and even an embeddable web browser
A resource manager, providing access to non-code resources such as localized strings,
graphics, and layout files
A notification manager that enables all apps to display custom alerts in the status bar
An activity manager that manages the lifecycle of apps and provides a common
navigation back stack
Content providers that enable apps to access data from other apps, such as the
Contacts app, or to share their own data
Developers have full access to the same framework APIs that Android system apps use.
Java API framework
• Contains re-usable software that many mobile applications are likely to need
API interface
• View System– common graphical/user interface elements like buttons, icons etc.
• Package Manager– keeps track of app packages on device.
• Window Manager– manages the windows comprising an app.
• Resource Manager– manages non-compiled resources e.g. Strings, graphics & layout files.
• Activity Manager– manages app lifecycle and navigation stack .
• Content Provider– inter-application data sharing.
• Location Manager– provides location & movement information.
• Notification Manager– place notifications in the status bar when important events occur.
• Telephony Manager– Provides access to telephony services as well as some subscriber information, such as phone
numbers.
System apps
Android comes with a set of core apps for email, SMS messaging,
calendars, internet browsing, contacts, and more. Apps included
with the platform have no special status among the apps the user
chooses to install. So, a third-party app can become the user's
default web browser, SMS messenger, or even the default keyboard.
Some exceptions apply, such as the system's Settings app.
The system apps function both as apps for users and to provide key
capabilities that developers can access from their own app. For
example, if you want your app to deliver SMS messages, you don't
need to build that functionality yourself. You can instead invoke
whichever SMS app is already installed to deliver a message to the
recipient you specify.
Remember!
Model-View-Controller (MVC)
Model-View-Presenter (MVP)
Model-View –View Model (MVVM)
And many others
Model-View-Controller (MVC)
Given that it is utilized by numerous
programming languages, including Python,
Java, and Swift, this architecture is the most
common in the development industry.
Ref: https://en.wikipedia.org/wiki/List_of_Android_app_stores
List of Android Market Application Store
Ref: https://en.wikipedia.org/wiki/List_of_Android_app_stores
Android Project Structure
Project Structure
AndroidManifest.xml
– Overall project config and settings
src/…
– Source code for your Kotlin/Java classes
res/…
– drawable/ = images
– layout/ = descriptions of GUI layout
– strings/ = localization data
– styles/= general appearance styling
Gradle
– A build/compile management system
– build.gradle = main build config file
Virtual Devices (AVD)