M1 ABCDE-Android Introduction

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Module I

Introduction to Mobile
Apps and Android
Need for Mobile Apps
Mobile Apps Offer Better Personalization
Personalization is about offering tailored communication to users
based on their interests, location, usage behaviour, and more.

Ease of Sending Notifications


In-app notifications are the notifications which users can only receive
when they have opened an app.
Push notifications, on the other hand, are those notifications which
users can receive regardless of any activity.

Making Use of Mobile Device Features


Mobile apps have the advantage of utilizing features of a
mobile device like camera, contact list, GPS, phone calls, 
accelerometer, compass, etc.

Ability to Work Offline


Although apps, too, can require internet connectivity to perform most
of their tasks, they can still offer content and basic functionality to
users in offline mode.
Need for Mobile Apps
Freedom in Designing
Mobile websites depend on browser features like
‘backbutton,’ ‘refresh button,’ and ‘address bar’ to work. 
Mobile Apps don’t have any of these restrictions.

New Branding Experience


Mobile apps can be used to create a distinguished brand for
your product/service. 
Mobile app icons can work like innovative ad-banners. 

 Apps Can Work Faster Than Websites


Apps usually store their data locally on mobile devices, in
contrast to websites that generally use web servers. For this
reason, data retrieval happens swiftly in mobile apps.
Types of Mobile Apps
Native Apps
• live on the device and are accessed through icons on the 
device home screen.
• Installed through an application store (Google Play or
Apple’s App Store). 
• Developed specifically for one platform.
• Can take full advantage of all the device features — they 
can use the camera, the GPS, the compass, the list of
contacts, etc.
• Incorporate gestures(either standard operating-system 
gestures or new, app-defined gestures).
• Can use the device’s notification system and can work 
offline.
• Some different types of native apps are calendars,
calculators, built-in browsers, office applications, native
versions of popular social networks (e.g. facebook app,
Types of Mobile Apps
Web Mobile Apps
• Web apps are not real applications; they are 
really websites. 
• run by a browser and written in HTML5.
• Do not get installed on your handheld mobile
device and are run on web-hosted servers.
• Users first access them as they would access any
web page: they navigate to a special URL and
then have the option of “installing” them on their 
home screen by creating a bookmark to that page.
• Some examples of popular web applications are
popular social networks (the versions that are
accessed through the browser), email and
chatting applications, online mobile games, and
cloud-based office applications.
Types of Mobile Apps
Hybrid Apps
• Hybrid apps are part native apps, part web apps.
Like native apps, they live in an app store and can
take advantage of the many device features
available.
• Like web apps, they rely on HTML being rendered
in a browser  the browser is embedded within the
app.
• Deployed in a native container that uses a mobile
WebView object. When the app is used, this object
displays web content using web technologies such
as CSS, JavaScript, HTML5.
• Examples: Twitter, Uber, Instagram
Android vs IOS
Android IOS
most extensively used smartphone used only on Apple devices like
platform in the world - LG, Samsung, etc. iPad, iTouch, Apple TV etc.
allows the use of widgets  displays row of apps on the home screen
automatic updated information such as
weather, e-mail
Android devices are available with available only on Apple devices
differing sizes and hardware capabilities. and they tend to be expensive
 User can choose any one according to
his/her requirement and budget.
Users can chat with non-android devices doesn’t provide the native chat 
(Gtalk) application for non-apple users.
Google chrome is available on Android iOS has Safari as web browser 
devices. Can be integrated with IOS which is not available for an
devices. Android device.
Android SDK is available for all platforms:  iOS SDK is available for Mac only. 
PC, Mac and Linux. It is an open and free It is a closed platform.
platform.
Android vs Windows
Android Windows
An Android device uses Android  Windows phone uses Windows 
Operating System and it is an open operating system which is a mix of
source. open and closed system.
Android users are free to choose any Windows target apps with end user in
app from market and developers don’t  mind.
target a particular set of end user’s 
interest. Google Map can be used by a
student or a farmer to know his/her
location.
SD card of an android device is SD card can’t be replaced. You can 
replaceable. have cloud storage.

Android apps can register themselves


and share data or supports inter-
process communication.
Android’s app store is very large.
Android Introduction
• Android is a mobile operating system based on a modified
version of the Linux kernel and other open source
software, designed primarily for touchscreen mobile
devices such as smartphones and tablets.
• Android is developed by a consortium of developers
known as the Open Handset Alliance, with the main
contributor and commercial marketer being Google.
• Initially developed by Android Inc., which Google bought
in 2005, Android was unveiled in 2007, with the first
commercial Android device launched in September 2008.
• The current stable version is Android 11, released on
September 8, 2020.
• The core Android source code is known as Android Open
Source Project (AOSP), which is primarily licensed under
the Apache License
Android Introduction contd.
Android features
• It is open-source.
• Anyone can customize the Android Platform.
• There are a lot of mobile applications that can be
chosen by the consumer.
• It provides many interesting features like weather
details, opening screen, live RSS (Really Simple
Syndication) feeds etc.
• It provides support for messaging services(SMS and
MMS), web browser, storage (SQLite), connectivity
(GSM, CDMA, Blue Tooth, Wi-Fi etc.), media,
handset layout etc.
Pre-requisites
• Minimum basic operating systems -
Windows 7 and above, Linux systems,
Mac systems.
• Java JDK5 or later version
• Android SDK
• Java Runtime Environment (JRE) 6
• Android Studio
• Eclipse IDE for Java Developers (optional)
• Android Development Tools (ADT) Eclipse
Plug-in (optional)
Hardware Requirements
• Minimum processor of I5 and above.
• RAM – minimum 4GB 
• Harddisk - 2GB and above
• Minimum screen resolution –  1280 x 800 (minimum
resolution that we require when we are building an
Android application).
• Android Application development requires the JDK,
which is a Java development kit, preferably JDK 1.6
and above, and an Integrated Development Kit.
Eclipse and Android are the most popular ones which
you can use for development of your Android
application and finally the Android Software
Development Kit that is the SDK.
Limitations
• Usually you need more code on Java than Objective-
C.
• Complex layouts and animations are harder to code in
Android.
• Applications contains virus also present in Android
Market
• A lot of “process” in the background  leads to battery
drain.
• Advertisements - ads on display, either at the top or
bottom of the application.
• Low security and fake apps can be installed to steal
your info from unknown resources
• High device fragmentation.
Android Architecture
Overview
Android operating system is a stack of
software components which is roughly divided
into five sections and four main layers

Android architecture or Android software


stack is categorized into five parts:
1. Linux kernel
2. Native libraries (middleware),
3. Android Runtime
4. Application Framework
5. Applications
Android Architecture Overview
Android Architecture Overview
• Linux Kernel
– This provides a level of abstraction between the
device hardware 
– Handles networking and a vast array of device
drivers
– contains all the essential hardware drivers like
camera, keypad, display etc. 
– Other Hardware Drivers
– Memory Management Programs
– Security Settings
– Power Management Software
– Support for Shared Libraries
Android Architecture Overview
• Native Libraries
On the top of linux kernel, there are Native
libraries such as WebKit, OpenGL, FreeType,
SQLite, Media, C runtime library (libc) etc.
– The WebKit library is responsible for browser
support
– SQLite is for database
– FreeType for font support
– Media Framework for playing and recording
audio and video formats.
– OpenGL helps Android use hardware
components in the real-time rendering of 2D and
Android Architecture Overview
• Android runtime
Ø Dalvik Virtual Machine
– A kind of Java Virtual Machine specially designed and optimized for Android.
– The Dalvik VM enables every Android application to run in its own process,
with its own instance of the Dalvik virtual machine.
– Running applications in virtual machines provides a number of advantages.
Ø applications are essentially sandboxed  they cannot detrimentally
interfere (intentionally or otherwise) with the operating system or other
applications, nor can they directly access the device hardware.
Ø the enforced level of abstraction makes applications platform neutral 
they are never tied to any specific hardware.)
– The Dalvik VM makes use of Linux core features  memory management,
multi-threading.
– It is optimized for low memory requirements.
– It has been designed to allow multiple VM instances to run at once.
– Relies on the underlying OS for process isolation, memory management and
threading support.
Ø Core Libraries
– The Android runtime also provides a set of core libraries which enable
Android application developers to write Android applications using standard
Java programming language.
Android Architecture Overview
• Application Framework
– The Application Framework is a set of services that collectively form the
environment in which Android applications run and are managed.
– This framework implements the concept that Android applications are
constructed from reusable, interchangeable and replaceable components.
– 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.
– Package Manager – The system by which applications are able to find out
information about other applications currently installed on the device.
– Telephony Manager –  Provides information to the application about the
telephony services available on the device such as status and subscriber
information.
– Location Manager – Provides access to the location services allowing an
application to receive updates about location changes.
– XMPP service – chat; instant messaging
Android Architecture
Overview
• Applications
– Located at the top of the Android software
stack are the applications. These comprise
both the native applications provided with the
particular Android implementation (for
example web browser and email applications)
and the third party applications installed by
the user after purchasing the device.
Dalvik Virtual Machine
• The Dalvik Virtual Machine (DVM) is  an
android virtual machine optimized for mobile
devices. It optimizes the virtual machine
for memory, battery life and performance.
• Dalvik is a name of a town in Iceland. The Dalvik
VM was written by Dan Bornstein.
• The Dex compiler converts the class files into
the .dex file that run on the Dalvik VM. Multiple
class files are converted into one dex file.
• The compiling and packaging process from the
source file is as follows:
Dalvik Virtual Machine

