You are on page 1of 83

Android App - Video Player

Practical Training Seminar Report

Submitted in partial fulfillment

for the award of the Degree of

Bachelor of Science

in INFORMATION TECHNOLOGY

Submitted To: Submitted By:

Mr. Devesh Bandil Student Name : Aaryana gaumat

Asst. Professor Roll No: CA13441813329

Department Of Computer Application

Suresh Gyan Vihar University, Jaipur-302026


Rajasthan

1
Academic Session 2019-2020

Company Profile:
Our specialty is thinking outside the box and our approach is looking at IT from a
business prospective. We understand business is not just about technology. That’s why we
manage your IT systems and leverage technology such as cloud services in ways that best
support your business needs, goals, and growth plans. We started this business to help
clients achieve success through thoughtfully applied technology; this is at our core and we
live this every day.

We do not settle for less than the best, but provide outstanding managed IT services that
will enhance any and every business. This is what we do best, and it can only be done by
highly motivated and skilled nerds. Our customers enjoy peace of mind because they
know we have them covered.

2
ACKNOWLEDGEMENTS

I take this opportunity to extend my sincere thanks to Gyan Vihar


University and SDI .
for offering a unique platform to earn exposure and gather knowledge
in the field of android development. First of all, I extend my heartfelt
gratitude to my project guide Mr. Ashok Agarwal, for having made my
summer training a great learning experience by giving me her guidance,
insights and encouragement which acted as a continuous source of
support for me during this entire period. I would also like to thank my
colleagues for their sincere cooperation. Without which the success of
this project wouldn’t had been possible. I would also like to express my
profound gratitude to my faculty guide Mr. VAIBHAV BHARADWAJ
for his constructive support during the summer internship period,
which leads to successful completion of my internship.

(AARYANA GAUMAT)

TABLE OF CONTENTS
3
Title

Candidate’s Declaration
Acknowledgements
List of Figures

Chapter 1: Introduction

1.1. Introduction to Organisation


1.2. Introduction to Android
1.2.1. Birth of Android
1.2.2. Features
1.2.3 Architecture
1.2.4 Android Application Components
1.2.5 Android Life Cycle
1.3. Introduction to Project
1.4 Requirements
1.5. Project Category(Mobile Application)
1.6. Problems in Existing System
1.7. Objectives

Chapter 2: System Study

2.1. Existing System


2.2. Proposed System
2.3. Unique features of System

Chapter 3: Requirement Analysis and System Specifications

3.1. Feasibility Study


3.2. Software Requirement Specification Document
3.2.1. Data Requirements
3.2.2. Functional Requirement
3.2.3. Performance Requirements

4
3.2.4. System Dependability
3.2.5. Maintainability Requirements
3.2.6. Security Requirements
3.2.7. Look and Feel Requirements
3.3. External Interface Requirements
3. 3.1 User Interfaces
3.3.2. Hardware Interfaces
3.3.3. Software Interfaces
3.3.4. Communications Interfaces
3.4. Other non functional requirements
3.4.1. Performance Requirements
3.4.2. Real-Time
3.4.3. System Resource Consumption
3.4.4. Safety Requirements
3.4.5. Security Requirements
3.4.5. Software Quality Attributes
3.5. Expected Hurdles
3.6. SDLC Model Used

Chapter 4: System Design

4.1 Design Approach


4.2 Detail Design
4.3 System Design
4.4 User Interface Design
4.5 Database Design
4.5.1 ER Diagrams
4.5.2 Normalization
4.5.3 Database Manipulation
4.5.4 Database Connection Control and Strings
4.6 Methodology

Chapter 5: Coding

Chapter 6: Implementation, Testing and Maintenance

5
6.1. Introduction to Languages, IDE’s, Tools and Technologies Used For
Implementation .
6.1.1 Java
6.1.2 Android Development Tools
6.1.3 Security and Permission Concept in Android
6.2 Coding Standards of Language Used
6.3 Project Scheduling
6.4 Test Plan and Test Activities
6.4.1 Test Plan
6.4.2 Test Activities

Chapter 7: Results and Discussions

7.1 User Interface Representation


7.1.1 Brief Description of Various Modules
7.2 Snapshots of System

Chapter 8: Advantage and Disadvantage

Chapter 9: Conclusions and Future Scope

Chapter10: References

6
Chapter-1
INTRODUCTION
1.2 Introduction to Android

Android is a software stack for mobile devices that includes an operating


system, middleware and key applications. Android is a software platform
and operating system for mobile device s based on Linux operating system
and developed by Google and Open Handset Alliance. It allow developers to
write managed code in java – like language that utilized Google developed
java libraries ,but doesn’t support developed in native code.

The unveiling of the Android platform on 5 November 2007 was announced


with the founding of the Open Handset Alliance, a consortium of 34
hardware, software and telecom companies devoted to advantage open
standards for mobile devices. When released in 2008, most of the Android
platform will be made available under the Apache free-software and open-
source license.

1.2.1 BIRTH OF ANDROID

Google Acquires Android Inc. : In July 2005, Google acquire Android Inc.,
a small start-up company based in Palo Alto, CA. Android’s co-founders who
went to work at Google included Andy Rubin(co-founder of Danger), Rich
Miner(co-founder of Wildlife Communication, Inc), Nick Sears(once VP at T-

7
Mobile) and Chris White(one of tha first engineers at webTV). At the time,
little was known about the functions of Android Inc. Other than they made
software for mobile phones.

At Google, the team, led by Robin, developed a Linux-based mobile device


OS which they marked to handset makers and carriers on the premise of
providing a flexible, upgradeable, system. It was reported the Google had
already lined up a serried of hardware component and software partner and
signalled to carriers that it was open to various degrees of cooperation on
their part.

Open Handset Alience Founded : On 5 Nov 2007, Open Handset Alliance,


a consortium of several companies which include Google, HTC, Intel,
Motorola, Qualcomm, T-mobile, Sprint Nextel and NVIDIA, was unveiled
with the goal to develop open standards for mobile devices. Android, an
open source mobile device platform based on the Linux operating system.

Hardware : Google has unveiled at least 3 prototype for Android, at the


Mobile World Congress on Feb 12, 2008. One prototype at the ARM both
displayed several basic Google applications. A‘d-pad’ control zooming of
item in the dock with a relatively quick response.

1.2.2 FEATURES

1. Application Framework: It is used to write applications for Android.


Unlike other embedded mobile environments, Android application are all
equal, for instance, an applications which come with the phone are no
different than those that any developer writes. The framework is
supported by numerous open source libraries such as open ssl, SQLite
and libc. It is also supported by the Android core libraries. Form the Point
of security, the framework is based on UNIX file system permission, that
assure application have only those abilities that mobile phone owner
gave them at install time.

8
2. Dalvik Virtual Machine (DVM): It is extremely low memory waste virtual
machine, which was design especially for Android to run on embedded
systems and work well in low power situation. It is also timed to the CPU
attributes. The Dalvik Virtual Machine creates a special file format (.DEX)
that is created through build time post processing. Conversion between
java classes and .DEX format is done by including “dx” tool.

3. Integrated Browser: Google made a right choice on choosing WebKit


as open source web browser. They added a two pass layout and frame
flattening. Two pass layouts loads a page without waiting for blocking
elements, sun as external CSS or external JavaScript and after a whole
renders again with all resources downloaded to the device. Frame
flattening converts founded frames into single and loads into the
browser. These features increase speed and usability browsing the
internet via mobile phone.

4. Optimized Graphics : As Android has 2D graphics based on OpenGL


ES 1.0 possibly we will see great application like Google Earth and
spectacular games like legendary 3D game Doom was presented using
Android on the mobile phone.

5. SQLite : Extremely small(~500kb) relational database management


system, which is integrated in Android. It is based on function calls and
single file, where all definitions, tables and data are stored. This simple
design is more than suitable for a platform such as Android.

6. Handset Layout : The platform is adaptable to both larger, VGA, 2D


graphics library based on OpenGL ES 1.0 specification, traditional smart
phone layouts. An underlying 2D graphics engine is also include. Surface
Manager manages access to the display subsystem and seamlessly
composites 2D and 3D graphic layers from multiple applications.

9
7. Data Storage : SQLite is used for structured data storage. SQLite is
powerful and lightweight relational database engine available to all
application.

8. Connectivity : Android supports a wide variety of connectivity


technologies including GSM, CDMA, Bluetooth, EDGE, EVDO, 3G and
Wifi.

9. Messaging : SMS, MMS, and XMPP are available forms of messaging


including threaded text messaging.

