Professional Documents
Culture Documents
Bachelor of Science
in INFORMATION TECHNOLOGY
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
(AARYANA GAUMAT)
TABLE OF CONTENTS
3
Title
Candidate’s Declaration
Acknowledgements
List of Figures
Chapter 1: Introduction
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 5: Coding
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
Chapter10: References
6
Chapter-1
INTRODUCTION
1.2 Introduction to 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.
1.2.2 FEATURES
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.
9
7. Data Storage : SQLite is used for structured data storage. SQLite is
powerful and lightweight relational database engine available to all
application.
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.
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
Fig.1Architecture of Android
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.
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.
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 −
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.
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.
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
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.
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 :
17
Fig.2Life 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.
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.
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.
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
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.
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.
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.
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.
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
24
manual system may have to spend hours searching for a particular piece
of data.
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.
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.
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.
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.
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
The three main points, kept in mind at the time of project, are :
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?
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
• 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.
• 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.
Following are the requirements that an application require from the device/mobile
on which it is installed.
• 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.
• Account Info: It also fetches your google account information in order to get
the user registered with Google Cloud Messaging.
32
• Application testability: Test environments should be built for the application to
allow testing of the applications different functions.
• 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.
• 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.
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.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.3. Software Interfaces: The software will run on the Android operating
system, specifically version 4.0 (Ice-cream sandwich) and above.
34
3.4. Other non functional 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.
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.
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.
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.
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.
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.
(a) Register
(b) Login
(c) Dashboard
(d) Details of Notices
(e) Admin Panel
(f) Reset Password
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.
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
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.
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.
Fig.4System 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
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:
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
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 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
50
Chapter- 5
Coding
1. All java classes
Alert Dialogue
51
Database- get data
Database- Delete
Drawer Layout
52
Button- Favourite
Model- Favourite
53
Get Folder
54
Main dropdown layout
Main Layout
55
On Touch Recycler View
Play Button
56
Play Card View
57
Share App
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 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.
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.
• 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.
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.
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.
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:
• 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
• 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.
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.
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.
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.
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.
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 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.
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.
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.
Services
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.
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.
3. Login : Platform doesn’t run on an encrypted file system and has a vulnerable
log-in.
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
81
TextBook Donald E. Knuth
82