0% found this document useful (0 votes)
25 views82 pages

1.unit1 Chapter1 Introduction

mobile intorduction

Uploaded by

bonthab.21.abca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views82 pages

1.unit1 Chapter1 Introduction

mobile intorduction

Uploaded by

bonthab.21.abca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 82

MOBILE APPLICATION

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

• Mobile phone companies like Android, Apple, Blackberry, and others


provide tools called Software Development Kits (SDKs) to help
developers create apps.
• Developers can then share their apps with the world through app
stores.
• In 1917, a Finnish inventor named Eric Tigerstedt patented a small
folding phone with a thin microphone.
• Early versions of cell phones for radio communication on ships and
trains.
• Japan launched the first automated cellular network in 1979, by
Nippon Telegraph
Eric Tigerstedt who was also called as "Thomas Edison of
Finland"
Different Mobile Technologies
• In 1960, Sweden introduced the world's first fully automated mobile
telephone system, known as Mobile Telephone system A (MTA),
which allowed for automated connections from rotary handsets.
• This system, although requiring operator assistance for call
forwarding, marked a significant step towards the mobile
communication systems we rely on today.
Different Mobile Technologies
• The evolution of mobile communication technology has been a
fascinating journey.
• It all began with the first-generation (1G) systems, which could handle
multiple calls simultaneously but relied on analog technology.
• In 1991, the second-generation (2G) digital cellular technology was
introduced in Finland by Radiolinja, using the GSM standard.
Analog technology involves measuring, storing, or recording an infinitely
variable amount of information by using physical quantities such as
voltage.
Digital cellular technology that provides mobile data and voice services
across devices. Global System for Mobile Communication (GSM) is one of
the second-generation telecommunication standards (2G) which is a
wireless network.
Different Mobile Technologies
• Analog Cellular Networks or “1G”

• 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”

• As the demand for bandwidth-intensive applications like streaming media grew, it


became evident by 2009 that 3G networks would soon be overwhelmed.

• This led to the exploration of data-optimized fourth-generation technologies, promising


significant speed improvements over existing 3G technologies.

• The first commercially available 4G technologies were the WiMAX standard(Worldwide


Interoperability for Microwave Access) in North America by Sprint and the LTE
standard in Scandinavia by TeliaSonera.
Different Mobile Technologies
• With the introduction of 4G technology, mobile Internet has made significant
advancements by transitioning to native IP networks.

• 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.

• These manufacturers saw Android as a solution, meaning they will continue to


design their own hardware and use Android as the operating system that powers it.

• 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

• The main advantage to adopting Android is that it offers a


unified approach to application development.
• Developers need only develop for Android in general, and
their applications should be able to run on numerous different
devices, as long as the devices are powered using Android.
• In the world of smartphones, applications are the most
important part of the success chain.
Android Versions
Android Versions
Android has gone through quite a number of updates since its first
release. Table 1-1 shows the various versions of Android and their
codenames
Table 1-1: A Brief History of Android
Versions
Table 1-1: A Brief History of Android
Versions
Android Versions

Android version 1.5: Cup Cake


