Semester V Core Theory Paper - 9 Mobile Applications Development Objectives
Semester V Core Theory Paper - 9 Mobile Applications Development Objectives
This course aims to provide the students with a detailed knowledge on Mobile Application and
Development and covers Android programming from fundamentals to building mobile applications for
smart gadgets.
Native and web applications - Mobile operating systems and applications - Mobile Databases. Android:
History of Android - Android Features – OSS – OHA - Android Versions and compatibility - Android
devices - Prerequisites to learn Android -– Setting up software – IDE - XML. Android Architecture:
Android Stack - Linux Kernel - Android Runtime - Dalvik VM - Application Framework - Android
emulator - Android applications.
NATIVE APPs
A native app is one that is installed directly onto the smart phone and can work, in most cases,
with no internet connectivity depending on the nature of the app.
Native apps are installed through an application store (such as Google Play or Apple’s App
Store). They are developed specifically for one platform, and can take full advantage of the
device features.
In some smart phones the app can control devices and act as a controller itself.
They can also incorporate gestures (either standard operating-system gestures or new, app-
defined gestures). And native apps can use the device’s notification system.
WEB APPs
Web apps are not real applications; they are websites that, in many ways, look and feel like
native applications, but are not implemented as such.
They are run by a browser and typically written in HTML. 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.
Today, as more and more sites use HTML5, the distinction between web apps and regular web
pages has become blurred.
Web apps require internet access and its operation speeds are dependent on the quality of cell
signal or the speed of the wi-fi broadband you are connected to.
MOBILE APPLICATIONS
A mobile application, most commonly referred to as an app, is a type of application software designed
to run on a mobile device, such as a smartphone or tablet computer. Mobile applications frequently
serve to provide users with similar services to those accessed on PCs
Categories of apps
There are 33 categories of apps in Google Play and 24 categories in Apple’s App Store. And there are
just 7 app categories that have managed to reach more than 3% of users, according to Statistica research.
Gaming apps
Business apps
Dragon Dictation
Square Register – Point of Sale (Android & IOS)
Educational apps
Quizlet: Flashcard & Language App to Study & Learn (Android & IOS)
Lifestyle apps
Entertainment apps
Utility apps
QR Reader (IOS)
Travel apps
MOBILE DATABASES
Mobile databases are separate from the main database and can easily be transported to various places.
Even though they are not connected to the main database, they can still communicate with the database
to share and exchange data.
The mobile database includes the following components −
The main system database that stores all the data and is linked to the mobile database.
The mobile database that allows users to view information even while on the move. It shares
information with the main database.
The device that uses the mobile database to access data. This device can be a mobile phone,
laptop etc.
A communication link that allows the transfer of data between the mobile database and the main
database.
Advantages of Mobile Databases
Some advantages of mobile databases are −
The data in a database can be accessed from anywhere using a mobile database. It provides
wireless database access.
The database systems are synchronized using mobile databases and multiple users can access the
data with seamless delivery process.
Mobile databases require very little support and maintenance.
The mobile database can be synchronized with multiple devices such as mobiles, computer
devices, laptops etc.
Disadvantages of Mobile Databases
Some disadvantages of mobile databases are −
The mobile data is less secure than data that is stored in a conventional stationary database. This
presents a security hazard.
The mobile unit that houses a mobile database may frequently lose power because of limited
battery. This should not lead to loss of data in database.
History of Android
The history and versions of android are interesting to know. The code names of android ranges
from A to J currently, such
as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream
Sandwitch, Jelly Bean, KitKat and Lollipop
Let's see the android versions, codenames and API Level provided by Google.
ANDROID FEATURES
With Android operating system (OS) KitKat version 4.4 rolling out to mobile devices across the globe,
Google is on to something—Android is now more popular than iOS or the Windows phone. The OS
tends to garner rave reviews for its ease of use and open source, but many iOS or Windows phone users
argue that their preferred operating system can do just as much. In some respects that’s true, but here are
10 features unique to Android’s OS.
3) Infrared Transmission
The Android operating system supports a built-in infrared transmitter, allowing you to use your phone
or tablet as a remote control.
4) No-Touch Control
Using Android apps such as Wave Control, users can control their phones touch-free, using only
gestures. Have messy hands but need to turn off your screen or change a song? Simple. This could prove
especially useful if you’re driving, so you can keep both eyes on the road.
5) Automation
The Tasker app lets you not only control app permissions but also automate them.location services to be
active during the day wants to create a customized way to start your music. for example, with a voice
command and at a certain volume. Tasker can help.
6) Wireless App Downloads
Accessing app stores on any mobile device can be frustrating, but iOS makes it a little more difficult—
download an app on your computer, and it won’t sync to your mobile device until you plug in and
access iTunes. Using the Android Market or third-party options like AppBrain, meanwhile, let you
download apps on your PC and then automatically sync them your Droid, no plugging required.
7) Storage and Battery Swap
Android phones also have unique hardware capabilities. Google’s OS makes it possible to remove and
upgrade your battery or to replace one that no longer holds a charge. In addition, Android phones come
with SD card slots for expandable storage.
9) Widgets
Apps are versatile, but sometimes you want information at a glance instead of having to open an app and
wait for it to load. Android widgets let you display just about any feature you choose, right on the home
screen—including weather apps, music widgets, or productivity tools that helpfully remind you of
upcoming meetings or approaching deadlines.
Android OSS
Android is an open source operating system for mobile devices and a corresponding open source project
led by Google. This site and the Android Open Source Project (AOSP) repository offer the information
and source code needed to create custom variants of the Android OS, port devices and accessories to the
Android platform, and ensure devices meet the compatibility requirements that keep the Android
ecosystem a healthy and stable environment for millions of users.
An operational support system (OSS) is a set of programs that help a communications service provider
monitor, control, analyze and manage a telephone or computer network. As the traditional voice
telephone systems converges with packet-oriented Internet traffic
(including VoIP), broadband applications such as teleconferencing and DSL, more sophisticated
systems like OSS are needed activities like ordering and tracking network components (including IP
addresses), usage and traffic patterns, billing and reporting.
OHA members are primarily mobile operators, handset manufacturers, software development firms,
semiconductor companies and commercialization companies. Members share a commitment to
expanding the commercial viability of open platform development.
OHA member companies back the open platform concept for a number of reasons, as follows:
Lower overall handset costs: Opens up resources, which facilitates the focus on creating innovative
applications, solutions and services.
DEVICE COMPATIBILITY
Android is designed to run on many different types of devices, from phones to tablets and televisions.
As a developer, the range of devices provides a huge potential audience for your app. In order for your
app to be successful on all these devices, it should tolerate some feature variability and provide a
flexible user interface that adapts to different screen configurations.
ANDROID DEVICES
Popular Android devices include smartphones, tablets and e-readers. The Android OS is also built into a
limited number of other devices, such as netbooks, portable music players, the Binatone iHome Phone
and Odroid handheld game consoles.
Android device developers and programmers can find information at the Android website, which offers
an Android software development kit.
Within a short period, the Android platform became so popular that it surpassed Windows Mobile and
Symbian for a number of applications. Various mobile device manufacturers embraced the Android
platform due to its overwhelming popularity. The reasons behind this success are as follows:
ANDROID ARCHITECTURE
Android operating system is a stack of software components which is roughly divided into five sections
and four main layers as shown below in the architecture diagram.
Linux kernel
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides a level
of abstraction between the device hardware and it contains all the essential hardware drivers like
camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as
networking and a vast array of device drivers, which take the pain out of interfacing to peripheral
hardware.
Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit,
well known library libc, SQLite database which is a useful repository for storage and sharing of
application data, libraries to play and record audio and video, SSL libraries responsible for Internet
security etc.
Android Libraries
This category encompasses those Java-based libraries that are specific to Android development.
Examples of libraries in this category include the application framework libraries in addition to those
that facilitate user interface building, graphics drawing and database access. A summary of some key
core Android libraries available to the Android developer is as follows −
android.app − Provides access to the application model and is the cornerstone of all Android
applications.
android.content − Facilitates content access, publishing and messaging between applications
and application components.
android.database − Used to access data published by content providers and includes SQLite
database management classes.
android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
android.os − Provides applications with access to standard operating system services including
messages, system services and inter-process communication.
android.text − Used to render and manipulate text on a device display.
android.view − The fundamental building blocks of application user interfaces.
android.widget − A rich collection of pre-built user interface components such as buttons,
labels, list views, layout managers, radio buttons etc.
android.webkit − A set of classes intended to allow web-browsing capabilities to be built into
applications.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.
Android Runtime
This is the third section of the architecture and available on the second layer from the bottom. This
section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual
Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and multi-threading,
which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its
own process, with its own instance of the Dalvik virtual machine.
The Android runtime also provides a set of core libraries which enable Android application developers
to write Android applications using standard Java programming language.
Dalvik Virtual Machine | DVM
Modern JVM is high performance and provides excellent memory management. But it needs to be
optimized for low-powered handheld devices as well.
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 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
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.
You can use the emulator manually through its graphical user interface and programmatically through
the command line and the emulator console. For a comparison of the features available through each
interface.
The Android Emulator has additional requirements beyond the basic system requirements for Android
Studio, which are described below:
Intel processor on Windows or Linux: Intel processor with support for Intel VT-x, Intel EM64T (Intel
64), and Execute Disable (XD) Bit functionality
AMD processor on Linux: AMD processor with support for AMD Virtualization (AMD-V)
and Supplemental Streaming SIMD Extensions 3 (SSSE3)
AMD processor on Windows: Android Studio 3.2 or higher and Windows 10 April 2018 release or
higher for Windows Hypervisor Platform (WHPX) functionality
To work with Android 8.1 (API level 27) and higher system images, an attached webcam must have the
capability to capture 720p frames.
Application Framework
The Application Framework layer provides many higher-level services to applications in the form of
Java classes. Application developers are allowed to make use of these services 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
All the Android application at the top layer. You will write your application to be installed on this layer
only. Examples of such applications are Contacts Books, Browser, Games etc.