10. Web Browser : The browser available in Android is based on the Open
source WebKit application framework. It include LivWevCore which is a
modern web browser engine which powers both the Android browser and
an embeddable web view.
11. Java Virtual Machine : Software written in java cane be compiled into
Dalvik byte code and Executed in the Dalvik Virtual Machine, which is a
specialized VM implementation designed for mobile device use, although
not technically a standard Java Virtual Machine.

12. Media Support : Android will support advanced audio/video/still media


formats such as MPEG , H.264, MP3 and AAC, AMR, JPEG, PNG, GIF.

13. Additional Hardware Support : Android is fully capable of utilizing


video/still camera, touch screens, GPS, compasses, accelerometers,
and accelerated 3D graphics.

14. Development Environment: Includes a device emulator, tool for


debugging, memory and performance profiling, a plugin for the Eclipse
IDE. There are a number of hardware dependent features, for instance, a
huge media and connections support. GPS, improved support for
Camera and simply GSM telephony. A great work was done for the
developers to start work with Android to start work with Android Using

10
device emulator, tools for debugging to start work with Android using
emulator, tools for debugging and plug-in for Eclipse IDE.

1.2.3 ARCHITECTURE

The following diagram shows the major components of the Android


operating system. Each section is described in more detail below:

Fig.1Architecture of Android

1. Android Runtime : Android includes a set of core libraries that provides


most of the functionality available in the core libraries of the java

11
programming language. Every Android application runs in its own process,
with its own instance of the Dalvik Virtual Machine. Dalvik has been written
so that a device can run multiple VMs efficiently.

The Dalvik VM executes files in the Dalvik Executable(.dex) format which


is optimized for minimal memory footprint. The VM is register- based and
run classes compiled by a java language compiled that have been
transformed into the .dex format
By the included”dx” tool. The Dalvik VM relies on the Linux kernel for
underlying functionality such as threading and low level memory
management.

2. Linux Kernel: Android uses the Linux kernel under the hood. Because
Linux is open-source, Google’s Android developers could modify the Linux
kernel to fit their needs. Linux gives the Android developers a pre-built,
already maintained operating system kernel to start with so they don’t
have to write their own kernel. This is the way many different devices are
built — for example, the PlayStation 4 uses the open-source FreeBSD
kernel, while the Xbox One uses the Windows NT kernel found in modern
versions of Windows. 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.

3. Library : 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.

This category encompasses those Java-based libraries that are specific to


Android development. Examples of libraries in this category include the

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

4. 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 −

13
 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.

5. Application : You will find 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. 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.

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

There are following four main components that can be used within an Android
application:

Components Description

Activities They dictate the UI and handle the user interaction to the

14
smart phone screen

Services They handle background processing associated with an


application.

Broadcast Receivers They handle communication between Android OS and


applications.

Content Providers They handle data and database management issues.

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 −