The javac tool compiles the java source file into the class file.
The dx tool takes all the class files of your application and generates a single 
.dex file. It is a platform-specific tool.
The Android Assets Packaging Tool (aapt)  handles the packaging process.
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.

• Provides almost all of the capabilities of a real Android device.


Can simulate incoming phone calls and text messages, specify
the location of the device, simulate different network speeds,
simulate rotation and other hardware sensors and much more.

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

• Comes with predefined configurations for various Android phone,


tablet, Wear OS, and Android TV devices.
Android Emulator
The Android Emulator doesn't include virtual hardware
for the following:
• Bluetooth
• NFC
• SD card insert/eject
• Device-attached headphones
• USB
Android virtual devices
• Each instance of the Android Emulator uses an Android virtual
device (AVD) to specify the Android version and hardware
characteristics of the simulated device.

• To effectively test an app, create an AVD that models each


device on which app is designed to run. To create and
manage AVDs, use the AVD Manager.

• Each AVD functions as an independent device, with its own


private storage for user data, SD card, and so on. By default,
the emulator stores the user data, SD card data, and cache in
a directory specific to that AVD.

• When you launch the emulator, it loads the user data and SD
card data from the AVD directory.
Android Components
• Piece of code that has a well defined life cycle
• The core building blocks or fundamental components of 
Android are Activities, Services, Content Providers and
Broadcast Receivers.
• These components are loosely coupled by the
application manifest file AndroidManifest.xml  that 
describes each component of the application and how
they interact.
Ø Activities dictate the UI and handle the user
interaction to the smart phone screen.
Ø Services handle background processing associated
with an application.
Ø Broadcast Receivers handle communication
between Android OS and applications.
Ø Content Providers handle data and database
Android Components
• Besides the fundamental components there are
additional components:
Ø Fragments - represent a portion of user interface in
an Activity.
Ø Views - UI elements that are drawn on-screen
including buttons, lists forms etc.
Ø Layouts - View hierarchies that control screen
format and appearance of the view.
Ø Intents - Messages wiring components together.
Ø Resources - External elements, such as strings,
constants and drawable pictures.
Ø Manifest - Configuration file for the application.
Android Components
View
• Views are user interface (UI) elements that form
the basic building blocks of a user interface.
• Can be a button, a label, a text field, or many
other UI elements.
• Also used as containers for views, which means
there’s usually a hierarchy of views in the UI. 
Android Components
Activity
• An activity is a UI concept that usually represents a single
screen in your application.
• It generally contains one or more views, but it doesn’t have to.
• Helps the user do one thing, which could be viewing data,
creating data, or editing data.
• Most Android applications have several activities within them.