On April 2009, the Android 1.5 update, Cup Cake was released based on linux kernel 2.6/2.7. It has Virtual
Keyboards, Video Recording, Auto –Pairing, & Stereo Support for Bluetooth, Use Pictures shown for favorites in
Contacts & Few more.
Android version 1.6: Donut
Following Cupcake, Google continued its development, and later in 2009, they released Android version 1.6, which
was internally nicknamed "Donut“. It has improved Functionality (quick search box, Updated Camera, Gallery and
voice search). Battery Usage Indicator, and support for Super-Sharp 480 X 800 pixel Screens.
Android version 2.0: Éclair
Android version 2.0, codenamed Éclair, was a major update to the Android operating system released in October
2009. It gave us improved typing speed on virtual Keyboard By using Multi touch Data, Auto Brightness, Improved
Google Maps 3.1.2 with Navigation, Numerous New Camera features, including flash, Color effects, Macro focus,
Picture Size, storage location and much more updates.
Android Versions
Android version 2.2: Froyo
• Android 2.2, also known as "Froyo" (short for Frozen Yogurt), did indeed introduce significant improvements
in voice control and search capabilities, allowing users to control their phones without touching them.
• The apps could now be installed on memory Card. For instance, they could send text messages, make calls,
play music, search the web, or get directions by speaking commands to their device.
• Prior to this update, Android devices only allowed apps to be installed on the device's internal storage.
• In Froyo, users gained the capability to install applications onto the external storage, typically referred to as
the memory card.
Android version 2.3: Gingerbread
• In this update, Android updates were for the user Interface design, along with increased simplicity and
speed, support for multiple cameras on the device, new download manager, new audio effects and Native
support for SIP VOIP internet telephony.
• With native SIP VOIP support, Android users gained the ability to make voice calls over Wi-Fi or mobile data
networks, potentially reducing call costs and providing more flexibility in communication.
Android Versions
Android version 2.2: Froyo
• Android 2.2, also known as "Froyo" (short for Frozen Yogurt), did indeed introduce significant improvements
in voice control and search capabilities, allowing users to control their phones without touching them.
• The apps could now be installed on memory Card. For instance, they could send text messages, make calls,
play music, search the web, or get directions by speaking commands to their device.
• Prior to this update, Android devices only allowed apps to be installed on the device's internal storage.
• In Froyo, users gained the capability to install applications onto the external storage, typically referred to as
the memory card.
Android version 2.3: Gingerbread
• In this update, Android updates were for the user Interface design, along with increased simplicity and
speed, support for multiple cameras on the device, new download manager, new audio effects and Native
support for SIP VOIP internet telephony.
• With native SIP VOIP support, Android users gained the ability to make voice calls over Wi-Fi or mobile data
networks, potentially reducing call costs and providing more flexibility in communication.
Android Versions
Android version 4.1 to 4.3 : Jelly Bean
Android Jelly Bean made Google's OS more responsive than ever, improving search
functionality and introducing the ability to share files with your friends using Android. Android
Jelly Bean, a feature that allowed users to share content such as web pages, contacts, photos,
videos, and more by simply tapping their devices together.
Android version 4.4: Kit Kat
It was launched on October 31, 2013. It was designed to require less RAM than before, in
order to help its performance on phones with less than 1 Gigabyte of RAM.
Android version 5.0: Lollipop
Android Lollipop hit our phones in 2014 and brought multiple profiles on one device, the 'no
interruptions' feature to get some peace and an all-new notifications bar. The phone could
also be unlocked now, with a trusted Bluetooth device.
Android Versions
Android version 5.0: Lollipop
Ex: Family Sharing: A parent can set up separate user profiles for themselves and their
children on a tablet. Each child can have their own profile with age-appropriate apps
and settings, while the parent can have a profile with full access to all apps and settings.
Android version 6.0: Marshmallow
Android marshmallow was unveiled by Google in September 2015, improving battery life
and adding Cool new features like now on tap and fingerprint sensor.
Android version 7.0: Nougat
Nougat is the latest update of Android having multiple features like quick switch
between apps, Multi – window view, multi locale language settings, over 1500 emoji
including 72 new ones, Virtual Reality mode and much more
Android Versions
Android version 8.0: Oreo
Android Oreo also introduces two major platform features: Android Go – a software distribution
of the operating system for low-end devices, and support for implementing a hardware
abstraction layer. It supports Notification grouping, Picture-in picture support for video,
Performance improvements and battery usage optimization, Support for auto fillers, Bluetooth 5,
System-level integration with VoIP apps (voice over IP)

Android version 9.0: Pie


It was first announced by Google on March 7, 2018, but was released on July 25, 2018. Pie’s most
transformative change was its hybrid gesture/button navigation system, which traded Android’s
traditional "Back", "Home", and "Overview" keys for a large, multifunctional Home button and a
small Back button that appeared alongside it as needed. It supports the following features.
Features of Android
Android is open source and freely available to manufacturers for customization, there are no fixed hardware or software
configurations. However, the base Android OS supports many features, including
➤ Storage—SQLite, a lightweight relational database, for data storage.
➤ Connectivity—GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (includes A2DP and AVRCP), Wi- Fi, LTE,
and WiMAX
➤ Messaging—Both SMS and MMS.
➤ Media support H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP
container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF,
and BMP.
➤ Hardware support—Accelerometer sensor, camera, digital compass, proximity sensor, and GPS.
➤ Multi-touch—Multi-touch screens.
➤ Multi-tasking—Multi-tasking applications.
➤ Tethering—Sharing of Internet connections as a wired/wireless hotspot.
Android’s web browser is based on the open source WebKit and Chrome’s V8 JavaScript engine
Architecture Of Android
Architecture Of Android
The Android OS is roughly divided into five sections in four main layers:

 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.

 The Android framework includes the following key services.

 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

An activity represents a single screen with a user interface, in-short Activity


performs actions on the screen.

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.

An activity is implemented as a subclass of “Activity class” as follows –


Android- Application Components--
Continued
2. Services

