1.unit1 Chapter1 Introduction
1.unit1 Chapter1 Introduction
DEVELOPMENT
Agenda
• Introduction
• First introduced mobile phone
• Mobile technology network and infrastructure
• Different mobile technologies
Introduction
Brief History of mobile technologies
• Voice call during initial stage
• Today, they are versatile devices
• That allow users to create and share a wide range of content
• Music, video recording, watch videos
• In addition to communication, mobile devices can access the internet, stream TV shows and
movies, use GPS for navigation, play games, and interact with augmented reality.
• A mobile phone is a portable device that enables users to make and receive calls while on the
move within a service area. texting, emailing, internet browsing, wireless communication,
business apps, gaming, and photography.
• Most modern mobile phones utilize cellular networks and offer a variety of services such as
texting, emailing, internet browsing, wireless communication
• Smartphones, on the other hand, are mobile phones with advanced computing capabilities.
• The first handheld mobile phone was demonstrated in 1973, and the first commercially
available mobile phone was introduced in 1983.
First introduced mobile phone
• Motorola DynaTAC 8000X
• The Motorola DynaTAC 8000X was the first handheld cellular phone
that allowed people to make longer distance calls than just a landline
phone. It did not require any lines or cords to be attached to make a
call. The first ever cellular phone call was made in 1973, using this
phone, by Dr. Martin Cooper.
• A DynaTAC 8000X the first commercially
available mobile phone from 1983.
Mobile Technology Networks and Infrastructure
• The first generation of cellular networks laid the foundation for the modern networks we
rely on today. By utilizing multiple cell tower sites connected through a network, users were
able to travel and seamlessly switch between cell towers during calls.
• This groundbreaking advancement, known as the Analog Mobile Phone System (AMPS),
was developed by AT&T and marked a significant shift in communication technology.
• The initial proposal for AMPS was submitted by AT&T in 1971, and after 11 years of review,
the FCC finally approved their request. This approval granted AT&T the 824-894MHz range
to operate the AMPS system, leading to the establishment of the first cellular network in
Chicago in 1983.
Different Mobile Technologies
• Digital Cellular Networks or “2G”
• In the 1990s, the European GSM(Global System for Mobile communication) standard and the
North American CDMA(Code-Division Multiple Access) standard were introduced, leading to the
expansion of cell tower sites and advancements in battery and internal components, resulting in
smaller mobile devices.
• 2G technology also brought about the introduction of SMS messaging, with the first computer-
generated SMS sent in the UK in 1992 and the first person-to-person SMS in Finland a year later
using GSM technology.
• The late 1990s saw the emergence of pre-paid mobile phones and plans, further popularizing
SMS across all age groups. Additionally, 2G technology enabled the introduction of download
services, allowing users to download ringtones for the first time
Different Mobile Technologies
Digital Cellular Networks or “3G”
• In 1999, NTT DoCoMo introduced the first mobile Internet service in
Japan using existing 2G technologies, which was later replaced by the
world's first 3G network launched in October 2001.
• Following this, many countries, including South Korea, the US, the
UK, and Italy, adopted 3G networks in the early 2000s.
• While 3G was being developed, some "2.5G" services emerged to
enhance older technologies, but they did not match the speed of 3G
technologies like GPRS(General Packet Radio Service) and
EDGE(Enhanced Data rates for GSM (Global System for Mobile
Communications) Evolution).
Different Mobile Technologies
Digital Cellular Networks or “3G”
• The advent of 3G revolutionized the mobile phone industry, enabling
widespread mobile Internet access and transmission services like TV
and radio for the first time.
• This led to a surge in smartphone usage as handset manufacturers
embraced the technology.
• By 2005, 3G had evolved further, giving rise to terms like "3.5G,"
"turbo 3G," and "3G+" with technologies such as HSDPA, HSPA, and
HSPA+. High Speed Packet Access(HSPA) is
the combination of High Speed
Downlink Packet Access(HSDPA) and
High Speed Uplink Packet
Access(HSUPA).
Different Mobile Technologies
Native IP or “4G”
• This has brought mobile Internet connections closer to wired home Internet
connections in terms of speed and reliability.
• As a result, users can now enjoy faster data speeds, improved network coverage,
and a more seamless online experience on their mobile devices. This transition
has also paved the way for the development of new technologies and services
that rely on high-speed mobile Internet connections.
Different Mobile Technologies
“5G” technology
• 1G, 2G, 3G, and 4G all led to 5G, which is designed to provide more
connectivity than was ever available before.
• 5G is a unified, more capable air interface. It has been designed with
an extended capacity to enable next-generation user experiences,
empower new deployment models and deliver new services.
• With high speeds, superior reliability and negligible latency, 5G will
expand the mobile ecosystem into new realms. 5G will impact every
industry, making safer transportation, remote healthcare, precision
agriculture, digitized logistics — and more — a reality.
• https://www.youtube.com/watch?v=nrdNdprcYls
Agenda
• Mobile Ecosystem
• Key Mobile Application Services
• Introduction to Android
Mobile Ecosystem
• Mobile Ecosystem is collection of multiple devices (mobile phones, Tablet, Phablet etc), software
(operating system, development tools, testing tools etc.), companies (device manufacturers,
carrier, apps stores, development/testing companies, etc.) etc., and the process by which data
(sms, bank transactions etc.), is transferred/shared by a user from one device to another device or
by the device itself based on some programs (Birthday, Wedding Messages, calendar).
• Data (Text, MultiMedia, VOICE) sharing can be done between devices of the same operating system
or different operating systems. Examples: IPhone (IOS) to Windows Phone or IPhone(IOS) to Nexus
(Android) or Motorola (Android) to Nexus (Android).
• Data can be also shared between multiple devices with the same operating system of the same
manufacturer. Example: Apples: IOS: Iphone, Ipad, to Ipod, TV, Laptops.
Mobile Ecosystem
Process:
• Mobile is manufactured with necessary software and applications.
• Users buy phones and subscribe to plans with carriers. If needed, buys/uploads applications for the
device.
• From time to time, new applications or features are uploaded or upgraded in the device as and when the
need arises.
Mobile Manufacturers:
They manufacture mobiles.
• Example: Samsung, BlackBerry, Sony, Nokia, Motorola, Windows Phone, Nexus
Operating System:
This is the important component of a Mobile, which controls/operates all applications that are residing on
the mobile phone. Android is open source and IOS is a closed source.
• Example: IOS, Android, BlackBerry OS, Symbian, Bada etc.
Mobile Ecosystem
Open source software:
• Refers to the computer software which source is open means the general public can access and use. In
short it is referred as OSS. The source code of open source software is public.
• It uses the code freely available on the Internet
Closed source software:
• Refers to the computer software which source code is closes means public is not given access to the
source code. In short it is referred as CSS.
• In closed source software the source code is protected. The only individual or organization who has
created the software can only change it.
• The price of closed source software is high and users need to have valid and authenticated license to use
the software.
Mobile Ecosystem
Mobile Ecosystem
Mobile Apps Development Tools:
Android Applications are developed with Eclipse, Intellij Idea etc.
BlackBerry Applications are developed with Eclipse etc.
IOS Applications are developed with XCode, MonoDevelop, AppCode etc.
Windows Phone Applications are developed with Microsoft Visual Studio etc.
Mobile Website Development Tools:
HTML5, CSS3, JavaScript etc. are used to create mobile websites.
Mobile Apps Testing Tools:
a) Emulators:
Actual device (mobile) operations and functions are simulated on to the computer. Instead of
buying several devices (Motorola, Samsung, Micromax etc), we can use emulators for functional testing.
Network Connectivity, resolution testing etc., cannot be tested 100% with emulators. So for testing to be
100% perfect, devices are needed and again buying several devices will be very costly.
Mobile Ecosystem
B. Mobile Cloud:
Companies rent mobiles and other devices virtually at hourly or weekly basis or monthly basis etc.
Applications can be tested by subscribing to those companies.
Example:
DeviceAnywhere (http://www.deviceanywhere.com/mobile-application-testing-overview.html)
Perfecto Mobile: www.perfectomobile.com
C. Mobile Testing Tools:
Jamo Solutions, Perfecto Mobile, Device Anywhere Pro.
Key Mobile Application Services:
The key Mobile Application services can be categorized as follows:
1. User Sign-up/Sign-in and Management: This service involves creating a seamless experience for users to
register, sign in, and manage their accounts within the mobile app. It includes features like email-based
registration, social login (such as Facebook or Twitter), and password recovery.
2. Social Login: Social login allows users to sign in to the app using their existing social media credentials
(e.g., Facebook, Google, Twitter). It simplifies the authentication process and enhances user convenience.
3. Analytics and User Engagement: Analytics services help track user behavior within the app. By analyzing
data such as user interactions, session duration, and conversion rates, you can make informed decisions
to improve the app’s performance and engagement.
4. Push Notifications: Push notifications keep users informed and engaged by sending timely updates,
reminders, or personalized messages directly to their devices. Effective push notification strategies can
enhance user retention and drive app usage.
Key Mobile Application Services:
5. Real Device Testing: Ensuring your app works flawlessly across various devices
and operating systems is essential. Real device testing involves testing the app
on actual devices (not just simulators) to identify any issues related to
performance, compatibility, or usability.
Remember that these services play a critical role in delivering a successful mobile
app experience. Whether the app is being developed for iOS, Android, or cross-
platform, thoughtful implementation of these services contributes to user
satisfaction and app success.
Introducing Android
• Android is a mobile operating system that is based on a modified version of Linux. Android began in 2003 as a project of
American company called Android Inc., to develop an operating system for digital cameras. In 2004 the project changed to
become an operating system for smartphones
• Android Inc. In 2005, as part of its strategy to enter the mobile space, Google purchased Android Inc. and took over its
development work (as well as its development team).
• Google wanted the Android OS to be open and free, so most of the Android code was released under the open source
Apache License. That means anyone who wants to use Android can do so by downloading the full Android source code.
• Moreover, vendors (typically hardware manufacturers) can add their own proprietary extensions to Android and customize
Android to differentiate their products from others.
• This development model makes Android very attractive to vendors, especially those companies affected by the
phenomenon of Apple’s iPhone, which was a highly successful product that revolutionized the smartphone industry.
Introducing Android
• When the iPhone was launched, many smartphone manufacturers had to scramble
to find new ways of revitalizing their products.
• Some companies that have taken advantage of Android’s open source policy
include Motorola and Sony Ericsson, which have been developing their own mobile
operating systems for many years.
Introducing Android
Linux kernel—This is the kernel on which Android is based. This layer contains all the low-level device drivers for the various
hardware components of an Android device.
Libraries—These contain the code that provides the main features of an Android OS. For example, the SQLite library provides
database support so that an application can use it for data storage. The WebKit library provides functionalities for web
browsing.
Android runtime—The Android runtime is located in the same layer with the libraries and provides a set of core libraries
that enable developers to write Android apps using the Java programming language. The Android runtime also includes the
Dalvik virtual machine, which enables every Android application to run in its own process, with its own instance of the
Dalvik virtual machine. (Android applications are compiled into Dalvik executables). Dalvik is a specialized virtual machine
designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU power.
Architecture Of Android
Application framework—The application framework exposes the various capabilities of the Android OS to
application developers so that they can be used in their applications.
Activity Manager − Controls all aspects of the application lifecycle and activity stack.
Content Providers − Allows applications to publish and share data with other applications.
Resource Manager − Provides access to non-code embedded resources such as strings, color settings and user
interface layouts.
Notifications Manager − Allows applications to display alerts and notifications to the user.
View System − An extensible set of views used to create application user interfaces.
Applications—At this top layer are the applications that ship with the Android device (such as Phone, Contacts, Browser,
and so on), as well as applications that can be downloaded and install from the Android Market. Any applications that
are written are located at this layer.
Android - Application Components
• Application components are the essential building blocks of an Android application. These
components are loosely coupled by the application manifest file AndroidManifest.xml that describes
each component of the application and how they interact.
These are four main components that can be used within an Android application
Activities: Activities represent the user interface (UI) and handle interactions with the user. An app can
have multiple activities, and each one typically corresponds to a screen or a specific task within the
app.
Services: Services are background processes that run independently of the UI. They perform long-
running tasks or handle operations that don’t require direct user interaction.
• For example, a music player app might use a service to play music in the background even when the
user switches to a different app.
The Android Manifest is an XML file which contains important metadata
about the Android app. This includes the package name, activity names,
main activity (the entry point to the app), Android version support,
hardware features support, permissions, and other configurations.
Android- Application Components--
Continued
Broadcast Receivers: Broadcast receivers listen for system-wide events or custom
events (broadcasts). When an event occurs, the receiver responds by executing code.
For instance, an app might register a broadcast receiver to receive notifications about
changes in network connectivity or battery status.
Content Providers: Content providers manage access to a structured set of data. They
allow apps to share data with other apps or access data from other apps. Content
providers are commonly used to interact with databases, files, or other data sources.
Additionally, Android apps can also use intents to communicate between components.
Intents allows to start activities, launch services, or send broadcasts. They facilitate
communication and coordination among different parts of the app.
Android- Application Components--
Continued
1. Activities
For example, an email application might have one activity that shows a list of
new emails, another activity to compose an email, and another activity for
reading emails. If an application has more than one activity, then one of them
should be marked as the activity that is presented when the application is
launched.
For example, a service might play music in the background while the
user is in a different application, or it might fetch data over the network
without blocking user interaction with an activity.
For example, applications can also initiate broadcasts to let other applications
know that some data has been downloaded to the device and is available for
them to use, so that the broadcast receiver will intercept this communication
and will initiate appropriate action.
Android Studio is the official IDE for Android application development. Android Studio provides everything you need to start
developing apps for Android, including the Android Studio IDE and the Android SDK tool.
1. Android studio
2. Eclipse IDE
Exploring the development environment in Android is crucial for anyone looking to build Android applications.
• Android Studio: This is the official Integrated Development Environment (IDE) for Android development, provided by
Google. Android Studio offers a comprehensive suite of tools for designing, coding, testing, and debugging Android
applications. It includes features like a visual layout editor, APK(Android Application Package) analyzer, and built-in
emulator.
• Here's a breakdown of the essential components and steps involved: Java or Kotlin: Android apps are primarily
developed using either Java or Kotlin programming languages.
• Kotlin is the newer, preferred language for Android development due to its conciseness, safety features, and
Exploring the Development Environment
Android Studio: This is the official Integrated Development Environment (IDE) for Android
development, provided by Google. Android Studio offers a comprehensive suite of tools for
designing, coding, testing, and debugging Android applications. It includes features like a visual
layout editor, APK analyzer, and built-in emulator.
SDK Manager: The Software Development Kit (SDK) Manager is a tool within Android Studio
that allows developers to download and manage the various SDK components necessary for
Android development. This includes platform tools, system images for emulators, and additional
libraries.
Emulator: Android Studio includes a built-in emulator that allows developers to test their apps
on virtual devices with different configurations (e.g., screen size, Android version). This is useful
Exploring the Development Environment
Device for Testing: While emulators are handy, testing on real devices is essential to ensure app performs
correctly across different hardware configurations. Physical devices can be connected to the development
machine via USB for testing.
Debugger: Android Studio provides a powerful debugger that allows developers to step through their code,
set breakpoints, inspect variables, and analyze the runtime behavior of their applications. This is invaluable
for identifying and fixing bugs.
Version Control: Version control systems like Git are commonly used in Android development to track
changes to the codebase, collaborate with other developers, and manage different versions of the app.
Documentation and Community Resources: The Android developer website provides extensive
documentation, tutorials, and API references to help developers learn and understand various aspects of
Android development. Additionally, online forums like Stack Overflow and Reddit's r/androiddev
Git is a Distributed Version Control System. It is used in Software Development. Git was developed by Linus Torvalds in
thecommunity
year 2005 toare valuable
manage theresources for seeking
development helpKernel.
of the Linux and sharing knowledge with fellow developers.
Obtaining the Required Tools
• The first and most important piece of software that is required, is
Android Studio.
• Structured code modules allow you to divide your project into units of functionality that you can
independently build, test, and debug.
• Android Studio is the official integrated development environment (IDE) for Android application
development. It is based on the IntelliJ IDEA, a Java integrated development environment for software, and
incorporates its code editing and developer tools. To support application development within the Android
operating system,
• Android Studio uses a Gradle based build system, emulator, code templates, and GitHub integration. Every
project in Android Studio has one or more modalities with source code and resource files. These
modalities include Android app modules, Library modules, and Google App Engine modules.
1. SDK tools
SDK tools are generally platform independent and are required no
matter which android platform we are working on. When Android
SDK is installed, these tools get automatically installed. The list of
SDK tools has been given in next slide-
SDK Tools
1. SDK tools
Android
DDMS
DDMS stands for Dalvik debug monitor server that provides many services on the device. The service could include
message formation, call spoofing, capturing screenshot, exploring internal threads and file systems etc. Running DDMS
from Android studio click on Tools>Android>Android device Monitor.
How it works
In android, each application runs in its own process and each process run in the virtual machine. Each VM
exposes a unique port, that a debugger can attach to. When DDMS starts, it connects to adb. When a
device is connected, a VM monitoring service is created between adb and DDMS, which notifies DDMS
when a VM on the device is started or terminated.
Sqlite 3
Sqlite3 is a command line program which is used to manage the SQLite databases created by Android
applications. The tool also allows us to execute the SQL statements on the fly.
There are two ways through which you can use SQLite, either from remote shell or you can use locally.
Android Emulator:
• The Android Emulator simulates Android devices on your computer so that you can test your application
on a variety of devices and Android API levels without needing to have each physical device.
• The emulator provides almost all of the capabilities of a real Android device. You can simulate incoming
phone calls and text messages, specify the location of the device, simulate different network speeds,
simulate rotation and other hardware sensors, access the Google Play Store, and much more.
• Testing your app on the emulator is in some ways faster and easier than doing so on a physical device. For
example, you can transfer data faster to the emulator than to a device connected over USB.
• The emulator comes with predefined configurations for various Android phone, tablet, Wear OS, and
Android TV devices.
• In short, An Android emulator is an Android Virtual Device (AVD) that represents a specific Android device.
You can use an Android emulator as a target platform to run and test your Android applications on your
PC. Using Android emulators is optional.
Android Virtual Device Manager: -
• An Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone,
tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android
Emulator. The AVD Manager is the interface through which Android Studio that can be launched, it
helps create and manage AVDs. An AVD contains a hardware profile, system image, storage area, and
other properties.
• Use the following steps to go through the installation process of Android Studio:
Step – 1: Head over to below link to get the Android Studio executable or zip file .
https://developer.android.com/studio/#downloads
➤ Lint—A static analysis tool that analyzes your application and its resources to
suggest improvements and optimizations.
➤ Gradle—An advanced build system and toolkit that manages the compilation,
packaging, and deployment of your applications.
➤ Vector Asset Studio—Generates bitmap files for each screen density to support
older versions of Android that don’t support the Android vector drawable format.
APK Analyzer—Provides insight into the composition of your built APK files. The
following additional tools are also available:
➤ Android Debug Bridge (ADB)—A client-server application that provides a link
between your host computer and virtual and physical Android devices. It lets you
copy files, install compiled application packages (.apk), and run shell commands.