Fragment
• When a screen is large, it becomes difficult to manage all of its
functionality in a single activity. Fragments are like sub-
activities, and an activity can display one or more fragments on
the screen at the same time. When a screen is small, an
activity is more likely to contain just one fragment, and that
fragment can be the same one used within larger screens.
Android Components
Services
• Services in Android resemble services in Windows or other
platforms.
• A service is a component that runs in the background to
perform long-running operations.
• Android defines two types of services: local services and
remote services.
• Local services are components that are only accessible by
the application that is hosting the service.
• Conversely, remote services are services that are meant to be
accessed remotely by other applications running on the
device.
• An example of a service is a component that is used by an e-
mail application to poll for new messages. This kind of service
may be a local service if the service is not used by other
applications running on the device. If several applications use
Android Components
Content Provider
• A standard mechanism for applications to share data
(such as a list of contacts) without exposing the
underlying storage, structure, and implementation.
• Through content providers, you can expose your data
and have your applications use data from other
applications.
Android Components
Broadcast Receivers 
• Simply respond to broadcast messages from other
applications or from the system itself. These messages
are sometime called events or intents.
• 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 this is broadcast receiver who will intercept this
communication and will initiate appropriate action.
• There are following two important steps to make
Broadcast Receiver work for the system broadcasted
intents −
– Creating the Broadcast Receiver
– Registering Broadcast Receiver
Android Components
Intent
• An intent generically defines an “intention” to do some work.

