Android Chapter-1
Android Chapter-1
Android Chapter-1
Software Engineering
...
...
Chapter One Mobile Application Development Software Engineering
• Other features generally found in mobile computing devices include GPS
capability, accelerometer, compass, microphone, camera, and so on.
• Mobile computing devices have evolved greatly over time. A lot of the
devices that existed in the past have been phased out, like the Personal
Digital Assistant (PDA).
– Laptop: are portable personal computers that offer the same functionality
as a PC, so the same OS, applications, and files can run on this.
– Smartphone: a smartphone is a mobile phone with powerful capabilities.
– Tablet computer: are often thought of as an intermediary between a
laptop and a smartphone.
– Wearable: A more recent addition, wearable computers like
smartwatches offer limited features similar to a smartphone within a
watch.
– E-reader: devices that are similar to tablets, but their main purpose is to
read digital documents.
Mobile Communication
Mobile Hardware
Mobile Software
...
Chapter One Mobile Application Development Software Engineering
• Android is a mobile operating system developed by Google.
– It is based on a modified version of the Linux kernel and
other open source software, and is designed primarily for
touchscreen mobile devices such as smartphones and
tablets.
...
Chapter One Mobile Application Development Software Engineering
– Messaging: Both SMS and MMS are supported.
– Web Browser: Based on Open Source WebKit, now
known as Chrome.
– Connectivity: Supports large group of networks like:
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,
WiFi, LTE and WiMAX.
– Hardware Support: Accelerometer Sensor, Camera,
Digital Compass, Proximity Sensor, GPS and a lot more.
– Multi-Touch: Supports multi-touch screen.
– Multi-Task: Supports application multi-tasking.
– Flash Support: Supports Flash.
– Tethering: Supports sharing of Internet as wired or
wireless hotspots.
...
Chapter One Mobile Application Development Software Engineering
• Libraries: it is exposed to developers through Android Application
Framework.
– it contains C/C++ libraries used by components of Android
Systems.
• SQLite Library used for data storage and light in terms of mobile
memory footprints and task execution.
• WebKit Library mainly provides Web Browsing engine and a lot
more related features.
• Surface manager library is responsible for rendering windows and
drawing surfaces of various apps on the screen.
• Media framework library provides media codecs for audio and video.
• OpenGl (Open Graphics Library) and SGL(Scalable Graphics
Library) are the graphics libraries for 3D and 2D rendering,
respectively.
• FreeType Library is used for rendering fonts.
...
Chapter One Mobile Application Development Software Engineering
• Application Framework: It is a collection of APIs written in
Java and/or Kotlin, which gives developers access to the
complete feature set of Android OS.
– Developers have full access to the same framework APIs
used by the core applications, so that they can enhance
more in terms of functionalities of their application.
• Enables and simplify the reuse of core components and
services, like:
– Activity Manager: Manages the Lifecycle of apps &
provide common navigation back stack.
– Window Manager: Manages windows and drawing
surfaces, and is an abstraction of the surface manager
library.
– Content Providers: Enables application to access data
from other applications or to share their own data i.e it
provides mechanism to exchange data among apps.
...
Chapter One Mobile Application Development Software Engineering
– View System: Contains User Interface building blocks used to
build an application's UI, including lists, grids, texts, boxes,
buttons, etc. and also performs the event management of UI
elements.
– Package Manager: Manages various kinds of information
related to the application packages that are currently installed
on the device.
– Telephony Manager: Enables app to use phone capabilities of
the device.
– Resource Manager: Provides access to non-code resources
(localized Strings, bitmaps, Graphics and Layouts).
– Location Manager: Deals with location awareness
capabilities.
– Notification Manager: Enable apps to display custom alerts
in the status
...
Chapter One Mobile Application Development Software Engineering
• Applications: are at the top of the Android Application Stack,
occupied by the System apps and tones of other Apps
• A set of core applications are pre-packed in the handset like
Email Client, SMS Program, Calendar, Maps, Browser,
Contacts and few more.
• This layer uses all the layers below it for proper functioning
of these mobile apps.
• So as we can see and understand, Android holds layered
functionalities as software stack that makes Android work
very fluently in any device.
– Activity
– Service
– Broadcast Receiver
– Content Provider
...
Chapter One Mobile Application Development Software Engineering
• Services – A services does not have a visual component but
runs in the background and carries out some background
process while the other visual component s are running in the
foreground.
• A service will inherit Service base class. It runs in the main
thread and for resource intensive tasks it can branch out a new
thread.
• A service doesn’t have a visual user interface, but rather runs
in background for an indefinite period of time.
• The best example of service is playing music.
...
...
Chapter One Mobile Application Development Software Engineering
• Content Providers – This provides specific set of data from one
application to other applications.
• It is mediator between the application and the database, the database
which is related with application, which contain all stuff require by
application.
• By default, Android runs each application in its own sandbox so that
all data that belongs to an application is totally isolated from other
applications on the system.
• A content provider makes a specific set of the application's data
available to other applications.
• The content providers extend Content Provider base class. These are
used in conjunction with Content resolver which provide methods
for inter process communication.
• The canonical Content Provider example in Android is the contacts
list—the list of name, address, and phone information stored in the
phone.