A service is a component that runs in the background to perform long-


running operations.

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.

A service is implemented as a subclass of Service class as follows –


Android- Application Components--
Continued
3. Broadcast Receiver

Broadcast Receivers simply respond to broadcast messages from other


applications or from the system.

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.

A broadcast receiver is implemented as a subclass of BroadcastReceiver class


and each message of broadcaster as an Intent object.
Android- Application Components--
Continued
4. Content Provider

A content provider component supplies data from one application to other


applications, on request. Such requests are handled by the methods of the Content
Resolver class. The data may be stored in the file system, the database or somewhere
else entirely.

A content provider is implemented as a subclass of ContentProvider class and must


implement a standard set of APIs that enable other applications to perform
transactions.
Android- Application Components--
Continued
5. Additional Components
Fragment component
Views
Layout
Intent
• An intent lets you start an activity in another app by describing an
action you'd like to perform, such as "view a map" or "take a picture,"
in an Intent object.
Resources
Exploring the Development Environment
For developing the application for android platform, we require Integrated Development Environment (IDE).

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.

• After Android Studio is downloaded and installed, the SDK Manager


can be used, to download and install multiple versions of the
Android SDK. Having multiple versions of the SDK available enables
you to write programs that target different devices.
Android Studio:
• Android Studio provides a unified environment where you can build apps for Android phones, tablets,
Android Wear, Android TV, and Android Auto.

• 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

Android is a development tool that lets you perform these tasks:

 Manage Android Virtual Devices (AVD)

 Create and update Android projects

 Update sdk with new platform add-ons and documentation

android [global options] action [action options]

 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

Step – 2: Click on the download android studio button


The Android SDK Manager—Used to download SDK packages including Android
platform SDKs, support libraries, and the Google Play Services SDK.

➤ Android Profiler—Visualize the behavior and performance of your app. The


Android Profiler can track memory and CPU use in real time, as well as analyze
network traffic.

➤ 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.

➤ Android Asset Packaging Tool (AAPT)—Constructs the distributable Android


package files (.apk).
➤ SQLite3—A database tool that you can use to access the SQLite database files
created and used by Android.
The Android Virtual Device Manager
• The Android Virtual Device Manager is used to create and manage the virtual hardware
devices that will host instances of the Emulator.
• AVDs are used to simulate the hardware configurations of different physical devices.
• This lets you test your application on a variety of hardware platforms without needing
to buy a variety of phones.
• NOTE The Android SDK doesn’t include any prebuilt virtual devices, so you will need to
create at least one device before you can run your applications within an Emulator.
• Each virtual device is configured with a name, physical device type, Android system
image, screen size and resolution, ABI/CPU, memory and storage capacities, and
hardware capabilities including camera and network speeds.
• Different hardware settings and screen resolutions will present alternative UI skins to
represent the different hardware configurations.
• This simulates a variety of device types including different phones and tablets, as well
as TVs and Android Wear devices.
The Android Emulator
• The Emulator runs within an AVD, and is available for testing and
debugging your applications as an alternative to using a physical
device.
• The Emulator is an implementation of the Android Run Time, making
it as valid platform for running Android applications as any Android
phone.
• Because it’s decoupled from any particular hardware, it’s an excellent
baseline to use for testing your applications.
Android Profiler
• The Emulator enables you to see how your application will look,
behave, and interact, but to actually see what’s happening under the
surface, you need the Android Profiler.
• The Android Profiler displays real-time profiling data for the CPU,
memory, and network activity related to your app. You can perform
sample-based method tracing to time your code execution, capture
heap dumps, view memory allocations, and inspect the details of
network-transmitted files.
• To open the Android Profiler, click the Android Profiler icon in the
toolbar, or navigate to the View ➪ Tool Windows ➪ Android Profiler
menu item
Android Profiler
• The Profiler window displays real-time graphs for CPU, memory, and
network usage, as well as an event timeline that indicates changes in
Activity state, user inputs, and screen rotations. To access the detailed
profiling tools for CPU, memory, or network use, click the associated
graph.
• Depending on the resource being profiled, each detail view will allow
you to do one of the following:
➤ Inspect CPU activity and method traces.
➤ Inspect the Java heap and memory allocations.
➤ Inspect incoming and outgoing network traffic.
The Android Debug Bridge
• The Android Debug Bridge (ADB) is a client-service application that
lets you connect with an Android device (virtual or actual). It’s made
up of three components:
➤ A daemon running on the device or Emulator
➤ A service that runs on your development computer
➤ Client applications that communicate with the daemon through the
service
The Android Debug Bridge
• As a communications conduit between your development hardware
and the Android device/ Emulator, the ADB lets you install
applications, push and pull files, and run shell commands on the
target device. Using the device shell, you can change logging settings
and query or modify SQLite databases available on the device.
• Android Studio automates and simplifies a lot of your usual
interaction with the ADB, including application installation and
updating, file logging, and debugging.
Lint Tool
• Android Studio provides a static code analysis tool called Lint, which
helps identify and correct structural quality issues within your code,
without having to run the app or write those specific tests.
• The configured Lint and IDE inspections run automatically whenever
you build your app, checking your source code and resource files for
potential bugs and optimization improvements, including correctness,
security, performance, usability, accessibility, and internationalization.
Lint Tool
• Potential problems are highlighted within the IDE with a description,
severity level, and where possible a suggested remedy. Using Lint to
identify and rectify potential structural issues within your code can
dramatically improve the readability, reliability, and efficiency of your
code. It’s best practice to ensure all Lint warnings are dealt with as
part of your development process.
APK (Android Application Package)
Analyzer
• The APK Analyzer enables you to better understand the composition of
your APK files by providing an interface to:
• ➤ View the absolute and relative size of files stored within the APK,
including .DEX and resource files.
• ➤ View the final versions of .DEX files stored within the APK.
• ➤ View the final version of the AndroidManifest.xml file.
• ➤ Perform a side-by-side comparison of two APKs.