Can use intents to perform the following tasks:


• Broadcast a message
• Start a service
• Launch an activity
• Display a web page or a list of contacts
• Dial a phone number or answer a phone call

• Intents are not always initiated by your application—they’re 


also used by the system to notify your application of specific
events (such as the arrival of a text message).
• Intents can be explicit or implicit. If you simply say that you
want to display a URL, the system decides what component
will fulfil the intention. You can also provide specific
information about what should handle the intention. Intents
loosely couple the action and action handler.
Android Components
• Implicit Intent - The implicit intent pulls up
the new application without being specified
which one to pull up.
Android Components
• Explicit Intent - The explicit intent will pull
up a specific application. One that you set
yourself when you are writing the code.
Android Components
AndroidManifest.xml
• The AndroidManifest.xml file contains
information of your package, including
components of the application such as
activities, services, broadcast receivers,
content providers etc.
• Defines the contents and behaviour of
your application.
Notifications
• A notification is a message that Android displays
outside an app's UI to provide the user with
reminders, communication from other people, or
other timely information from the app.
• Users can tap the notification to open an app or take
an action directly from the notification.
• Notifications appear to users in different locations
and formats, such as an icon in the status bar, a
more detailed entry in the notification drawer, as a
badge on the app's icon.
Navigation
• Refers to the interactions that allow users to
navigate across, into, and back out from the different
pieces of content within your app.
• Android Jetpack's Navigation component helps you
implement navigation, from simple button clicks to
more complex patterns, such as app bars and the
navigation drawer. 
Navigation
• Navigation occurs between your
app's destinations  anywhere in your app
to which users can navigate.
• These destinations are connected
via actions.
• The Navigation component consists of three
key parts  Navigation graph, NavHost,
NavController.
Navigation
• A navigation graph is a resource file that 
contains all of your destinations and actions.
• The graph represents all of your app's
navigation paths.
• Destinations are the 
different content areas
in your app.
• Actions are logical 
connections between
your destinations that
represent paths that
users can take.
Navigation
• A navigation host  is an empty container where 
destinations are swapped in and out as a user
navigates through your app  empty container
that displays destinations from your navigation
graph.
• The Navigation component contains a
default NavHost implementation, 
NavHostFragment, that handles swapping
fragment destinations.
• A NavController is an object that manages app
navigation within a NavHost. 
The NavController orchestrates the swapping of 
destination content in the NavHost as users 
move throughout an app.
Navigation component
The navigation component provides a number of
other benefits:
• Handling fragment transactions.
• Handling Up and Back actions correctly by default.
• Providing standardized resources for animations
and transitions.
• Implementing and handling deep linking.
• Including Navigation UI patterns, such as
navigation drawers and bottom navigation, with
minimal additional work.
Basic Navigation Patterns
Hamburger icon

