LECTURE - 01
MOBILE APPLICATION
DEVELOPMENT
Chapter 1: Introduction
1.1 Introduction to Mobile Computing
Definition
❑ Mobile computing refers to the ability to use computing
capabilities without being confined to a single physical
location.
❑ It allows users to access data, applications, and services via
portable devices like smartphones, tablets, and laptops.
Components of Mobile Computing
❑ Mobile Hardware: Includes smartphones, tablets, laptops,
wearables (smartwatches, fitness trackers), and IoT devices.
❑ Mobile Software: Operating systems (Android, iOS, Windows
Mobile), apps, middleware, and firmware that run on mobile
devices.
❑ Mobile Communication: Involves wireless protocols and
technologies like Wi-Fi, 4G/5G, Bluetooth, and NFC, which enable
mobile devices to connect and exchange data over networks.
History and
Evolution
❑ Early Mobile Devices: Began with personal digital assistants
(PDAs) and evolved into today’s smartphones and tablets.
❑ Smartphones and Tablets: Revolutionized mobile computing
with devices like the iPhone in 2007.
❑ Wearables and IoT: Wearables like smartwatches and IoT
devices expand mobile computing.
Advantages of Mobile Computing
❑ Mobility: Users can perform tasks anytime and anywhere.
❑ Connectivity: Constant access to data and information
through wireless networks.
❑ Flexibility: Various mobile applications for communication,
work, learning, and entertainment.
Challenges of Mobile Computing
❑ Security Risks: Susceptibility to threats like data breaches,
malware, and theft.
❑ Battery Life: Limited power supplies for mobile devices.
❑ Performance: Lower computational power compared to
desktops.
Applications of
Mobile Computing
❑ Personal Use: Messaging, social media, navigation, mobile
banking, fitness tracking.
❑ Business Use: Mobile workforces, cloud services, inventory
management, and marketing.
❑ Healthcare: Remote monitoring, telemedicine, and mobile
health apps.
❑ Education: Mobile learning platforms, educational apps, and
distance learning.
1.2 Introduction to Android Development
Environment
What is Android?
❑ Android OS: An open-source operating system developed by
Google for mobile devices.
❑ Android Features: Multitasking, customizable UI,
notifications, connectivity, multi-language support.
Android Architecture
❑ Linux Kernel: Core services such as memory management,
process management, and hardware abstraction.
❑ Libraries: Includes core libraries for graphics (OpenGL),
databases (SQLite), and web (WebKit).
❑ Android Runtime (ART): Environment for apps, including the
Dalvik Virtual Machine and core Java libraries.
❑ Application Framework: Key services for apps, such as
Activity Manager and Notification Manager.
❑ Applications: The top layer, where Android apps run.
Setting Up Android Development Environment
❑Android Studio: The official IDE for Android, based on IntelliJ
IDEA.
❑SDK Manager: Used to download and manage SDK packages
for Android versions.
❑Gradle Build System: Manages dependencies, compiles code,
and builds APKs.
❑Android Emulator: Allows testing on virtual devices with
different configurations.
Core Android Components
❑Activities: Represents a single screen in the app.
❑Services: Background tasks running without a user interface.
❑Broadcast Receivers: Responds to system-wide events like
battery low.
❑Content Providers: Manages shared data between apps.
Programming
Languages for Android
❑ Java: The original language for Android, still widely used.
❑ Kotlin: Officially preferred language since 2017,
interoperable with Java.
Building and Running Android Apps
❑Compiling Apps: Uses Gradle to compile code into APKs.
❑Testing: Apps can be tested using Android Emulator or
physical devices.
WHAT IS ANDROID?
▪ Mobile operating system based on Linux Kernel
▪ User Interface for touch screens
▪ Used on over 80% of all smartphones
▪ Powers devices such as watches, TVs, and cars
▪ Over 2 Million Android apps in Google Play store
▪ Highly customizable for devices / by vendors
▪ Open source
IDE (Integrated Development Environment)
▪ Software suite that consolidates basic tools required to write
and test software.
▪ Without an IDE, a developer must select, deploy, integrate
and manage all of these tools separately.
▪ An IDE can b e a standalone application or it can b e part of a
larger package.
▪ For example:
Net beans, Eclipse, Android Studio
JDK (Java Development Kit)
▪ The JDK is one of three core technology packages used in
Java programming, along with the JVM (Java Virtual
Machine) and the JRE (Java Runtime Environment).
▪ The J VM is the Java platform component that executes
programs.
▪ The JRE is the on-disk part of Java that creates the JVM.
▪ The JDK allows developers to create Java programs that can
b e executed and run by the JVM and JRE.
JDK - JRE - JVM
AVD (Android Virtual Device )
▪ AVD is an emulator configuration that allows developers to
test the application by simulating the real device
capabilities.
▪ We can configure the AVD by specifying the hardware and
software options.
▪ AVD manager enables an easy way of creating and
managing the AVD with its graphical interface
LIBRARY
▪ It can include everything needed to build an app, including
source code, resource files, and an Android manifest.
▪ Complete package of something
▪ For example:
▪ Photo manipulation in android.
▪ Write code of scaling and animating for every time
“Picasso” photo manipulating library
API (Application Programming Interface)
▪ API is a software intermediary that allows two applications
to talk to each other
▪ Connectivity with server and hardware
▪ For Example:
▪ Waiter in a hotel
▪ Each time you use an app like Facebook, send an instant message,
or check the weather on your phone, you’re using an API.
▪ Use Googl e map
▪ Book different flights from different sites
SDK (Software Development Kit)
▪ SDK or devkit, providing a set of tools, libraries, relevant
documentation, code samples, processes, and or guides that
allow developers to create software applications on a specific
platform.
▪ For Example:
▪ Build a house without tools
▪ For eat bread… seed…grow…harvest…eat
▪ Write your own code from scratch
ANDROID OLDER VERSIONS
No Name Version Released API level
1 Alpha 1.0 Sep 23, 2008 1
2 Beta 1.1 Feb 09, 2009 2
3 Cupcake 1.5 Apr 27, 2009 3
4 Donut 1.6 Sep 15, 2009 4
5 Éclair 2.0 – 2.1 Oct 26, 2009 5–7
6 Froyo 2.2 – 2.2.3 May 20, 2010 8
7 Gingerbread 2.3 – 2.3.7 Dec 06, 2010 9 – 10
8 Honeycomb 3.0 – 3.2.6 Feb 22, 2011 11 – 13
9 Ice-cream Sandwich 4.0 – 4.0.4 Oct 18, 2011 14 - 15
ANDROID OLDER VERSIONS
No Name Version Released API level
10 Jelly Bean 4.1 – 4.3.1 Jul 09, 2012 16 – 18
11 Kit Kat 4.4 – 4.4.4 Oct 31, 2013 19 – 20
12 Lollipop 5.0 – 5.1.1 Nov 12, 2014 21 – 22
13 Marshmallow 6.0 – 6.0.1 Oct 05, 2015 23
14 Nougat 7.0 – 7.1.2 Aug 22, 2016 24 – 25
15 Oreo 8.0 – 8.1 Aug 21, 2017 26 – 27
16 Pie 9.0 Aug 06, 2018 28
17 Android X 9.0- Sep, 2019 28-
ANDROID PLATFORM ARCHITECTURE
• Linux Kernel
• HAL
• ART
• Libraries
• Application Framework
• System Applications
❖ LINUX KERNEL
▪ This layer is the foundation of the Android Platform.
▪ Contains all low level drivers for various hardware
components support.
▪ Android Runtime relies on Linux Kernel for core system
services like,
• Memory, process management, threading etc.
• Network stack
• Driver model
• Security and more.
❖ HARDWARE ABSTRACTION LAYER
▪ Provides Abstraction between hardware and rest of the
software stack.
❖ ANDROID RUNTIME (ART)
▪ Designed to run apps in a constrained environment that has
limited muscle power in terms of battery, processing and
memory.
▪ Contains set of core libraries that enables developers to
write Android Apps using Java Programming.
▪ It also has a very efficient garbage collection.
❖ APPLICATION FRAMEWORK
▪ It is a collection of APIs written in Java, which gives developers
access to the complete feature set of Android OS.
▪ 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
❖ APPLICATION FRAMEWORK
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.
❖ APPLICATION FRAMEWORK
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 bar.
❖ SYSTEM APPLICATION
• Top of the Android Application Stack, is occupied by the System apps
and other Apps that users can download from Android's Official Play
Store, also known as Googl e Play Store.
• 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.
Installation of
ANDROID STUDIO
THANKYOU ☺