.DEX: meticulously optimized for Android's runtime environment, ensuring


peak performance on mobile devices.
APK Analyzer
• To analyze your APK, you can drag and drop an APK file directly into
the editor window of Android Studio, navigate to an APK in the build
➪ output ➪ apks directory using the Project perspective and double-
click the desired APK, or click the Build ➪ Analyze APK menu item and
select an APK.
Gradle
• Gradle is an advanced build system and toolkit, integrated into Android Studio, which makes it
possible for you to perform custom build configurations without needing to modify your app’s
source files.
• The use of Gradle as Android’s build system is intended to make it easier to configure, extend and
customize the build process, simplify code and resource reuse, and to more easily create multiple
build variants of an application.
• Gradle is plug-in–based, so integration with Android Studio is managed through the Android Plugin
for Gradle, which works with the build toolkit to provide a UI within Android Studio for processes
and configurable settings that are specific to building and testing Android applications.
• Gradle itself, and the Android Plugin, are integrated with—but ultimately independent of—Android
Studio.
• As a result, you can build your Android apps from within Android Studio, the command line on your
machine, or on machines where Android Studio is not installed (such as continuous integration
servers). The output of the build is the same whether you are building a project from the command
line, on a remote machine, or using Android Studio.
➤ Hprof-conv—A tool that converts HPROF profiling output files into a
standard format to view in your preferred profiling tool.
➤ Dx—Converts Java .class bytecode into Android .dex bytecode.
➤ Draw9patch—A handy utility to simplify the creation of NinePatch graphics
using a WYSIWYG editor.
➤ Monkey and Monkey Runner—Monkey runs within the Android Run Time,
generating pseudorandom user and system events. Monkey Runner provides
an API for writing programs to control the VM from outside your application.
➤ ProGuard—A tool to shrink and obfuscate your code by replacing class,
variable, and method names with semantically meaningless alternatives. This
is useful to make your code more difficult to reverse engineer.
Logcat—A utility used to view and filter the output of the Android logging
system.
Meaning and acronyms
• HPROF is a tool for heap and CPU profiling shipped with every JDK
release. It is a dynamic-link library (DLL) that interfaces with the Java
Virtual Machine (JVM) using the Java Virtual Machine Tool Interface
(JVM TI). The tool writes profiling information either to a file or to a
socket in ASCII or binary format.
• hprof i.e. heap dump of the process, which can be useful for
diagnosing and troubleshooting memory-related issues.
• (WYSIWYG)What You See Is What You Get: WYSIWYG editors enable
users to manipulate the content or layout without having to type any
commands.
Meaning and acronyms
• 9patch image: a modified PNG image that allows Android to
determine how the image can be stretched to meet the specific
layout during runtime
• Obfuscate: unclear
Meaning
• Concise: the quality of being short and clear, and expressing what
needs to be said without unnecessary words
• Interoperability: the ability of computer systems or software to
exchange and make use of information.
• Gradle plugin - Plugin is nothing but set of all useful tasks, such as
compiling tasks, setting domain objects, setting up source files, etc.
are handled by plugins. Applying a plugin to a project means that it
allows the plugin to extend the project’s capabilities.

You might also like