• Hamburger Menu
– Hamburger menu (or
side drawer) is one of
the most popular
mobile navigation
patterns.
– The drawer panel
allows you to hide the
navigation beyond
the left edge of the
screen and reveal it
only upon a user’s 
action.
Basic Navigation Patterns
Hamburger Menu
• Advantages
– Large number of navigation options  it can
accommodate a large number of navigation options in a
tiny space.
– Clean design  allows the designer to free up screen by
shifting options off screen into a side menu.
• Disadvantages
– Less discoverable  When navigation is hidden, users
are less likely to use it.
– Clashes with platform navigation rules  almost a
standard on Android, but in iOS it simply cannot be
implemented without clashing with basic navigation
elements.
– The hamburger icon hides context  it doesn’t 
communicate the current location at a glance:
– Extra action is required to move to the target
destination  reaching a particular page usually takes at
least two taps (one tap on the menu icon and another on
Basic Navigation Patterns
• Tab Bar
– Inherited from
desktop design.
– Usually contains
relatively few
destinations, and
those destinations
are of similar
importance and
require direct access
from anywhere in the
app.
Basic Navigation Patterns
Tab Bar
• Advantages
– The tab bar fairly easily communicates the current
location. Properly used visual cues (icons, labels and
colors) enable the user to understand their current
location at a glance.
– Tab bars are persistent. The navigation remains in
sight no matter what page the user is viewing.
• Disadvantages
– The navigation options are limited. If your app has
more than five options, then fitting them in a tab or
navigation bar and still keeping an optimum touch-
target size would be hard.
– The location and logic of the tab bar options on
iOS and Android are different has to be taken into
consideration when designing a tab bar for a
particular platform.
Basic Navigation Patterns
• Priority +
– navigation that exposes the most important
navigation elements and hides away less
important items behind a “more”/+ button.
Basic Navigation Patterns
Priority +
• Advantages
– Prioritizes navigation options surfaces the
most frequently accessed navigation options.
– Makes use of available screen space  As
space increases, the number of exposed
navigation options increases.
– This menu is very adaptive  can be scaled
across screen sizes without having to transform
the pattern.
• Disadvantages
– Might hide some important navigation options
 requires designers to assume the relative
importance of navigation items may not be the
Basic Navigation Patterns
• Floating Action
Button
– Shaped like a circled
icon floating above
the UI, the floating
action button
changes color upon
focus and lifts upon
selection.
– Floating above the
interface of an app,
it promotes user
action
Basic Navigation Patterns
Floating Action Button
• Advantages
– Good way to prioritize the most important
action you want users to take.
– It takes up little screen space.
– It also improves effectiveness a floating
action button slightly impairs usability when
users first interact with the button. However,
once users have successfully completed a task
using the element, they are able to use it more
efficiently than a traditional action button.
Basic Navigation Patterns
Floating Action Button
• Disadvantages
– Can distract users
from content.
– Can block content.
Additional scrolling is
needed whenever the
user wants to see this
information.
– It is an icon-only
navigation  icon-
only button, with no
room for text labels 
hard to understand 
Basic Navigation Patterns
• Full-Screen Navigation
– This navigation approach
usually devotes the home page
exclusively to navigation.
– Users incrementally tap or
swipe to reveal additional
menu options as they scroll up
and down.
Basic Navigation Patterns
Full-Screen Navigation
• Advantages
– The full-screen navigation pattern is best for
achieving simplicity and coherence.
• Disadvantages
– You won’t be able to display any content 
except the navigation options.
Basic Navigation Patterns
• Gesture-Based Navigation
– uses swipes and other actions to control the
phone, rather than tapping on buttons
– has become a universal mode of navigation on
modern phones.
– Gestures  swipe, flick, pinch, spread, rotate,
tap, double tap, long press.
Basic Navigation Patterns
Gesture-Based Navigation
• Advantages
– It removes UI clutter allows you to make your
interfaces more minimal and to save screen
space for valuable content.
– The UI is more natural  gestures tend to be
similar across culture and experience
• Disadvantages
– The navigation is invisible  not easily
discoverable  can give rise to usability issues.
– User effort increases. Most gestures are neither
natural nor easy to learn or remember. without
proper visual hints and cues  users could get
confused about how to interact with the app.
Screen Independent Design
Screen Resolution
• Resolution is always referred in x*y form, which
means x is the number of pixels in horizontal
direction and y is the number of pixels in the
vertical direction.
• Example : HD display 1920*1080 = 2,073,600 is
the total pixels on screen

Pixel density 
• The number of pixels that fit into an inch is
referred to as pixel density (resolution)
• Screen pixel density and resolution vary
depending on the platform.
Screen Independent Design
Density independence
• refers to the uniform display of UI elements on screens
with different densities.

Density-independent pixels
• Written as dp (pronounced “dips”),  are flexible units
that scale to have uniform dimensions on any screen.
• They provide a flexible way to accommodate a design
across platforms.
• Material UIs use density-independent pixels to display
elements consistently on screens with different
densities.
• When developing an Android app, use dp to display
elements uniformly on screens with different densities.
Pixel density on Android 
Dp and screen density
• A dp is equal to one physical pixel on a screen with a
density of 160.

To calculate dp:
• dp = (width in pixels * 160) / screen density

Screen Screen width Screen width


Screen density
physical width in pixels in dps
1.5 in 120 180 px
1.5 in 160 240 px 240 dp
1.5 in 240 360 px
Pixel density on Android 
Scalable pixels (sp / sip)
• Serve the same function as density-independent pixels
(dp), but for fonts.
• The default value of an sp is the same as the default
value for a dp.
• The primary difference between an sp and a dp is that
sp’s preserve a user's font settings. 
• This unit is the best choice for defining the font size
and other font related dimensions
• Users who have larger text settings for accessibility
will see font sizes match their text size preferences.
Android Pre-requistes
• Java or Kotlin –  to code the Android
application
• XML - to design the graphical user
interface of the application.
• Gradle - to automate the Android
application process; gradle enables us to
code, compile, test and deploy the Android
app onto the device.
Java
• Object-oriented - classes, objects, methods,
abstraction, encapsulation, inheritance, etc.
• Oldest and well-known popular programming
language.
• Can be run on most of the platforms which are
supporting Java.
• Has various features of platform independence.
• It is secure, robust, multi-threaded and dynamic.
Kotlin
• Kotlin is a statically typed programming language used
for Java virtual machine and JavaScript.
• Officially supported by Google for mobile development
on Android.
• Kotlin is interoperable, concise and code has an easy
learning curve and provides an enhanced runtime
performance.
XML
• XML is very popularly known as Extensible Markup
Language.
• Similar to HTML which is used to describe data.
• XML was created as a standard way to encode data in
an Internet based application and is very popular as it
is readable, scalable, and simple to develop.
• XML is case sensitive and requires each tag to be
closed properly.
• XML layouts are used generally to make the graphical
user interfaces for an Android application, and you can
code it later on using Java or Kotlin logic.
• Android XML layouts are also a part of a large
umbrella of Android Files and Components, which are
known as resources.
• Resources are the additional files and the static
content that an application needs - color schemes,
layouts, menu layouts, etc.
Build System (Gradle)
• Gradle is a build system (open source) which is used to
automate building, testing, deployment etc.
• “Build.gradle”  are scripts where one can automate the
tasks.
• For example, the simple task to copy some files from one
directory to another can be performed by Gradle build script
before the actual build process happens.
Why is Gradle needed?
• Every Android project needs a gradle for generating an apk
(Android Application Package) from the .java and .xml files
in the project.
• A gradle takes all the source files (java and XML) and apply
appropriate tools, e.g., converts the java files into dex files
and compresses all of them into a single file known as apk
that is actually used.
Build System (Gradle)
• There are two types of build.gradle scripts that one would find
if you were using Gradle.
• Top-level build Gradle file and the Module-level build Gradle.
This file is in the root project of the Directory. The main
function is to define the build configurations that will be
applied to all the modules in the project.
• The module level build.gradle is located in the project or
module directory of the project. The dependencies are defined
and all the SDK's are declared here.
• It provides custom packaging options such as additional build
types and overrides setting in the main/application manifest or
the top-level build.gradle file.
• Both the top and the module level build.gradle files are the
main script files for automating the tasks in an Android project
and thereby generating the APK from the source file. So,
these two files are very important when we need to finally
generate the APK file.
References
• Head First Android Development: A Brain
Friendly Guide by Dawn Griffiths and David
Griffiths
• https://developer.android.com/
• Material Design
• https://en.wikipedia.org/wiki/Android_(operating_
system)

You might also like