public class MainActivity extends Activity {

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 −

public class MyService extends Service {

15
3. Broadcast Receivers : 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 this is broadcast receiver who will intercept this communication and will
initiate appropriate action.
A broadcast receiver is implemented as a subclass
of BroadcastReceiverclass and each message is broadcaster as
an Intent object.

public class MyReceiver extends BroadcastReceiver {

public void onReceive(context,intent){}

4.Content Providers : A content provider component supplies data from one


application to others on request. Such requests are handled by the methods of
the ContentResolverclass. 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.

public class MyContentProvider extends ContentProvider {

public void onCreate(){}

16
1.2.5 ACTIVITY LIFECYCLE

An activity represents a single screen with a user interface just like window or
frame of Java.Android activity is the subclass of ContextThemeWrapper class.

If you have worked with C, C++ or Java programming language then you must
have seen that your program starts from main() function. Very similar way,
Android system initiates its program with in an Activity starting with a call
ononCreate() callback method. There is a sequence of callback methods that
start up an activity and a sequence of callback methods that tear down an
activity as shown in the below :

Activity life cycle diagram:

17
Fig.2Life Cycle of Android

The Activity class defines the following call backs i.e. events. You don't need to
implement all the callbacks methods. However, it's important that you
understand each one and implement those that ensure your app behaves the
way users expect.

Callback Description

onCreate() This is the first callback and called when the activity is first

18
created.

onStart() This callback is called when the activity becomes visible to the
user.

onResume() This is called when the user starts interacting with the application.

onPause() The paused activity does not receive user input and cannot
execute any code and called when the current activity is being
paused and the previous activity is being resumed.

onStop() This callback is called when the activity is no longer visible.

onDestroy() This callback is called before the activity is destroyed by the


system.

onRestart() This callback is called when the activity restarts after stopping it.

1.2. Introduction

The era of mobile technology opens the windows to the android app. The
websites are vanishing and the mobile phones are emerging. It‟s the time to
change from conventional websites to apps, which has become the part of our
daily routine. We are introducing “PIZZA PARLOR” the android application
software which would be a miniature the way or order pizza from our home. It
works not only as an application, but also it can work as to improve ordering
system. Our multipurpose program is considering the user as either an albertian
or non-albertian, student or parent, faculties or office staffs individually. Project
gives a total solution to everyone. The application becomes favourite among my
surrounding. It gives us more comfort and a better user interface. Latest news
and updates about pizza is got through notifications. Individual account can be
created for everyone. Anyone can share ideas about pizza. Pizza organizations
can invite or make publicity to their pizza. Order can be taken print. It is also
useful for everyone to communicate through this application. Everybody can

19
interact with whole staff of PIZZA PARLOR directly. Latest news and updates
about pizza is got through notifications .Copy of the progress cards are mailed.
The android app is also convenient to delivered on time.

1.3 Project Category (Mobile Application)

”PIZZA PARLOR” is a mobile application i.e an Internet based Mobile application.


A mobile application is a computer program designed to run on smartphones,
tablet computers and other mobile devices. Apps are usually available through
application distribution platforms, which began appearing in 2008 and are
typically operated by the owner of the mobile operating system, such as the
Apple App Store, Google Play, Windows Phone Store, and BlackBerry App
World.

Mobile apps were originally offered for general productivity and information
retrieval, including email, calendar, contacts, and stock market and weather
information. However, public demand and the availability of developer tools drove
rapid expansion into other categories, such as mobile games, factory automation,
GPS and location-based services, banking, order tracking, ticket purchases and
recently mobile medical apps. The explosion in number and variety of apps made
discovery a challenge, which in turned to the creation of a wide range of review,
recommendation and duration sources , including blogs, magazines, and
dedicated online app-discovery services.

Mobile application development is the process by which application software is


developed for low-power hand held devices such as personal digital assistants,
enterprise digital assistants or mobile phones. These applications can be pre-
installed on phones during manufacturing, downloaded by customers from
various mobile software distribution platforms, or delivered as web applications
using server-side or client side processing (e.g. JavaScript) to provide an
”application-like” experience within a Web browser.

20
Application software developers also have to consider a lengthy array of screen
sizes, hardware specifications and configurations because of intense competition
in mobile software and changes within each of the platforms. Mobile app
development has been steadily growing, both in terms of revenues and jobs
created. The popularity of mobile apps has continued to rise, as their usage has
become increasingly prevalent across mobile phone users.

1.4 Requirements

Hardware: Memory of 4 GB RAM or more


Monitor Resolution 1024x768 0r more
Intel Pentium 4 or AMD Athlon @ GHz (or faster)
1 GB (or more) available hard disk space
Software: Eclipse version 3.8 and 4.2 (Juno)
Android SDK tools 22.0.5
Java Runtime Environment 1.6
Java SE JDK v6.0
Operating
System: Windows XP, Windows 7, Windows 8, Windows 10
Virtual
Environment: Android Emulator

1.5 Objectives

The proposed system’s objectives are to overcome all the limitations and
drawbacks of the existing system. The online PIZZA PARLOR application is
user-friendly android application. The main objective of the application is its
simplicity of design and ease of implementation that shows and helps to collect
most of the information about pizza order in restaurant. The interface will be very
user-friendly.

The main objectives of the proposed system can be enumerated as follows:


• Faster dissemination of orders of pizza.

21
• Easy way to broadcast your message.
• Helps you to be updated with what’s going on in pizza parlor.
• Good way to advertise about different types of pizzas.
• User can also follow a group for ordering pizza.

1.6 Problem Formulation

To develop a mobile application that will help you receiving the confirmation
of order of pizza , anywhere , anytime. Earlier their was problem that orders were
not confirmed soon. If there is any conjunction in the app, nobody will be able to
read it. Moreover any update on website is also very difficult. Everyone feels lazy
to go and update the website data. The more easy way is, just type in message
sitting wherever and order by pressing a button. It will notify all people,to
registered with that application.

1.7 Identification of Need

1. As we discussed earlier that manual maintenance of a notices is a tedious


job.So to enhance the ease of working, we go for this package.

2. Giving the facility to easily order items to all anytime and anywhere.

3. Making people updated about all the events and activities going on in the
restaurant.

4. People will not require to stand in the crowd to see the notice. There will
be no issue of fighting in order first. Everyone is first to order inside their
own mobile phone anywhere and anytime.

5. The least but most important it saves time.

22
6. Utilizing less man power. As there are many persons involved in
circulating the message. With this application, only one person is
required to post the notice. Rest of the man power is saved in the entire
process.

23
Chapter-2
SYSTEM STUDY

2.1 Existing System


Currently ordering some item in restaurants has manual system. It’s outdated
now. As nobody has a time to stand in rush in order for a time on restaurant.

Limitations of Existing System:

1. Order of Data: Notice can get out of order in traditional system.


Automated ordering system allow users to quickly check whether
information already exists somewhere in the system, which helps avoid
problems like redundant data.

2. Complexity: Automated system is less complex than manual system of


handling data, which can make it easier for untrained people to access
and manipulate data. Anyone having the basic knowledge of mobiles can
work on the automated system.

3. Inconsistency of data: There will be an unavailability for future use, since


data might get misplaced during manual handling system. So data won’t
be preserved properly for future use.

4. Damage: Manual data stack are vulnerable to damage, destruction and


theft in ways that digital databases are not. A company may back up its
digital data both on site and at offsite locations, ensuring its security if the
office building suffered a fire or similar disaster. A manual database,
however, may only exist in one place without any copies. As a result, a
manual database would be very vulnerable to a fire or other natural
disaster. In addition, while access time in a manual database system,
information must be found by hand rather than electronically. While a
digital database will typically allow users to search the entire database for
specific information in seconds, someone looking for information in a

24
manual system may have to spend hours searching for a particular piece
of data.

5. Editing and Communication: Manual data do not allow users to easily


edit data or information. Manual data often cannot be edited directly,
forcing users to make new copies. To distribute order , users must require
staff. PIZZA PARLOR app allow users to edit information fields directly,
and because data is stored digitally, it is already in a form that can be
easily transmitted.

2.2 Proposed System


Proposed System will be able to do the following:
1. To eliminate wastage of time and energy: PIZZA PARLOR app will be able
to save lot of paper and time. It directs people energy and attention to one thing
at a time by placing proper persons at their proper places at the proper time.
Everything will be instantaneous.

2. To avoid duplication and overlapping: This application will help to remove


the delicacy . So student and staff will be given correct information all the time.

3. To ensure attention to each and every order: PIZZA PARLOR App ensures
that everyone has kind attention to every data and updates going on in
restaurant. There will be a buzz at each and every data to drive the attention of
people to check it once. In this way, people will be well informed about their
restaurant activities.

4. To bring system into restaurant: It would be dire need of all restaurants as


its easy and shortcut method to inform all. In the absence of proper notification
system will make it very difficult to order at right time.

5. Searching a particular order: This application allows you search the data
very easily through title of pizza. If anyone forgot about the order details, they can
search it out very easily.

25
6. Free Service: It gives free service to all. There will be no cost of sending
opinions and order to all. Just have the good system implemented in restaurant
and that too free of cost.

7. Prevent Crowd in Restaurant: As you can see, there is always a crowd in


may restaurants, with this application there will be no more crowd. Everyone will
be well ordered even at their homes. So they are free to do there other work.

8. Automatically Updated Dashboard: The dashboard of notice is automatically


updated when a new message arrives. The user can himself refresh the
dashboard to see any new notice.

9. Anytime Anywhere Service: With this application, order will be delivered


anytime and at any place. There is no restriction of time to send an order.

10. Keeping Order at one place: This application allow you to have place an
order in one place only. If there is an attachment with that, all will be placed in a
separate folder dedicated to that application. So there will be no here and there of
data.

2.3 Unique Features of System

The unique features of this application are as follow:


1. GCM Notification: Google Cloud Messaging has been used to broad cast
notices to all who are registered with this application. It will help you receive the
notification even if you application is closed. So it implements anywhere anytime
notifications. Google Cloud Messaging (GCM) is a free service for sending
messages to Android devices. GCM messaging can greatly enhance the user
experience. Your application can stay up to date without wasting battery power
on waking up the radio and polling the server when there are no updates. Also,
GCM allows you to attach up to 1,000 recipients to a single message, letting you
easily contact large user bases quickly when appropriate, while minimizing the
work load on your server.

26
2. Battery Saving Application: This application saves your battery too. Its
because, the service implemented in application is not running all the time.
Whenever GCM ping the mobile, only then it makes a broadcast to phone that
initiates the service. In this way, its saving your battery a lot.

3. Automatically Updated Dashboard: The dashboard of notification is


automatically updated when a new message arrives. The user can himself
refresh the dashboard to see any new notice.

4. Anytime Anywhere Service: With this application, notification will be


delivered anytime and at any place. There is no restriction of time to send a data.

5. Keeping order at one place: This application allow you to have order in one
place only. If there is an attachment with that, all will be placed in a separate
folder dedicated to that application. So there will be no here and there of notices.

6. Free Service: It gives free service to all. There will be no cost of sending order
to all. Just have the good system implemented in restaurant and that too free of
cost.

7. Case Pictures in One Folder: The attachment of data goes at one place only.
If you want to see all attachments, you can go in gallery and can see it. It’s a
good feature of this application that cares for our files organisation in phone too.

27
Chapter- 3
Requirement Analysis and System Specifications

3.1 Feasibility Study

Depending on the results of the initial investigation, the survey is expanded to a


more detailed feasibility study. Feasibility study is a test of system proposal ac-
cording to its work ability, impact on the organization, ability to meet user needs,
and effective use of resources. The objective for this phase is not to solve the
problem but to acquire a sense of scope. During the study, the problem definition
is crystallized and aspects of the problem to be included in the system are deter-
mined.

Mobile Application Development Systems are capital investments because


resources are being spent currently in order to achieve benefits to be received
over a period of time following completion. There should be a careful assessment
of each project before it is begun in terms of economic justification, technical
feasibility, operational impact and adherence to the master development plan.
We started the project by listing the possible queries that the user might want to
be satisfied. And on these lines we guided the project further.

The three main points, kept in mind at the time of project, are :

• Possible (To build it with the given technology and resources)


• Affordable (given the time and cost constraints of the organization)
• Acceptable (for use by the eventual users of the system)

The three major areas to be considered while determining the feasibility of a


project are :

1. Technical Feasibility: The technical issue usually raised during the


feasibility stage of the investigation includes the following :
• Does the necessary technology exist to do what is suggested?
• Do the proposed equipments have the technical capacity to hold the data

28
required to use the new system?
• Will the proposed system provide adequate response to inquiries,
regardless of the number or location of users?
• Can the system be upgraded if developed?
• Are there technical guarantees of accuracy, reliability, ease of access and
data security?

Earlier no system existed to cater to the needs of Secure Infrastructure


Implementation System. The current system developed is technically feasible. It
is a web based user interface. Thus it provides an easy access to the users. The
databases purpose is to create, establish and maintain a work- flow among
various entities in order to facilitate all concerned users in their various capacities
or roles. Permission to the users would be granted based on the roles specified.

Therefore, it provides the technical guarantee of accuracy, reliability and security.


The software and hardware requirements for the development of this project are
not many and are already available as free as open source. The work for the
project is done with the current equipment and existing software technology.
Necessary bandwidth exists for providing a fast feed- back to the users
irrespective of the number of users using the system.

2. Operational Feasibility: Under this category of service we conduct a study to


analysis and determine whether your need can be fulfilled by using a proposed
solution. The result of our operational feasibility Study will clearly outline that the
solution proposed for your business is operationally workable and conveniently
solves your problems under consideration after the proposal is implemented. We
would precisely describe how the system will interact with the systems and
persons around. Our feasibility report would provide results of interest to all
stakeholders. It will do as per the needs of the business requirements.

3. Timeline Feasibility: It is important to understand that a need must be fulfilled


when it has to be. Some otherwise feasible and highly desirable projects can
become non-feasible due to very restrictive timeline constraints. This fact makes
it imperative that milestones are clearly linked to the timeline and projects are
29
well conceived with safe unforeseen margins. We make sure that we strictly
follow what has been stated above.

3.2. Software Requirement Specification Document

3.2.1 Data Requirements

Data requirement is meant to be the data that will be used in our application.
Data required in this project is all notices that need to be conveyed to the user.
These applications also require the username and passwords of persons in order
to register them and sending notifications about updates. So two main
requirements are:
• Notice Details
• User Details

3.2.2 Functional Requirements

In order to make this application functional, we require the following:

• Download mobile application: A user should be able to download the mobile


an application through either an application store or similar service on the mobile
phone. The application should be free to download.

• User Login: Given that a user has registered, then the user should be able to
log in to the mobile application. The log-in information will be stored on the phone
and in the future the user should be logged in automatically.

• Reset Password: Given that a user has registered, then the user should be
able to retrieve his/her password by e-mail.

• Dash Board: Given that a user is logged in to the mobile application, then the
first page that is shown should be the dashboard page. The user should be able
to see all the restaurants data.

30
• Search Notice: The user should be able to search for an order by its title. For
example, if a user types thick, all the pizza having thick crust in their content get
displayed.

• Selecting a Pizza: A user should be able to select any pizza from list view. The
click on particular pizza will take him to notice details of that particular pizza.

• Navigating back to Pizza List: The user should be able to navigate back to
data list from the order details section. This is required to give a good user
experience.

• Deleting order: The user should have the option to delete the unnecessary
order from his phone, by ticking them one by one and then deleting them in one
go. This way, user can save this phone memory from unrequired notification
.
• Notification Alert: All the registered users should be able to have a ping or
notification on their mobile phone whenever a new notice is posted.

3.2.3 Performance Requirements


The requirements in this section provide a detailed specification of the user
interaction with the software and measurements placed on the system
performance.
• Prominent search feature: The search feature should be prominent and easy
to find for the user.

• Usage of the order Information: The order link should be prominent and it
should be evident that it is a usable link. Selecting the order link should only take
one click.

• Response Time: The response time should not be more than 5 seconds if
users have a proper internet connection.

31
• Fault Tolerance: The fault tolerance of the system should be very good. If the
system loses the connection to the Internet or the system gets some strange
input, the user should be informed.

3.2.4 System Dependability

Following are the requirements that an application require from the device/mobile
on which it is installed.

• Internet Permission: Application developed, require full internet permissions of


mobile so that it can fetch data from the server. At the same time, it should be
able to receive buzz or notification tone whenever new order is posted.

• External SD Card Writable Permissions: This application would be requiring


read write access to SD card. It is required in order to download the notices
attachment and save in SD card of mobile phone.

• System Tools: This application requires various system tools to be used. For
example, it requires Camera of mobile in order to click the image and put it into
page. It also require system tool that prevents it from sleeping.

• Hardware Control: It uses vibrator of mobile phone whenever any notification


arrives.

• Account Info: It also fetches your google account information in order to get
the user registered with Google Cloud Messaging.

3.2.5 Maintainability Requirements

Following are the maintainability requirement of PIZZA PARLOR mobile


application:

• Application extendibility: The application should be easy to extend. The code


should be written in a way that it favours implementation of new functions. It is
requires in order for future functions to be implemented easily to the application.

32
• Application testability: Test environments should be built for the application to
allow testing of the applications different functions.

3.2.6 Security Requirements

• Communication Security: There should be security of the communication


between the system and server. The messages should be encrypted for log-in
communications, so others cannot get user-name and password from those
messages. Every exchanged of information between client and server should be
encrypted so that no one can track it.

• Admin Login Account Security: If an admin tries to log in to the web portal
with a non-existing account then the admin should not be logged in. The admin
should be notified about log-in failure.

• Admin Account Security: There should be security of admin accounts. An


admin and IP address should not be able to log-in to the web portal for a certain
time period after three times of failed log-in attempts.

• User Create Account Security: The security of creating account for users of
the system should be maintained. If a user wants to create an account and the
desired user name is occupied, the user should be asked to choose a different
user name.

3.2.7 Look and Feel Requirements

Regarding look and feel, our client is straight forward. They believe in simplicity.
So these are their requirements:

• Simple and Light: The user interface should be simple and lightly colored. It
should give relaxing effect on looking at its GUI. No bright colors should be used
while designing the UI of this application.

33
• Easy to Use: The application should be easy to use. If any user is doing
something wrong, he/she should be informed correctly, what is going wrong
behind the scene. There should be proper instructions for the user to use this
application.

• Soft Sound Notification: The sound for notification should be very soft. It
should not disturb the person with a loud note. Everything should be sober in this
application.

3.3. External Interface Requirements

3.3.1. User Interfaces: The interface will meet the following requirements
to confirm to the users‟ needs: It will be simple and easy to understand. Controls
which allow the user to interact with the application will be clear and imply their
functionality within the application. The interface will include user inputs as well
as two graphics, outlined below. The graphics displayed to the user will provide a
visual representation of the output produced.
The user will be able to control the sentiment analysis of topics in two ways: first,
by adding, editing, or removing keywords for each topic, and second by
specifying the duration of each analysis session.

3.3.2. Hardware Interfaces: The application is intended to be a stand-alone,


single-user system. The application will run on an Android mobile device or an
Android emulator. No further hardware devices or interfaces will be required.

3.3.3. Software Interfaces: The software will run on the Android operating
system, specifically version 4.0 (Ice-cream sandwich) and above.

3.3.4. Communications Interfaces: The application shall communicate with the


various databases and software services via API function calls. Because the
application will be written in Java, Java functions will make these calls to the
APIs. The exact formats and protocols for incoming and outgoing messages
should be abstracted by the APIs.

34
3.4. Other non functional requirements

3.4.1. Performance Requirements

1. Real-Time: The application will provide up-to-date information. It should


display the latest results at all times, and if it lags behind, the user should be
notified.

2. System Resource Consumption: Resource consumption of this application


should not reach an amount that renders the mobile device unusable. The
application should be capable of operating in the background should the user
wish to utilize other applications.

3.4.2. Safety Requirements

● User needs to sign in with their account to prove their identity (albertian)
before using.
● User shall not use our application while driving or biking.

3.4.3. Security Requirements

The security system features from having a login for all the users to access the
applications full features. The login details will be used in the system also. So the
chances of the application getting intruded are very less.
1. Login Requirements
2. Password requirements
3. Inactivity timeout.

3.4.4. Software Quality Attributes

1. Reliability: The application will meet all of the functional requirements


without any unexpected behaviour. At no time should the gauge output display
incorrect or outdated information without alerting the user to potential errors.

2. Availability: The application will be available at all times on the user’s


Android device, as long as the device is in proper working order. The functionality

35
of the application will depend on any external services such as internet access
that are required. If those services are unavailable, the user should be alerted.

3.Security: The software should never disclose any personal information of any
users, and should collect no personal information from its own users.

4. Maintainability: The application can maintain easily.

5. Portability: This software will be designed to run on any Android operating


system version 4.0 or higher. The software will be forward compatible for all
currently released Android operating system versions (up to 4.X).

3.5. Expected Hurdles

The main hurdles that can come in the notice are as follow:

1. GCM Notification: It’s possible that there may be a problem with receiving
GCM notifications. When to receive a broadcast signal and when to start
the service. If service is not started at the proper time, there may be the
case, user will not be able to receive any notification from the server.

2. Device Database: It’s very much difficult to see entries going inside the
device database. You have to check through coding. You can’t access the
applications database easily. So its bit hard to debug the database errors.

3. Device SD Card: The application will be requiring access to the SD card


of the user mobile. It may be possible that SD Card is full or missing SD
Card. So the user will not be able to receive the respective attachment of
notices.

4. Google Play Services: Registering to the GCM Server requires to have


Google Play services on device installed. Otherwise user will not be able
to register to GCM server nor will be able to receive any message.

36
3.6. SDLC Model Used

This section describes the project as per the various stages of the Software
Development life cycle. The model of software development life cycle used in this
project is the waterfall method.

The Waterfall Method is comprised of a series of very definite phases, each one
run intended to be started sequentially only after the last has been completed,
with one or more tangible deliverables produced at the end of each phase of the
waterfall method of SDLC. Essentially, it starts with a heavy, documented,
requirements planning phase that outlines all the requirements for the project,
followed by sequential phases of design, coding, test-casing, optional
documentation, verification (alpha-testing), validation (beta-testing), and finally
deployment/release.

Fig.3Software Development Life Cycle

Requirement Analysis: Existing system is time consuming and it makes difficult


to convey huge amount of users about any event, class or seminar almost
instantly. Also there is always a big crowd in front of notice board. So it was
hectic to read any useful instruction and information.

37
Thus all the problems of the existing system are summarized and proposing a
new system that works as an online application. It is a value added solution to the
problem. It resolves all the problems stated above. It will provide simple interface
to the user to operate on and convey the intended users about events almost
instantly, anytime and anywhere.

Design: It includes translation of the requirements specified in the SRS into a


logical structure that can be implemented in a programming language. The output
of the design phase is a design document that acts as an input for all the
subsequent SDLC phases. The design of this app is simple and user friendly
containing six main activities, namely:

(a) Register
(b) Login
(c) Dashboard
(d) Details of Notices
(e) Admin Panel
(f) Reset Password

Coding/Implementation: It includes translation of the requirements specified in


the SRS into a logical structure that can be implemented in a programming
language. The output of the design phase is a design document that acts as an
input for all the subsequent SDLC phases. The project is implemented using the
Android Virtual Device(AVD).

This emulator helped to implement the project in a real-like environment and


sketch out the details of how it will work on a real hardware. Each activity is
linked with another and interconnectivity is transparent and smooth.

Testing: It includes detection of errors in the application. The testing process


starts with a test plan that recognizes test-related activities, such as test case
generation, testing criteria, and resource allocation for testing. The code is tested
and mapped against the design document created in the design phase. The

38
output of the testing phase is a test report containing errors that occurred while
testing the application.

Testing of the project has not been done on real hardware and as soon the
emulator or software environment. Testing has been done for each of the
individual activities of the project.

Maintenance: It includes implementation of changes that software might


undergo over a period of time, or implementation of new requirements after the
software is deployed at the customer location.

The maintenance phase also includes handling the residual errors that may exist
in the software even after the testing phase. The project maintenance is low cost
and efficient as user will get this application at free of cost and also this
application is shared over network, therefore maintenance is little bit difficult.

39
Chapter - 4
SYSTEM DESIGN

4.1 Design Approach


A design approach is a general philosophy that may or may not include a guide
for specific methods. Some are to guide the overall goal of the design. Other
approaches are to guide the tendencies of the designer. A combination of
approaches may be used if they don’t conflict. Function Oriented Design
Approach: Function Oriented Design Approach is partitioning of a design into
subsystems and modules, with each one handling one or more functions.
Contrast with object-oriented design, data-structure-oriented design.

This application project uses function oriented design approach. Every module
and sub modules are made, based on their functionality. These modules are
designed and implemented separately and then they are integrated together to
form the desired application.

4.2 Detail Design


The detailed design of this application is as follow:
1. Registering a User: The first step in this application is to get the users
registered to both GCM Server and to Remote Web Server. For this, user will
provide all the necessary details and press the register button. The request will
first go to Google Cloud Messaging Server. GCM Server will provide the
registration id for that device. After that, all the information along with registration
id is stored on Web Server and the user gets registered.

2. User Login: After registering, the user is allowed to log in. Username
validating at client side, is sent to server side to authentication. After
authentication response is sent by the server to client, and then user gets logged
in.

3. Viewing the Notices: At the first time, when you are using this application for
the first time, it will fetch all the notices from server. In all the other case, all
previous notices are fetched from application’s own database stored inside client

40
mobile. It then checks for new notices from the server. If there are new notices on
the server, it will fetch all those notices.

4. Searching a Notice: The user is able to search the notice in list view
depending on the title of the notice. It helps user to get the desired notice
instantly.

5. Notification Buzz: As soon as the admin post a notice, the script will run with
which request is made by GCM Server to Web Server for all the registered IDs.
After getting all the registered IDs, notification is sent to all the users registered
with this application. Notification has a tune and vibration that runs whenever
there is a notification received by the user from GCM Server.

4.3 System Design


The system design can be clearly explained from the following diagrams:

Fig.4System Design
Systems design is the process of defining the architecture, components,
modules, interfaces, and data for a system to satisfy specified requirements.
Systems design could be seen as the application of systems theory to product
development. There is some overlap with the disciplines of systems
analysis, systems architecture and systems engineering.

41
Architectural design

The architectural design of a system emphasizes on the design of the systems


architecture  which describes the structure, behavior, and more views of that
system and analysis.

Logical design
The logical design of a system pertains to an abstract representation of the data
flows, inputs and outputs of the system. This is often conducted via modelling,
using an over-abstract (and sometimes graphical) model of the actual system.
In the context of systems, designs are included. Logical design includes entity-
relationship diagrams (ER diagrams).

Physical design
The physical design relates to the actual input and output processes of the
system. This is explained in terms of how data is input into a system, how it is
verified/authenticated, how it is processed, and how it is displayed. In physical
design, the following requirements about the system are decided.

1. Input requirement,
2. Output requirements,
3. Storage requirements,
4. Processing requirements,
5. System control and backup or recovery.

Put another way, the physical portion of systems design can generally be
broken down into three sub-tasks:

1. User Interface Design


2. Data Design
3. Process Design

User Interface Design is concerned with how users add information to the
system and with how the system presents information back to them.

Data Design is concerned with how the data is represented and stored within
the system.
42
Finally, Process Design is concerned with how data moves through the
system, and with how and where it is validated, secured and/or transformed as
it flows into, through and out of the system. At the end of the systems design
phase, documentation describing the three sub-tasks is produced and made
available for use in the next phase.

Physical design, in this context, does not refer to the tangible physical design of
an information system. To use an analogy, a personal computer's physical
design involves input via a keyboard, processing within the CPU, and output via
a monitor, printer, etc. It would not concern the actual layout of the tangible
hardware, which for a PC would be a monitor, CPU, motherboard, hard drive,
modems, video/graphics cards, USB slots, etc. It involves a detailed design of a
user and a product database structure processor and a control processor. The
H/S personal specification is developed for the proposed system.

4.4 User Interface Design


User Interface Design is concerned with how users add information to the
system and with how the system presents information back to them.

Data Design is concerned with how the data is represented and stored within
the system.

Finally, Process Design is concerned with how data moves through the
system, and with how and where it is validated, secured and/or transformed as
it flows into, through and out of the system. At the end of the systems design
phase, documentation describing the three sub-tasks is produced and made
available for use in the next phase.

4.5 Database Design


Database design is the process of producing a detailed data model of a
database. This logical data model contains all the needed logical and physical
design choices and physical storage parameters needed to generate a design in
a data definition language, which can then be used to create a database. A fully
attributed data model contains detailed attributes for each entity.

43
The term database design can be used to describe many different parts of the
design of an overall database system. Principally, and most correctly, it can be
thought of as the logical design of the base data structures used to store the
data. In the relational model these are the tables and views. In an object
database the entities and relationships map directly to object classes and named
relationships. However, the term database design could also be used to apply to
the over all process of designing, not just the base data structures, but also the
forms and queries used as part of the overall database application within the
database management system (DBMS).

The process of doing database design generally consists of a number of steps


which will be carried out by the database designer. Usually, the designer must:

• Determine the relationships between the different data elements.

• Superimpose a logical structure upon the data on the basis of these


relationships.

Design process:
1. Determine the purpose of the database - This helps prepare for the
remaining steps.

2. Find and organize the information required - Gather all of the types of
information to record in the database, such as product name and order number.

3. Divide the information into tables - Divide information items into major
entities or subjects, such as Products or Orders. Each subject then becomes a
table.

4. Turn information items into columns - Decide what information needs to be


stored in each table. Each item becomes a field, and is displayed as a column in
the table. For example, an Employees table might include fields such as Last
Name and Hire Date.

5. Specify primary keys - Choose each table’s primary key. The primary key is a
column, or a set of columns, that is used to uniquely identify each row. An
example might be Product ID or Order ID.

44
6. Set up the table relationships - Look at each table and decide how the data
in one table is related to the data in other tables. Add fields to tables or create
new tables to clarify the relationships, as necessary.

7. Refine the design - Analyze the design for errors. Create tables and add a
few records of sample data. Check if results come from the tables as expected.
Make adjustments to the design , as needed.

8. Apply the normalization rules - Apply the data normalization rules to see if
tables are structured correctly. Make adjustments to the tables

4.5.1 ER Diagrams
An ER diagram is a diagram that helps to design databases in an efficient way.
Attributes in ER diagrams are usually modeled as an oval with the name of the
attribute, linked to the entity or relationship that contains the attribute.

Within the relational model the final step can generally be broken down into two
further steps, that of determining the grouping of information within the system,
generally determining what are the basic objects about which information is being
stored, and then determining the relationships between these groups of
information, or objects.

An Entity Relationship Diagram (ERD) is a visual representation of different data


using conventions that describe how these data are related to each other. ER
diagrams are most often associated with complex databases that are used in
software engineering and IT networks.

In particular, ER diagrams are frequently used during the design stage of a


development process in order to identify different system elements and their
relationships with each other.

For example, an inventory software used in a retail shop will have a database
that monitors elements such as purchases, item, item type, item source and item
price.

45
4.5.2 Normalization
Normalization is a systematic way of ensuring that a database structure is
suitable for general-purpose querying and free of certain undesirable
characteristics insertion, update, and deletion anomalies that could lead to a loss
of data integrity. A standard piece of database design guidance is that the
designer should create a fully normalized design ; selective de normalization can
subsequently be performed, but only for performance reasons.

However, some modelling disciplines, such as the dimensional modelling


approach to data warehouse design, explicitly recommend non-normalized
designs, i.e. designs that in large part do not adhere to 3NF.Normalization
consists of normal forms that are 1NF, 2NF, 3NF, BOYCE-CODD NF (3.5NF),
4NF and 5NF.

4.5.3 Database Manipulation


Data Manipulation is retrieval of information from the database, insertion of new
information into the database, deletion of information in the database modification
of information in the database. A DML is a language which enables users to
access and manipulate data. The goal is to provide efficient human interaction
with the system.

There are two types of DML:

1. Procedural: In it, the user specifies what data is needed and how to get it.

2. Non Procedural: In it, the user only specifies what data is needed. It is easier
for user and may not generate code as efficient as that produced by procedural
languages.

A query language is a portion of a DML involving information retrieval only. The


terms DML and query language are often used synonymously.

4.5.4 Database Connection Control and Strings


1. Database connection control: It is a feature which prevents users from
connecting to a database. This feature is also called passive shutdown because
when connection control is invoked, users who are currently connected to the

46
database remain unaffected until they disconnect. This capability is useful if you
need to acquire exclusive access to a database to perform maintenance
operations, such as compacting the database, or make updates to the database’s
design.

When connection control is invoked, users who are currently connected to a


database remain unaffected until they disconnect from the database.

At that point they will be unable to reconnect to the database until the user who
invoked connection control revokes it or closes his or her connection to the
database.

The following scenarios provide examples of how the connection control feature
works.

Assume there are five users in the database and that user five has invoked
connection control on the database:

Scenario1 User six tries to connect to the database, but is denied access, and
an error message is returned stating that user five is preventing the database
from being opened.

Scenario2 User one closes the database and tries to reconnect to the database,
but is denied access, and an error message is returned stating that user five is
preventing the database from being opened.

Scenario3 User five closes the database. User six tries to open the database
and is successful. This is because connection control only persists while the user
who invoked it remains connected to the database.

Scenario4 Users one through four exit the database. User five uses the ADO
Open Schema method to retrieve a list of users in the database and determines
that no other users are in the database. User five compacts the database, closes
the database, and connection control is automatically revoked.

2. Connection String: A connection string is a string that specifies information


about a data source and the means of connecting to it. It is passed in code to an
underlying driver or provider in order to initiate the connection. Whilst commonly

47
used for a database connection, the data source could also be a spreadsheet or
text file.

The connection string may include attributes such as the name of the driver,
server and database, as well as security information such as user name and
password.

Example of My SQL Connection String

Server=myServerAddress;
Port=1234;
Database=myDataBase;
Uid=myUsername;
Pwd=myPasswor d;

The port 3306 is the default MySql port. The value is ignored if Unix socket is
used.

4.6 Methodology

Tools and Technologies Used:


 JAVA SE DEVELOPMENT KIT (JDK)

 ANDROID SDK

 SQL LITE

 ECLIPSE JUNO

JDK
The Java Development Kit (JDK) is an execution of both of the Java SE, Java
EE or Java ME stages expel by Oracle Corporation as a parallel item went for
Java designers on Solaris, Linux, Mac OS X or Windows. The JDK incorporates
a private JVM and a couple of different assets to complete the formula to a
Java Application. Since the presentation of the Java stage, it has been by a
wide margin the most generally utilized Software Development Kit (SDK).

48
A Java Development Kit (JDK) is a project improvement environment for
composing Java applets and applications. It comprises of a runtime situation
that “sits on top” of the working framework layer and also the apparatuses and
programming that engineers need to assemble, investigate, and run applets
and applications written in the Java language.

Android SDK

Android is a working framework taking into account the Linux piece, and
composed principally for touch screen cell phones, for example, cell phones
and tablet PCs. At first grew by Android, Inc., which Google supported fiscally
and later purchased in 2005, Android was disclosed in 2007 alongside the
establishing of the Alliance consortium of equipment, programming, and
telecom organizations.

The main hardware platform for Android is the 32-bit ARMv7 construction
modelling. The Android-x86 undertaking gives backing to the x86 structural
engineering, and Google TV utilizes a unique x86 adaptation of Android. In
2012, Intel processors started to show up on more standard Android stages, for
example, telephones. In 2013, Free scale declared backing for Android on its
i.MX processor, particularly the i.MX5X and i.MX6X arrangement.

SQLite

SQLite is a relational database administration framework contained in a C


programming library. Rather than other database administration frameworks,
SQLite is not a different procedure that is gotten to from the customer
application, however an essential piece of it.

SQLite is ACID-consistent and executes the vast majority of the SQL standard,
utilizing a rapidly and pitifully wrote SQL grammar that does not ensure the area
uprightness.

49
SQLite is a prevalent decision as inserted database for
neighbourhood/customer stockpiling in application programming, for example,
web programs. It is ostensibly the most generally sent database motor, as it is
utilized today by a few far reaching programs, working frameworks, and
implanted frameworks, among others. SQLite has numerous ties to
programming languages. The source code for SQLite is in the general public
area.

Eclipse Juno

Eclipse is an integrated development environment (IDE) used in computer


programming. It contains a base workspace and an extensible plug-in system
for customizing the environment. Eclipse is written mostly in Java and its
primary use is for developing Java applications, but it may also be used to
develop applications in other programming languages through the use of
plugins,including: Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Ju
lia,Lasso, Lua, NATURAL, Perl, PHP,Prolog, Python, R, Ruby (including Ruby
on Rails framework), Rust,  Scala, Clojure, Groovy, Scheme, and Erlang. It can
also be used to develop packages for the software Mathematic. Development
environments include the Eclipse Java development tools (JDT) for Java and
Scala, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others.

The initial codebase originated from IBM VisualAge. The Eclipse software


development kit (SDK), which includes the Java development tools, is meant for
Java developers. Users can extend its abilities by installing plug-ins written for
the Eclipse Platform, such as development toolkits for other programming
languages, and can write and contribute their own plug-in modules.

Released under the terms of the Eclipse Public License, Eclipse SDK is free


and open-source software (although it is incompatible with the GNU General
Public License). It was one of the first IDEs to run under GNU Class path and it
runs without problems under Iced Tea.

50
Chapter- 5
Coding
1. All java classes

Alert Dialogue

Device permission- condition manager

Database- Get data

51
Database- get data

Database- Delete

Drawer Layout

52
Button- Favourite

Model- Favourite

53
Get Folder

Main Details Layout

54
Main dropdown layout

Main Folder Access

Main Layout

55
On Touch Recycler View

Play Button

56
Play Card View

Video Player Layout

57
Share App

Show Video Adapter

58
Show Video Model

Update Database

59
Video Details

Chapter -6
Implementation ,Testing and Maintenance

60
6.1 Introduction to Languages, IDE’s, Tools and Technologies
Used For Implementation

6.1.1 Java :
Java is a very popular programming language developed by Sun Microsystems
(now owned by Oracle). Developed long after C and C++, Java incorporates
many of the powerful features of those powerful languages while addressing
some of their drawbacks. Still, programming languages are only as powerful as
their libraries. These libraries exist to help developers build applications. Some of
the Java important core features are:

• Its easy to learn and understand.

• Its designed to be platform-independent and secure, using virtual machines.

• Its object-oriented.

Android relies heavily on these Java fundamentals. The Android SDK includes
many standard Java libraries (data structure libraries, math libraries, graphics
libraries, networking libraries and everything else you could want) as well as
special Android libraries that will help you develop awesome Android
applications.

Platform Independence Importance:


With many programming languages, you need to use a compiler to reduce your
code down into machine language that the device can understand. While this is
well and good, different devices use different machine languages. This means
that you might need to compile your applications for each different device or
machine language in other words, your code is not very portable. This is not the
case with Java. The Java compilers convert your code from human readable
Java source files to something called byte code in the Java world. These are
interpreted by a Java Virtual Machine, which operates much like a physical CPU
might operate on machine code, to actually execute the compiled code. Although
it might seem like this is inefficient, much effort has been put in to making this
process very fast and efficient. These efforts have paid off in that Java

61
performance in generally second only to C/C++ in common language
performance comparisons.

Android applications run in a special virtual machine called the Dalvik VM. While
the details of this VM are unimportant to the average developer, it can be helpful
to think of the Dalvik VM as a bubble in which your Android application runs,
allowing you to not have to worry about whether the device is a Motorola Droid,
an HTC Evo, or the latest toaster running Android. You don’t care so long as the
device is Dalvik VM friendly and thats the device manufacturers job to implement,
not yours.

Why is Java Secure?


Lets take this bubble idea a bit further. Because Java applications run within the
bubble that is a virtual machine, they are isolated from the underlying device
hardware. Therefore, a virtual machine can encapsulate, contain, and manage
code execution in a safe manner compared to languages that operate in machine
code directly. The Android platform takes things a step further. Each Android
application runs on the (Linux- based) operating system using a different user
account and in its own instance of the Dalvik VM. Android applications are closely
monitored by the operating system and shut down if they don’t play nice (e.g. use
too much processing power, become unresponsive, waste resources, etc.).
Therefore, its important to develop applications that are stable and responsive.
Applications can communicate with one another using well- defined protocol.

6.1.2 Android Development Tools


• Android SDK: The Android Software Development Kit (Android SDK) contains
the necessary tools to create, compile and package Android applications. Most of
these tools are command line based. The primary way to develop Android
applications is based on the Java programming language.

• Android debug bridge (adb): The Android SDK contains the Android debug
bridge (adb), which is a tool that allows you to connect to a virtual or real Android
device, for the purpose of managing the device or debugging your application.

62
• Android Developer Tools and Android Studio: Google provides two
integrated development environments (IDEs) to develop new applications.The
Android Developer Tools (ADT) are based on the Eclipse IDE. ADT is a set of
components (plugins), which extend the Eclipse IDE with Android development
capabilities. Google also supports an IDE called Android Studio for creating
Android applications. This IDE is based on the IntelliJ IDE.

Both IDEs contain all required functionality to create, compile, debug and deploy
Android applications. They also allow the developer to create and start virtual
Android devices for testing. Both tools provide specialized editors for Android
specific files. Most of Android’s configuration files are based on XML. In this case
these editors allow you to switch between the XML representation of the file and
a structured user interface for entering the data. Dalvik Virtual Machine The
Android system uses a special virtual machine, i.e., the Dalvik Virtual Machine
(Dalvik) to run Java based applications. Dalvik uses a custom byte code format
which is different from Java byte code.

Therefore you cannot run Java class files on Android directly; they need to be
converted into the Dalvik byte code format.

• Android RunTime(ART): With Android4.4, Google introduced the Android


Runtime (ART) as optional runtime for Android 4.4. It is expected that versions
after 4.4 will use ART as default runtime. ART uses Ahead Of Time compilation.
During the deployment process of an application on an Android device, the
application code is translated into machine code. This results in approx. 30%
larger compile code, but allows faster execution from the beginning of the
application.

6.1.3 Security and Permission Concept in Android

• Security Concept In Android:

63
The Android system installs every Android application with a unique user and
group ID. Each application file is private to this generated user, e.g., other
applications cannot access these files. In addition each Android application is
started in its own process.

Therefore, by means of the underlying Linux kernel, every Android application is


isolated from other running applications. If data should be shared, the application
must do this explicitly via an Android component which handles the sharing of the
data, e.g., via a service or a content provider.

• Permission concept in Android:


Android contains a permission system and pre defines permissions for certain
tasks. Every application can request required permission sandal so define new
permissions. For example, an application may declare that it requires access to
the Internet.

Permissions have different levels. Some permissions are automatically granted


by the Android system, some are automatically rejected. In most cases the
requested permissions are presented to the user before installing the application.
The user needs to decide if these permissions shall be given to the application.

If the user denies a required permission, the related application cannot be


installed. The check of the permission is only performed during installation,
permissions cannot be denied or granted after the installation.

An Android application declares the required permissions in


itsAndroidManifest.xml configuration file. It can also define additional permissions
which it can use to restrict access to certain components.

6.2 Coding Standards of Language Used

64
Coding Standards of Java are used in the whole project. This standard includes
the following:

• No wildcard imports.
• Overloads appear sequentially.
• Braces are used even when the body is empty or contains a single statement.
• Two space indentation.
• Column limit can be 80 or 100 characters.
• No C-style array declarations.
• Default statements required in switch statements.
• Modifiers appear in the order recommended by the Java Language
Specification.

• Constants use CONSTANT CASE. Note that every constant is a static final
field, but not all static final fields are constants.

• Class name should start with uppercase letter.


• Function name should start with lowercase letter.

6.3 Project Scheduling

Project scheduling is concerned with the techniques that can be employed to


manage the activities that need to be undertaken during the development of a
project. Scheduling is carried out in advance of the project commencing and
involves:

• Identifying the tasks that need to be carried out.


• Estimating how long they will take.
• Allocating resources (mainly personnel).
• Scheduling when the tasks will occur.
Once the project is underway control needs to be exerted to ensure that the plan
continues to represent the best prediction of what will occur in the future based

65
on what occurs during the development and often necessitates revision of the
plan. Effective project planning will help to ensure that the systems are delivered:

• Within cost;
• Within the time constraint;
• To a specific standard of quality.
Two project scheduling techniques will be presented, the Milestone Chart and
Gantt Chart.

1. Milestone Charts:
Milestones mark significant events in the life of a project, usually critical activities
which must be achieved on time to avoid delay in the project. Milestones should
be truely significant and be reasonable in terms of deadlines (avoid using
intermediate stages). Examples include:

• Installation of equipment.
• Completion of phases.
• File conversion.
• Cut over to the new system
2. Gantt Charts:
A Gantt chart is a horizontal bar or line chart which will commonly include the
following features:

• Activities identified on the left hand side.


• Time scale is drawn on the top (or bottom) of the chart.
• A horizontal open oblong or a line is drawn against each activity indicating
estimated duration.

• Dependencies between activities are shown.


• At a review point the oblongs are shaded to represent the actual time spent (an
alternative is to represent actual and estimated by 2 separate lines).

• A vertical cursor (such as a transparent ruler) placed at the review point makes
it possible to establish activities which are behind or ahead of schedule.

66
6.4 Test Planned Test Activities

6.4.1 Test Plan

A test plan can be defined as a document describing the scope, approach,


resources, and schedule of intended testing activities. It identifies test items, the
features to be tested, the testing tasks, who will do each task, and any risks
requiring contingency planning. In software testing, a test plan gives detailed
testing information regarding an upcoming testing effort, including

• Scope of testing
• Schedule
• Test Deliverables
• Release Criteria
• Risks and Contingencies.
It is also be described as a detail of how the testing will proceed, who will do the
testing, what will be tested, in how much time the test will take place, and to what
quality level the test will be performed.

The process of defining a test project so that it can be properly measured and
controlled. The test planning process generates a high level test plan document
that identifies the software items to be tested, the degree of tester independence,
the test environment, the test case design and test measurement techniques to
be used, and the rationale for their choice.

A testing plan is a methodological and systematic approach to testing a system


such as a machine or software. It can be effective in finding errors and flaws in a
system. In order to find relevant results, the plan typically contains experiments
with a range of operations and values, including an understanding of what the
eventual workflow will be.

Test plan is a document which includes, introduction, assumptions, list of test


cases, list of features to be tested, approach, deliverables, resources, risks and
scheduling. A test plan is a systematic approach to testing a system such as a

67
machine or software. The plan typically contains a detailed understanding of what
the eventual work flow will be.

A record of the test planning process detailing the degree of tester indedendence,
the test environment, the test case design techniques and test measurement
techniques to be used, and the rationale for their choice.

6.4.2 Test Activities


Testing is the process of evaluating a system or its component with the intent to
find whether it satisfies the specified requirements or not. Testing is executing a
system in order to identify any gaps, errors, or missing requirements in contrary
to the actual requirements.
Various Testing Activities are as follow:
1. Black box testing : Internal system design is not considered in this type of
testing. Tests are based on requirements and functionality.

2. Whitebox testing : This testing is based on knowledge of the internal logic of


an applications code. Also known as Glass box Testing. Internal software and
code working should be known for this type of testing. Tests are based on
coverage of code statements, branches, paths, conditions.

3. Unit testing : Testing of individual software components or modules. Typically


done by the programmer and not by testers, as it requires detailed knowledge of
the internal program design and code. may require developing test driver
modules or test harnesses.

4. Incremental integration testing : Bottom up approach for testing i.e


continuous testing of an application as new functionality is added; Application
functionality and modules should be in dependent enough to test separately done
by programmers or by testers.

5. Integration testing : Testing of integrated modules to verify combined


functionality after integration. Modules are typically code modules, individual
applications, client and server applications on a network, etc. This type of testing
is especially relevant to client/server and distributed systems.

68
6. Functional testing : This type of testing ignores the internal parts and focus
on the output is as per requirement or not. Black-box type testing geared to
functional requirements of an application.

7. System testing : Entire system is tested as per the requirements. Black-box


type testing that is based on overall requirements specifications, covers all
combined parts of a system.

8. End-to-end testing : Similar to system testing, involves testing of a complete


application environment in a situation that mimics real-world use, such as
interacting with a database, using network communications, or interacting with
other hardware, applications, or systems if appropriate.

9. Acceptance testing - Normally this type of testing is done to verify if system


meets the customer specified requirements. User or customer do this testing to
determine whether to accept application.

10. Usability testing User-friendliness check. Application flow is tested, Can


new user understand the application easily, Proper help documented whenever
user stuck at any point. Basically system navigation is checked in this testing.

Chapter- 7
Results and Discussions

69
7.1 User Interface Representation
All user interface elements in an Android app are built
using View and ViewGroup objects. A View is an object that draws something on
the screen that the user can interact with. A ViewGroup is an object that holds
other View (and ViewGroup) objects in order to define the layout of the interface.
In order to make user interface, many controls are used. Some of which are as
follow:

1. TextView: TextView displays text to the user and optionally allows them to edit
it. A Text View is a complete text editor, however the basic class is configured to
not allow editing.

2. EditText: EditText is a thin veneer over TextView that configures itself to be


editable. A EditText is an overlay over TextView that configures itself to be
editable. It is the predefined subclass of TextView that includes rich editing
capabilities

3. Button: A button consists of text or an icon (or both text and an icon) that
communicates what action occurs when the user touches it. A Button is a Push-
button which can be pressed, or clicked, by the user to perform an action.

4. ListView: ListView is a view group that displays a list of scrollable items. The
list items are automatically inserted to the list using an Adapter that pulls content
from a source such as an array or database query and converts each item result
into a view that’s placed into the list.

5. CheckBoxes: Checkbox is a control or widget that can be activated with a


finger touch and can be polled in the application’s code for a checked and
uncheckked state.

7.1.1 Brief Description of Various Modules

A module is a collection of source files and builds settings that allow you to
divide your project into discrete units of functionality. Your project can have one
or many modules and one module may use another module as a dependency.
Each module can be independently built, tested, and debugged.

70
Additional modules are often useful when creating code libraries within your
own project or when you want to create different sets of code and resources for
different device types, such as phones and wearable’s, but keep all the files
scoped within the same project and share some code.

You can add a new module to your project by clicking File > New > New
Module.

Android Studio offers a few distinct types of module:

Android app module


Provides a container for your app's source code, resource files, and app
level settings such as the module-level build file and Android Manifest
file. When you create a new project, the default module name is "app".

In the Create New Module window, Android Studio offers the following


app modules:

 Phone & Table Module

 Android Wear Module

 Android TV Module

 Glass Module
They each provide essential files and some code templates that are
appropriate for the corresponding app or device type.

Library module
Provides a container for your reusable code, which you can use as a
dependency in other app modules or import into other projects.
Structurally, a library module is the same as an app module, but when
built, it creates a code archive file instead of an APK, so it can't be
installed on a device.

In the Create New Module window, Android Studio offers the following


library modules:

 Android Library: This type of library can contain all file types
supported in an Android project, including source code, resources,

71
and manifest files. The build result is an Android Archive (AAR) file
that you can add as a dependency for your Android app modules.

 Java Library: This type of library can contain only Java source files.
The build result is an Java Archive (JAR) file that you can add as a
dependency for your Android app modules or other Java projects.

The Java Class Library (JCL) is a set of dynamically


loadable libraries that Java applications can call at run time. Because
the Java Platform is not dependent on a specific operating system,
applications cannot rely on any of the platform-native libraries

Google Cloud module


Provides a container for your Google Cloud backend code. This module
adds the required code and dependencies for a functioning, runnable
backend that you can extend with the features you want, such as data
storage. Android Studio lets you easily add a cloud backend to your app.

Some people also refer to modules as sub-projects and that's okay,


because the Gradle also refers to modules as projects. For example,
when you create a library module and want to add it as a dependency to
your Android app module, you must declare it as follows:

dependencies {
  compile project(':my-library-module')
}

JSON Parsing
JSON stands for JavaScript Object Notation. It is an independent data exchange
format and is the best alternative for XML. Steps of JSON Parsing are:

1. For parsing a JSON object, we will create an object of class JSON Object and
specify a string containing JSON data to it.

72
2. An JSON file consist of different object with different key/value pair etc. So
JSON Object has a seperate function for parsing each of the component of JSON
file.

Broadcast Receiver
Broadcast receiver is a component that responds to system conditions such as
low battery or the screen being turned off. You can use broadcast receivers to
initiate a response from a running application, such as if a picture has been
taken.

There are two major classes of broadcasts that can be received:

 Normal broadcasts (sent with Context.sendBroadcast) are completely


asynchronous. All receivers of the broadcast are run in an undefined order,
often at the same time. This is more efficient, but means that receivers
cannot use the result or abort APIs included here.

 Ordered broadcasts (sent with Context.sendOrderedBroadcast) are


delivered to one receiver at a time. As each receiver executes in turn, it can
propagate a result to the next receiver, or it can completely abort the
broadcast so that it won't be passed to other receivers. The order receivers
run in can be controlled with the android:priority attribute of the matching
intent-filter; receivers with the same priority will be run in an arbitrary order.

Services

A Service is an application component that can perform long-running operations


in the background and does not provide a user interface. Another application
component can start a service and it will continue to run in the background even
if the user switches to another application. Additionally, a component can bind
to a service to interact with it and even perform interprocess communication
(IPC). For example, a service might handle network transactions, play music,
perform file I/O, or interact with a content provider, all from the background.

Content Provider
It manages persistent data on the device or external sources such as web or
cloud or any other system application has access to. Android devices has on-

73
board SQLite database management system to provide organized persistent data
storage.

Content providers let you centralize content in one place and have many
different applications access it as needed. A content provider behaves very
much like a database where you can query it, edit its content, as well as add or
delete content using insert(), update(), delete(), and query() methods. In most
cases this data is stored in an SQLite database.

A content provider is implemented as a subclass of Content Provider class and


must implement a standard set of APIs that enable other applications to
perform transaction

74
7.2 Snapshots of System

75
76
77
78
Chapter -8
Advantages and Disadvantage
79
Advantages
1. Open : Android allows you access core mobile device functionality through
standard API calls.

2. All applications are equal : Android does not differentiate between the
phone’s basic and third party application, even the dialer or home screen can be
replaced.

3. Breaking down boundaries : Combine information from the web with data on
the phone, such as contacts or geographic location, to create new user
experiences.

4. Fast and easy development : The SDK contains what you need to build and
run Android application, including a true device emulator and advanced
debugging tools.

Disadvantage
1. Security : Making source code available to everyone inevitably invites the
attention of black hat hackers.

2. Open Source : A disadvantage of open source development is that anyone


can scrutinize the source code to find vulnerabilities and write exploits.

3. Login : Platform doesn’t run on an encrypted file system and has a vulnerable
log-in.

4. Incompletence : Google’s dependence on hardware and carrier partner put


the final product out of their control.

80
Chapter -9
Conclusion And Future Scope
Android has been criticized for not being all open source software despite what
was announced by Google. Parts of SDK are proprietary and closed source, and
some believe this is so that Google can control the platform. Software installed by
end-users must be written in java, and will not have access to lower level device
APIs. This provides end-users with less control over their phone’s functionality
than other free and open source phone platforms, such as OpenMoko.

With all upcoming applications and mobile services Google Android is stepping
into the next level of mobile internet. Android participates in many of the
successful open source projects. That is, architect the solution for participation
and the developers will not only come but will play well together. This is notable
contrast with Apple and other companies, where such architecture of participation
is clearly belated.

The first Android based official devices may well be launched sometime in the
early half of 2009. Obviously, that’s an age away when it comes to handset
design, and Android may well find itself competing against the forthcoming Nokia
touch screen phones and may even the iPhone2.

Chapter -10
References
 Basic Android Tutorials, available at http://www.tutorialspoint.com/android

 Android Development Tutorial, available at


http://www.developer.android.com

 Android Book, Wei-Meng Lee

 Android 4 Application Development,John Wiley & Sons,Inc.,2012

81
 TextBook Donald E. Knuth

 The Textbook, AddisonWesley, Boaton, 1986

82

You might also like