Mobile Application Development
Mobile Application Development
BY
JA G R U T I PAT IL
SA C H IN VA ISH N AV
INTRODUCTION
Android is an open-source operating system based on Linux with a Java programming interface for mobile devices such
as Smartphone (Touch Screen Devices who supports Android OS) as well for Tablets too.
The operating system has developed a lot in last 15 years starting from black and white phones to recent smart phones
or mini computers. One of the most widely used mobile OS these days is android.
The android is a powerful operating system and it supports large number of applications in Smartphones.
OPEN HANDSET ALLIANCE (OHA)
Open Distribution Model : Google Play store has very few restrictions on the
The Google Play Store hosts millions of apps, fueling a vast ecosystem.
Seamless integration with Google services enhances user experience and productivity.
Android offers extensive customization options for users and developers alike.
Affordable and accessible, Android connects people worldwide to the digital realm.
It serves as a platform for emerging technologies like AR, VR, AI, and IoT.
APPLICATIONS OF ANDROID
services.
tools.
payment processing.
customization tools.
FEATURES OF ANDROID
Storage
Multitasking WiFi Direct
Voice Based Features Web Browser
Multitouch Open Source
External Storage Accessibility
Video Calling Media Support
Handset Layout Streaming Media Support
Google cloud Messaging Voice Based Features
TOOLS, AND SOFTWARE REQUIRED
Application can be performed on below operating systems.
Microsoft windows
Mac
Linux Tools Required for Android Development:
Android Studio (IDE),
Android SDK,
JAVA Development Kit (JDK),
Git (version control) -Optional,
Design tools (Adobe XD, Sketch, Figma) -
Optional,
Testing tools (Android Emulator, Firebase
Test Lab).
ANDROID ARCHITECTURE
1.Linux Kernel: Core system operations: device drivers, power
management, memory management, resource access.
2.Native Libraries: Core C/C++ libraries and open-source
tools enhancing system-level functionalities.
3.Android Runtime: Core Java libraries and Dalvik Virtual
Machine (DVM) for executing Android applications
efficiently.
4.Android Framework: Comprehensive APIs for application
development, including UI management, telephony services,
and location handling.
5.Applications: Utilize framework and runtime to deliver
diverse functionalities like home, contacts, settings, games,
OS COMPARISON
WINDOWS ANDROID
It was developed and is owned by Microsoft Incorporation. It was developed and is owned by Google LLC.
Current stable version is Windows 10. Current stable version is Android 10.
Preferred license is Proprietary and Source-available. Preferred license is Apache 2.0 and GNU GPLv2.
It is the most used operating system in personal computers. It is the most used operating system overall.
• AVD is an emulation device that runs on your computer and mimics the
functionality of a physical Android device.
• It allows developers to test their applications on various Android device
configurations, such as different screen sizes, resolutions, and Android
versions.
• AVDs are useful for testing apps without needing access to physical
Android devices, making development more accessible and efficient.
• When creating an AVD, developers can specify device specifications,
including screen size, RAM, storage, and Android API level.
• AVDs are commonly used for debugging, performance testing, and
ensuring compatibility across different Android devices.
EMULATOR
• The Android Emulator is a tool provided by the Android SDK that simulates the behavior of Android devices on
your computer.
• It allows developers to run and test their Android applications on their development machines without needing
physical devices.
• Emulator performance has improved over time, but it may still be slower than testing on a physical device,
especially for resource-intensive applications.
• Emulator supports various features such as multi-touch input, hardware acceleration, camera emulation, and GPS
simulation.
• Developers can create custom device configurations and use snapshots to save emulator states for faster startup
times.
• Emulator is an essential tool for Android developers, especially for testing apps across different Android versions
and device configurations.
ANDROID DEVELOPMENT TOOLS (ADT)
DVM uses its own byte code and runs “.Dex” file. From Android JVM uses java byte code and runs “.class” file
2.2 SDK Dalvik has got a Just in Time compiler having JIT (Just In Time).
For DVM very few Re-tools are available. For JVM many Re-tools are available.
There is constant pool for every application. It has constant pool for every class.
Here the executable is APK. Here the executable is JAR.
CONTROL FLOW AND DIRECTORY STRUCTURE
FOLDERS FROM DIRECTORY STRUCTURE:
app: The App folder contains three subfolders (manifests, java and res) that make up our application.
They are divided so that it should be fairly easy to determine which resources go in which folder.
Manifest: This is where we would put our manifest files. Most Android apps have single manifest file. But an app
may have several manifest files due to application versioning, or for supporting specific hardware.
Java: This is the folder in our project where we will be storing all of the source code files written in Java
programming language.
res: It contains folders that help us to separate and sort the resources of our application. Resources
basically, mean all the needed files except the source code.
drawable: The drawable folder contains graphics that can be drawn to the screen.
layout: The layout folder contains XML files used for your layouts. These files are used to set up the layout for your
Activity and is used for basic alignment of your layouts, components, widgets, and similar
resources that are used for the UI of your application.
mipmap: The mipmap folder contains the launcher icon files for the app. A launcher icon is a graphic that
represents your app to users.
values: The values folder contains XML files that contain simple values, such as strings, integers, and colors.
The values folder is used to keep track of the values we will be using in our application.
UI DESIGN
The “views” are the building blocks of a U.I design and composes of almost every basic
U.I element like TextViews, EditTexts, ImageViews etc. This ‘view’ however comes along with a few properties
bundled to them. Some of the important and are often used to build up a complete meaningful screen design.
id
width
height
margin
padding
HELLO WORLD! PROGRAM
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
//MainActivity.java
android:layout_width="match_parent"
packagecom.example.helloword;
android:layout_height="match_parent"
import androidx.appcompat.app.AppCompatActivity;
tools:context=".MainActivity">
import android.os.Bundle;
<TextView android:layout_width="wrap_content"
public class MainActivityextends AppCompatActivity {
android:layout_height="wrap_content"
@Override
android:text="Hello World!"
protected void onCreate(Bundle savedInstanceState) {
app:layout_constraintBottom_toBottomOf="parent"
super.onCreate(savedInstanceState);
app:layout_constraintLeft_toLeftOf="parent"
setContentView(R.layout.activity_main);
app:layout_constraintRight_toRightOf="parent"
}
app:layout_constraintTop_toTopOf="parent" />
}
</androidx.constraintlayout.widget.ConstraintLayout>
FUNDAMENTALS OF UI DESIGN
• Vertical
• Horizontal
Absolute Layout
Frame Layout
Table Layout
Relative Layout
LINEAR LAYOUT
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <!-- Horizontal Orientation set -->
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:id="@+id/button"
android:background="#358a32" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2"
android:id="@+id/button2"
android:background="#0058b6" />
</LinearLayout>
ABSOLUTE LAYOUT
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#03A9F4"
tools:context=".MainActivity">
<Button android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="15dp"
android:layout_y="25dp"
android:background="#FF9800"
android:text="Button"> </Button>
<Button android:id="@+id/b2“
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="13dp"
android:layout_y="152dp"
TEXTVIEW
TextView displays text to the user and optionally allows them to edit it programmatically. TextView is a complete
text editor, however basic class is configured to not allow editing but we can edit it.
Program
BUTTON
In Android, Button represents a push button. A Push buttons can be clicked, or pressed by the user to perform an
action. There are different types of buttons used in android such as CompoundButton, ToggleButton, RadioButton.
Program - Button
Program - ImageButton
Program - ToggleButton
LISTVIEW, GRIDVIEW, IMAGEVIEW, SCROLLVIEW, AND TOAST
ListView is used to display scrollable lists of data in Android applications, with support for custom adapters and item
layouts.
GridView for Grid-based Layouts:
GridView organizes items in a grid layout, commonly used for displaying images or data in a tabular format.
ImageView for Displaying Images:
ImageView is used to display images in Android applications, supporting various image formats and scaling options.
ScrollView for Scrolling Content:
ScrollView enables vertical scrolling of content that exceeds the available screen space, allowing users to view all content
within a limited space.
Introduction to Toast for Brief Messages:
Toast is a lightweight notification mechanism used to display brief messages or notifications to users, typically for
providing feedback or alerts in the application.
DATE TIME PICKER
Date Time Picker is a UI component used in Android applications to allow users to select dates and times
conveniently.
Usage and Benefits:
Introduction to Intent:
Intent is a messaging object used to request an action from another app component or system.
Types of Intents:
Content Provider:
Content Provider is a component that manages access to a structured set of data, typically stored in a SQLite database
or other data storage.
Fragments:
Fragments are modular UI components representing a portion of the user interface or behavior within an activity.
SERVICES AND FEATURES
Services:
Services are components that run in the background to perform long-running operations or handle network
transactions.
Features of Services:
Background operation, independent execution, inter-process communication (IPC), foreground service, bound
service.
MULTIMEDIA FRAMEWORK AND PLAY AUDIO AND VIDEO
Multimedia Framework:
Android Multimedia Framework provides APIs for playing audio and video, recording audio and video, and
manipulating multimedia content.
Playing Audio and Video:
Audio Capture:
Camera API for capturing photos and videos using the device camera.
Bluetooth:
Animation framework for creating visual effects and transitions in the UI.
SQLITE DATABASE CREATION AND CONNECTION
SQLite Database:
SQLite is a lightweight relational database management system used for storing data in Android applications.
Creation and Connection: