Vous êtes sur la page 1sur 53

PROJECT REPORT ON

ANDROID QUIZ APPLICATION


“FACES OF SCIENCE”
Submitted in partial fulfillment of the requirement for the Degree of

BACHELOR OF TECHNOLOGY
(2011-2015)
In
COMPUTER SCIENCE AND ENGINEERING

Under the supervision of:


Mr. Akhilesh Kumar Singh
Asst. Prof. & HOD CSE

Submitted by:
Nivedita Rai(1128410039)
Abhishek Srivastava(1128410002)
Ankita Srivastava(1128410008)

UNITED INSTITUTE OF TECHNOLOGY


Uttar Pradesh Technical University
Lucknow
April, 2015
DECLARATION

We Nivedita Rai, Abhishek Srivastava & Ankita Srivastava hereby declare that the
report of the project entitled Android Quiz Application “Faces of Science” is our
own work and that to the best of our knowledge and belief. It contains no material
previously published or written by any other person nor material which to a
substantial extent has been excepted for the award of any degree of the diploma of
the university of the institute of learning, except where due acknowledgement has
been made in the text.

Signature:
Name: Nivedita Rai
Roll No. 1128410039

Signature:
Name: Abhishek Srivastava
Roll No. 1128410002

Signature:
Name: Ankita Srivastava
Roll No. 1128410008

II
ACKNOWLEDGEMENT

We wish to convey our gratitude and indebtedness to Mr. Akhilesh Kumar Singh
(HOD, Computer Science & Engineering Department) for his valuable guidance
for the project work. Without his suggestions, consistent encouragement and
constructive criticism, this project would not have been possible. We also thank
him for approving the project title and providing necessary facilities for the work.

We are also grateful to Ms. Astha Jaiswal (Asst. trainer at IBM) & Mr. Deepak
Kumar Singh (student at IIT BHU) who provided us with many of the important
softwares required during the course of the project.

We would also like to convey our regards to the other intellectual faculty members
for their cooperation and support and finally heartfelt appreciation to friends for
reviewing the entire manuscript with attention for details.

Nivedita Rai(1128410039)
Abhishek Srivastava(1128410002)
Ankita Srivastava(1128410008)

III
CERTIFICATE

This is to certify that the project report entitled Android Quiz Application “Faces
of Science” done by Nivedita Rai (1128410039), Abhishek Srivastava
(1128410002) and Ankita Srivastava (1128410008) is an authentic work carried
out by them at United Institute of Technology under my guidance.

The matter embodied in this project has not been submitted earlier for the award of
any degree or diploma to the best of my knowledge and belief.

Mr. Akhilesh Kumar Singh


Supervisor & Head of the Department
CSE, Department
UIT, Allahabad

IV
ABSTRACT

The project proposed is a quiz application which tries to make learning process
easier by bringing the inquisitive in every individual .The application has been
designed in a process for gamification of the learning process. The application can
be used by the teachers as a side tool that assist them in assigning quiz to the
students and help to create an interest about the science. A knowledge about these
great scientists who have shaped the course of time helps inculcate a scientific
temper as they act as the source of inspiration.

This application has been designed using the latest offering from android for
application development i.e. Android Studio .While the application has been
designed by using the canary version of the software as it was still in testing phase
that time. The application performs well and is supported by various versions of
android and will be a part of the play store in the long run. Latest versions of
android studio have been developed now which are complete and no longer in
testing phase. This software has been a wonderful tool for the developers as it has
simplified the application development process and incorporates several features.

V
List of Figures and Tables

List of Figures Page No.


1.1 Android versions 3
1.2 Life cycle of Android Activity 6
2.1 Software Stack 10
2.2 Android Architecture 11
2.3 Android Emulator 17
4.1-4.10 Snapshots 38-40

List of Tables
3.1 Android Studio 14
3.2 System Requirements 15
3.3 Module Design 33
3.4 Hardware Specification 35
3.5 Software Specification 35
3.6 Types of Testing 37

VI
List of Abbreviations

APK Android Package Files


AVD Android Virtual Device
ADT Android Developer tools
API Application Programming Interface
AMR-WB Adaptive Multi Rate-Wideband
A2DP Advanced Audio Distribution Profile
AAC Advanced Audio Coding
AVRCP Audio Video Remote Control Profile
BMP Bitmap
CDMA Code Division Multiple Access
DDMS Dalvik Debug Monitor Server
EV-DO Evolution Data Only
GSM Global System for Mobile Communication
GIF Graphics Interchange Format
IDE Integrated Development environment
IDEN Integrated Digital Enhanced Network
JDK Java Development Kit
JPEG Joint Photographic Experts Group
KDE K Desktop Environment
LTE Long Term Evolution
MIDI Musical Instrument Digital Interface
NFC Near Field Communication
PNG Portable Network Graphics
RAM Random Access Memory
SDK Software Development Kit
SP Service Pack
UMT Universal Mobile Telecommunication
VM Virtual Memory
ZIP Zone Improvement Plan

VII
Table of Contents

Declaration II
Acknowledgement III
Certificate IV
Abstract V
List of Figures and Tables VI
List of Abbreviations VII

1. INTODUCTION 1-7
1.1. About Project 1
1.2. Android: An open Platform 2
1.3. Android Versions 3
1.4 Features of Android 3
1.5 Why develop for Android 4
1.6 Life cycle of Android activity 5
1.7 Scope of investigation 6
1.8 Problem definition 7

2. LITERATURE 8-28
2.1. Android Software Stack 8
2.2 Android Application Architecture 10-11
2.2.1 Android Libraries 11
2.3 Developing for android 12-15
2.3.1 Downloading & installing SDK 13
2.3.2 Android Studio 13
2.3.3 Features of android studio 14
2.3.4 System Requirements 15
2.4 Android development tools 15-18
2.4.1 Android Emulator 17
2.4.2 Android SDK manager 18
2.4.3 Android application components 18
2.5 Fundamental android UI design 20
2.6 Android widget toolbox 21
2.7 Introducing Intents 22-23
2.7.1 Launching activities using Intents 23
2.7.2 Intents to broadcast events 23
2.8 Introducing the Intent service 24
2.8.1 Creating intent filters 24
2.8.2 Service Implicit Intent 24
2.9 Introducing fragments 26
2.10 Creating Content Providers 27-28
2.10.1 Native content providers 28

3. PROPOSED SYSTEM 29-37


3.1 System Analysis 29
3.2 Feasibility Study 30-32
3.2.1 Technical feasibility 31
3.2.2. Economic feasibility 31
3.2.3 Behavioral study 32
3.2.4 Cost analysis 32
3.3 Designing 32-34
3.3.1 Module design 34
3.3.2 A brief description about levels 34
3.4 Software Environment 35
3.4.1 Hardware Specification 35
3.4.2 Software Specification 35
3.5 Code details 36
3.6 Project testing 36-37

4. SNAPSHOTS 38-40
5. CONCLUSIONS 41
6. FUTURE SCOPE 42
7. REFERENCES 43-44
CHAPTER 1
INTRODUCTION

1.1. About Project


This report documents the process of designing, building and testing an android
application for the use of students for supplementing their knowledge about
scientists in an engaging way.

The project is an android quiz application which is built around the concept of
content gamification as this makes learning an engaging process thus proving to
be a better learning tool. Here we use images of scientists which students
generally encounter in their textbooks. So this application can also be used by
teachers to a replacement of bland written quizzes but only the initial levels.
The more advanced levels are for grownups and young inquisitive minds to put
their grey matter to test.

The project is built using android studio a tool for application development for
android platform provided by Google. It incorporates moderate coding as the
application is quite small in comparison to other trivia applications available in
the play store. There is extensive use of images and sound effects in the
application.

The application has various levels to offer with varying degree of hardness
and specific nature. Except one all levels in the application are initially locked
and a specific number of correct answers keep opening new levels. The first
one being a very basic one and features scientists which every middle school
student has heard about. The levels have been designed keep in mind school
students as well as the grownups. Each question comes with a picture of a
famous scientist and to make things even simpler options are also provided for
answering the questions. Besides hints are also provided in case of a wrong
answer and a short biography about the scientist is provided in case of a correct
answer. All questions are pictorial in nature and come with four options to
select the correct answer.

Summing this up we can say this is one small application for people of every
age group but mainly targeted for the school students. This software can find
application as a supplement of classes with growing use of technology in

1
classrooms while for some inquisitive minds it will be just another trivia
application to quench their insatiable thirst for knowledge.

1.2. Android: An open platform for mobile development

Android is a mobile operating system that is based on a modified version of


Linux. It was originally developed by a startup of the same name, Android, Inc.
In 2005, as part of its strategy to enter the mobile space, Google purchased
Android and took over its development work.

Google wanted Android to be open and free; hence, most of the Android code
was released under the open source Apache License, which means that anyone
who wants to use Android can do so by downloading the full Android source
code. Moreover, vendors (typically hardware manufacturers) can add their own
proprietary extensions to Android and customize Android to differentiate their
products from others.

The simple development model makes Android very attractive and has thus
piqued the interest of many vendors. This has been especially true for
companies affected by the phenomenon of Application iPhone, a hugely
successful product that revolutionized the smartphone industry. Such companies
include Motorola and Sony Ericsson, which for many years have been
developing their own mobile operating systems. When the iPhone was
launched, many of these manufacturers had to scramble to find new ways of
revitalizing their products. These manufacturers see Android as a solution -they
will continue to design their own hardware and use Android as the operating
system that powers it.

The main advantage of adopting Android is that it offers a unified approach to


application development. Developers need only develop for Android, and their
applications should be able to run on numerous different devices, as long as the
devices are powered using Android.

In the world of smartphones, applications are the most important part of the
success chain. Device manufacturers therefore see Android as their best hope to
challenge the onslaught of the iPhone, which already commands a large base of
applications.

2
1.3. Android Versions

A pictorial representation of android versions-

Fig. 1.1: Android Versions [source: http://developer.android.com/sdk/installing/studio.html]

1.4. Features of Android

Because Android is open source and freely available to manufacturers for


customization, there are no fixed hardware or software configurations.

However, Android itself supports the following features:

 Storage— Uses SQLite, a lightweight relational database, for data


storage.
 Connectivity— Supports GSM IDEN, CDMA,EV-DO,UMTS, Bluetooth
(includes A2DP and AVRCP), Wi-Fi, LTE, and Wi-MAX.
 Messaging — Supports both SMS and MMS.
 Web browser — Based on the open source Web Kit, together with
Chrome’s V8 JavaScript engine
 Media support — Includes support for the following media: H.263,
H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB

3
(in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3,
MIDI , Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.
 Hardware support — Accelerometer Sensor, Camera, Digital Compass,
Proximity Sensor and GPS
 Multi-touch — Supports multi-touch screens.
 Multi-tasking — Supports multi-tasking applications
 Flash support — Android 2.3 supports Flash 10.1.
 Tethering — Supports sharing of Internet connections as a
wired/wireless hotspot

Many of the features listed such as 3D graphics and native database support, are
also available in other native mobile SDKs, as well as becoming available on
mobile browsers. The pace of innovation in mobile platforms, both Android and
its competitors, makes an accurate comparison of the available features difficult.
The Above following non comprehensive list details some of the features
available on Android that may not be available on all modern mobile
development platforms: Google Maps applications — Google Maps for Mobile
has been hugely popular, and Android offers a Google Map as an atomic,
reusable control for use in your applications.

The Map View lets you display, manipulate, and annotate a Google Map
within your Activities to build map-based applications using the familiar
Google Maps interface. Background services and applications — Full support
for background applications and services lets you create applications based on
an event-driven model, working silently while other applications are being used
or while your mobile sits ignored until it rings, flashes, or vibrates to get your
attention. Maybe it’s a streaming music player, an application that tracks the
stock market, alerting you to significant changes in your portfolio, or a service
that changes your ringtone or volume depending on your current location, the
time of day, and the identity of the caller. Android provides the same
opportunities for all applications and developers.

1.5. Why Develop for Android?

Shared data and inter-process communication — Using Intents and Content


Providers, Android lets your applications exchange messages, perform
processing, and share data. You can also use these mechanisms to leverage the
data and functionality provided by the native Android applications. To mitigate
the risks of such an open strategy, each application’s process, data storage, and

4
files are private unless explicitly shared with other applications via a full
permission-based security mechanism. All applications are created equal.
Android doesn’t differentiate between native applications and those developed
by third parties. This gives consumers unprecedented power to change the look
and feel of their devices by letting them completely replace every native
application with a third-party alternative that has access to the same underlying
data and hardware. Wi-Fi Direct and Android Beam — Using these innovative
new inter-device communication APIs, you can include features such as instant
media sharing and streaming. Android Beam is an NFC-based API that lets you
provide support for proximity-based interaction, while Wi-Fi Direct offers a
wider range peer-to-peer for reliable, high-speed communication between
devices.

Home-screen Widgets, Live Wallpaper, and the quick search box — Using
Widgets and Live Wallpaper, you can create windows into your application
from the phone’s home screen. The quick search box lets you integrate search
results from your application directly into the phone’s search functionality.

1.6. Life cycle of android activity


During its lifetime, each activity of an Android program can be in one of several
states. We, the developer, do not have control over what state our program is in.
That’s all managed by the system. However, we do get notified when the state is
about to change through the onXX() method calls.

We override these methods in our Activity class, and Android will call them at
the appropriate time:

 onCreate(Bundle): This is called when the activity first starts up. We


can use it to perform one-time initialization such as creating the user
interface. OnCreate( ) takes one parameter that is either null or some state
information previously saved by the onSavedInstanceState( ) method.

 onStart( ): This indicates the activity is about to be displayed to the user.

 onResume( ): This is called when our activity can start interacting with
the user. This is a good place to start animations and music.

 onPause( ): This runs when the activity is about to go into the


background, usually because another activity has been launched in front

5
of it. This is where we should save our program’s persistent state, such as
a database record being edited.

 onStop( ): This is called when our activity is no longer visible to the user
and it won’t be needed for a while. If memory is tight, onStop( ) may
never be called (the system may simply terminate your process).

Fig. 1.2. Life cycle of android activity [source: The Android Developer’s Cookbook by
James Steele Nelson]

1.7. Scope of investigation

The aim of this project is to design, such an application that can help us to make
learning engaging and a fun process. The target audience of the project
incorporates school students where the application can supplement their
knowledge in an interesting way. This application can also be used by grownups
to test their knowledge about these famous scientists.

6
This can also be food for thought for the inquisitive minds. Overall the target
audience includes a multitude of people thus leading to various levels of varying
difficulty and specializations. In order to have something for everyone we
thought of dividing the levels into very famous ones and then branching out to
various specializations such as chemists and biologists. Thus this application
can also be a awareness check by a particular student of that specialization.

1.8. Problem Definition

The problem with this application is that the quiz application being developed is
that it has difficulty in compatibility .The major work to be done is to make the
application compatible for mobile devices using different versions of android as
some versions are nearly obsolete now. The main task at hand is to the content
gamification of a subject of study by use of modern day technology so that
students find learning interesting.

7
CHAPTER 2
LITERATURE

Android is an Operating System for mobile devices developed by Google,


which is built upon Linux Kernel. Android applications are written on JAVA
programming language. The Android SDK tools compile the code along with
any data and resource file into an APK file. The APK file contains all the
contents of an android application and is the file that Android-powered devices
use to install the application.
Android was described by Andy Rubin as follows:
“The first truly open and comprehensive platform for mobile devices. It
includes an Operating System, user-interface and application-all of the software
to run a mobile phone but without the proprietary obstacle that have hindered
mobile innovation.”

2.1. Android Software Stack


The Android software stack is, put simply, a Linux kernel and a collection of
C/C++ libraries exposed through an application framework that provides
services for, and management of, the run time and applications.

 Linux kernel — Core services (including hardware drivers, process and


memory management, security, network, and power management) are
handled by a Linux 2.6 kernel. The kernel also provides an abstraction
layer between the hardware and the remainder of the stack.

 Libraries — Running on top of the kernel, Android includes various


C/C++ core libraries such as libc and SSL, as well as the following:
 A media library for playback of audio and video media
 A surface manager to provide display management
 Graphics libraries that include SGL and OpenGL for 2D and 3D
graphics.

8
 SQLite for native database support
 SSL and WebKit for integrated web browser and Internet
security

 Android run time — The run time is what makes an Android phone an
Android phone rather than a mobile Linux implementation. Including the
core libraries and the Dalvik VM, the Android run time is the engine that
powers your applications and, along with the libraries, forms the basis for
the application framework.

 Core libraries — Although most Android application development is


written using the Java language, Dalvik is not a Java VM. The core
Android libraries provide most of the functionality available in the core
Java libraries, as well as the Android specific libraries.

 Dalvik VM — Dalvik is a register-based Virtual Machine that’s been


optimized to ensure that a device can run multiple instances efficiently. It
relies on the Linux kernel for threading and low-level memory
management.

 Application framework — The application framework provides the


classes used to create Android applications. It also provides a generic
abstraction for hardware access and manages the user interface and
application resources.

 Application layer — All applications, both native and third-party, are


built on the application layer by means of the same API libraries. The
application layer runs within the Android run time, using the classes and
services made available from the application framework.

9
Fig. 2.1. Android Application Layer
[source:http://developer.android.com/guide/developing/tools/index.html]

2.2. Android Application Architecture

Android’s architecture encourages component reuse, enabling you to publish


and share Activities, Services, and data with other applications, with access
managed by the security restrictions you define. The same mechanism that
enables you to produce a replacement contact manager or phone dialer can let
you expose your application’s components in order to let other developers build
on them by creating new UI front ends or functionality extensions.

10
The following application services are the architectural cornerstones of all
Android applications, providing the framework we have used for our own
software:

Fig. 2.2. Application Architecture [Source: http://www.tutorialspoint.com]

 Activity Manager and Fragment Manager — Control the lifecycle of


your Activities and Fragments, respectively, including management of the
Activity stack.
 Views — Used to construct the user interfaces for your Activities and
Fragments.
 Notification Manager — Provides a consistent and nonintrusive
mechanism for signaling your users.
 Content Providers — Lets your applications share data
 Resource Manager — Enables non-code resources, such as strings and
graphics, to be externalized.
 Intents — Provides a mechanism for transferring data between
applications and their components.

11
2.2.1. Android Libraries

Android offers a number of APIs for developing your applications. Rather than
list them all here, check out the documentation at resource [1], which gives a
complete list of packages included in the Android SDK. Android is intended to
target a wide range of mobile hardware, so be aware that the suitability and
implementation of some of the advanced or optional APIs may vary depending
on the host device.

2.3. Developing for Android

The Android SDK includes all the tools and APIs you need to write compelling
and powerful mobile applications. The biggest challenge with Android, as with
any new development toolkit, is learning the features and limitations of its APIs.

If you have experience in Java development, you’ll find that the techniques,
syntax, and grammar you’ve been using will translate directly into Android,
although some of the specific optimization techniques may seem
counterintuitive.

If you don’t have experience with Java but have used other object-oriented
languages (such as C#), you should find the transition straight forward. The
power of Android comes from its APIs, not the language being used, so being
unfamiliar with some of the Java-specific classes won’t be a big disadvantage.

2.3.1. Downloading and Installing the Android SDK

There is no cost to download or use the API, and Google does not require your
application to pass a review to distribute your finished programs on the Google
Play Store. Although the Google Play Store requires a small one-time fee to
publish applications, if you chose not to distribute via the Google Play Store,
you can do so at no cost.

You can download the latest version of the SDK starter package for your
chosen development platform from the Android development home page at
resource [2].

The starter package is a ZIP file that contains the latest version of the Android
tools required to download the rest of the Android SDK packages. Install it by
unzipping the SDK into a new folder. Take note of this location, as you’ll need
it later.

12
If you are developing from a Windows platform, an executable Windows
installer is available (and recommended) as an alternative to the ZIP file for
installing the platform tools. Before you can begin development, you need to
download at least one SDK platform release. You can do this on Windows by
running the SDK Manager.exe executable, or on Mac OS or Linux by running
the android executable in the tools subfolder of the starter package download.

You can expand each platform release node to see a list of the packages
included within it, including the tools, documentation, and sample code
packages.

To get started, simply check the boxes corresponding to the newest framework
SDK and the latest version of the tools, compatibility/support library,
documentation, and sample code.

2.3.2. Project development using Android Studio

Android Studio is an integrated development environment (IDE) for developing


on the Android platform. It was announced on May 16, 2013 at the Google I/O
conference by Google's Product Manager, Ellie Powers.

Android Studio is freely available under the Apache License 2.0 resource [3].
Android Studio was in early access preview stage starting from version 0.1 in
May 2013, then entered beta stage starting from version 0.8 which was released
in June 2014 resource[4].

The first stable build was released in December 2014, starting from version
1.0 resource [3] based on JetBrains' IntelliJ IDEA software, Android Studio is
designed specifically for Android development resource[6]. It is available for
download on Windows, Mac OS X and Linux, resource[8] and replaced Eclipse
Android Development Tools (ADT) as Google's primary IDE for native
Android application development.

2.3.3. Features of Android Studio


New features are expected to be rolled out with each release of Android Studio.
The following features are provided in the current version:

 Live Layout: WYSIWYG Editor Live Coding Realtime Application


Rendering.

13
 Gradle-based build support.
 Android-specific refactoring and quick fixes.
 Lint tools to catch performance, usability, version compatibility and other
problems.
 ProGuard and app-signing capabilities.
 Template-based wizards to create common Android designs and
components.
 A rich layout editor that allows users to drag-and-drop UI components,
option to preview layouts on multiple screen configurations.
 Support for building Android Wear applications.
 Built-in support for Google Cloud Platform, enabling integration with
Google Cloud Messaging and Application Engine.

2.3.4. System Requirements

Table no. 2.1. Android Studio

Developer(s) Google
Stable Release 1.1 / February 18, 2015
Preview release 1.2 Preview 4 / March 25, 2015
Development Status Stable
Written in Java
Operating system Crossplatform
Type Integrated Development
Environment (IDE)
License Apache 2.0

14
Table No. 2.2. Software and Hardware Specification

Windows OS X Linux
OS Microsoft Windows Mac OS X 10.8.5 or GNOME or KDE or
Version 10/8.1/8/7/Vista/2003/Xp
higher, upto 10.10 to Unity desktop on
(32 or 64 bit) up 10.10.2 up Ubuntu or Fedora or
10.10.3 (Yosemite) GNU/Linux Debian
RAM 2 GB RAM minimum, 4 GB RAM recommended
Disk 500 MB disk space
space
Space for At least 1 GB for Android SDK, emulator system images, and caches
Android
SDK
JDK Java Development Kit (JDK) 7 or higher
version
Screen 1280x800 minimum screen resolution
resolution

2.4. Android Development Tools

The Android SDK includes several tools and utilities to help to create, test, and
debug our projects. For additional details, check out the Android documentation
at resource [9]. As mentioned earlier, the ADT plug-in conveniently
incorporates many of these tools into the Eclipse IDE, where you can access
them from the DDMS perspective, including the following:

 The Android Virtual Device and SDK Managers — Used to create and
manage AVDs and to download SDK packages, respectively. The AVD
hosts an Emulator running a particular build of Android, letting you
specify the supported SDK version, screen resolution, amount of SD card
storage available, and available hardware capabilities (such as
touchscreens and GPS).

 The Android Emulator — An implementation of the Android VM


designed to run within an AVD on your development computer. Use the
Emulator to test and debug your Android applications.

15
 Dalvik Debug Monitoring Service (DDMS) — Use the DDMS to
monitor and control the Emulators on which you’re debugging your
applications’

 Android Debug Bridge (ADB) — A client-server application that


provides a link to virtual and physical devices. It lets you copy files,
install compiled application packages (APK), and run shell commands.

 Logcat — A utility used to view and filter the output of the Android
logging system.

 Android Asset Packaging Tool (AAPT) — Constructs the distributable


Android package files (APK).

The following additional tools are also available:

 SQLite3 — A database tool that you can use to access the SQLite
database files created and used by Android.
 Traceview — Graphical analysis tools for viewing the trace logs from
your Android application.
 Hprof-conv — A tool that converts HPROF profiling output files into a
standard format to view in your preferred profiling tool.
 MkSDCard — Creates an SD card disk image that can be used by the
Emulator to simulate an external storage card.
 Dex — Converts Java .class bytecode into Android .dex bytecode.
 Hierarchy Viewer — Provides both a visual representation of a layout’s
View hierarchy to debug and optimize your UI, and a magnified display
to get your layouts pixel-perfect.
 Lint — A tool that analyzes your application and its resources to suggest
improvements and optimizations.
 Draw9patch: A handy utility to simplify the creation of NinePatch
graphics.
 Monkey and Monkey Runner: Monkey runs within the VM, generating
pseudo-random user and system events. Monkey Runner provides an API
for writing programs to control the VM from outside your application.
 ProGuard — A tool to shrink and obfuscate your code by replacing
class, variable, and method names with semantically meaningless

16
alternatives. This is useful to make your code more difficult to reverse
engineer.

2.4.1. The Android Emulator

The Emulator is available for testing and debugging your applications. The
Emulator is an implementation of the Dalvik VM, making it as valid a platform
for running Android applications as any Android phone. Because it’s decoupled
from any particular hardware, it’s an excellent baseline to use for testing your
applications.

Full network connectivity is provided along with the ability to tweak the
Internet connection speed and latency while debugging your applications. You
can also simulate placing and receiving voice calls and SMS messages.

Fig. 2.3 Android Emulator


[source: https://developer.android.com/sdk/installing/studio.html]

The ADT plug-in integrates the Emulator into Eclipse so that it’s launched
automatically within the selected AVD when you run or debug your projects. If
you aren’t using the plug-in or want to use the Emulator outside of Eclipse, you
can telnet into the Emulator and control it from its console. For more details on
controlling the Emulator, check out the documentation at resource.

17
To execute the Emulator, you first need to create a virtual device, as described
in the previous section. The Emulator will launch the virtual device and run a
Dalvik instance within it.

2.4.2. Android SDK Manager

The Android SDK Manager can be used to see which version of the SDK you
have installed and to install new SDKs when they are released. Each platform
release is displayed, along with the platform tools and a number of additional
support packages. Each platform release includes the SDK platform,
documentation, tools, and examples corresponding to that release.

2.4.3. Android Application Components

Android applications consist of loosely coupled components, bound by the


application manifest that describes each component and how they interact. The
manifest is also used to specify the application’s metadata, its hardware and
platform requirements, external libraries, and required permissions.

The following components comprise the building blocks for all your Android
applications:

 Activities — Your application’s presentation layer. The UI of your


application is built around one or more extensions of the Activity class.
Activities use Fragments and Views to layout and display information,
and to respond to user actions. Compared to desktop development,
Activities are equivalent to Forms.

 Services — The invisible workers of your application. Service


components run without a UI updating your data sources and Activities,
triggering Notifications, and broadcasting Intents. They’re used to
perform long running tasks, or those that require no user interaction (such
as network lookups or tasks that need to continue even when your
application’s Activities aren’t active or visible.)

18
 Content Providers — Shareable persistent data storage. Content
Providers manage and persist application data and typically interact with
SQL databases. They’re also the preferred means to share data across
application boundaries. You can configure your application’s Content
Providers to allow access from other applications, and you can access the
Content Providers exposed by others. Android devices include several
native Content Providers that expose useful databases such as the media
store and contacts.

 Intents — A powerful inter application message-passing framework.


Intents are used extensively throughout Android. You can use Intents to
start and stop Activities and Services, to broadcast messages system-wide
or to an explicit Activity, Service, or Broadcast Receiver, or to request an
action be performed on a particular piece of data.

 Broadcast Receivers — Intent listeners. Broadcast Receivers enable


your application to listen for Intents that match the criteria you specify.
Broadcast Receivers start your application to react to any received Intent,
making them perfect for creating event-driven applications.

 Widgets — Visual application components that are typically added to


the device home screen. A special variation of a Broadcast Receiver,
widgets enable you to create dynamic, interactive application components
for users to embed on their home screens.

 Notifications — Notifications enable you to alert users to application


events without stealing focus or interrupting their current Activity.
They’re the preferred technique for getting a user’s attention when your
application is not visible or active, particularly from within a Service or
Broadcast Receiver. For example, when a device receives a text message
or an email, the messaging and Gmail applications use Notifications to
alert you by flashing lights, playing sounds, displaying icons, and
scrolling a text summary.

19
2.5. Fundamental Android UI Design

User interface (UI) design, User experience (UX), Human Computer Interaction
(HCI), and usability are huge topics that can’t be covered in the depth.
Nonetheless, the importance of creating a UI that your users will understand and
enjoy using can’t be overstated.

Android introduces some new terminology for familiar programming metaphors


that will be explored in detail in the following sections:

 Views — Views are the base class for all visual interface elements
(commonly known as controls or widgets). All UI controls, including the
layout classes, are derived from View.

 View Groups — View Groups are extensions of the View class that can
contain multiple child Views. Extend the View Group class to create
compound controls made up of interconnected child Views. The View
Group class is also extended to provide the Layout Managers that help
you lay out controls within your Activities.

 Fragments — Fragments, introduced in Android 3.0 (API level 11), are


used to encapsulate portions of your UI. This encapsulation makes
Fragments particularly useful when optimizing your UI layouts for
different screen sizes and creating reusable UI elements. Each Fragment
includes its own UI layout and receives the related input events but is
tightly bound to the Activity into which each must be embedded.
Fragments are similar to UI View Controllers in iPhone development.

 Activities — Activities, described in detail in the previous chapter,


represent the window, or screen, being displayed. Activities are the
Android equivalent of Forms in traditional Windows desktop
development. To display a UI, a View (usually a layout or Fragment) is
assingned to an Activity.

20
2.6. The Android Widget ToolBox

Android supplies a toolbox of standard Views to help you create your UIs. By
using these controls (and modifying or extending them, as necessary), you can
simplify your development and provide consistency between applications.

The following list highlights some of the more familiar toolbox controls:

 TextView — A standard read-only text label that supports multiline


display, string formatting, and automatic word wrapping.
 EditText — An editable text entry box that accepts multiline entry,
word-wrapping, and hint text.
 Chronometer — A Text View extension that implements a simple count-
up timer.
 ListView — A View Group that creates and manages a vertical list of
Views, displaying them as rows within the list. The simplest List View
displays the toString value of each object in an array, using a Text View
for each item.
 Spinner — A composite control that displays a Text View and an
associated List View that lets you select an item from a list to display in
the textbox. It’s made from a Text View displaying the current selection,
combined with a button that displays a selection dialog when pressed.
 Button — A standard push button.
 ToggleButton — A two-state button that can be used as an alternative to
a check box. It’s particularly appropriate where pressing the button will
initiate an action as well as changing a state (such as when turning
something on or off).
 ImageButton — A push button for which you can specify a customized
background image (Drawable).
 CheckBox — A two-state button represented by a checked or unchecked
box.
 RadioButton — A two-state grouped button. A group of these presents
the user with a number of possible options, of which only one can be
enabled at a time.
 ViewFlipper — A View Group that lets you define a collection of Views
as a horizontal row in which only one View is visible at a time, and in
which transitions between visible views can be animated.

21
 VideoView — Handles all state management and display Surface
configuration for playing videos more simply from within your Activity.
 QuickContactBadge — Displays a badge showing the image icon
assigned to a contact you specify using a phone number, name, email
address, or URI. Clicking the image will display the quick contact bar,
which provides shortcuts for contacting the selected contact — including
calling and sending an SMS, email, and IM.

2.7. Introducing Intents

Intents are used as a message-passing mechanism that works both within your
application and between applications. You can use Intents to do the following:

 Explicitly start a particular Service or Activity using its class name.


 Start an Activity or Service to perform an action with (or on) a particular
piece of data.
 Broadcast that an event has occurred.

Intents can be used to support interaction among any of the application


components installed on an Android device, no matter which application they’re
a part of. This turns your device from a platform containing a collection of
independent components into a single, interconnected system.

One of the most common uses for Intents is to start new Activities, either
explicitly (by specifying the class to load) or implicitly (by requesting that an
action be performed on a piece of data). In the latter case the action does not
need to be performed by an Activity within the calling application.

Intents can also be used to broadcast messages across the system. Applications
can register Broadcast Receivers to listen for, and react to, these Broadcast
Intents. This enables you to create event-driven applications based on internal,
system, or third-party application events.

Android broadcasts Intents to announce system events, such as changes in


Internet connectivity or battery charge levels. The native Android applications,
such as the Phone Dialer and SMS Manager, simply register components that
listen for specific Broadcast Intents — such as “incoming phone call” or “SMS
message received” — and react accordingly. As a result, you can replace many
of the native applications by registering Broadcast Receivers that listen for the
same Intents.

22
Using Intents, explicitly loading classes to propagate actions even within the
same application are a fundamental Android design principle. It encourages the
decoupling of components to allow the seamless replacement of application
elements. It also provides the basis of a simple model for extending an
application’s functionality

2.7.1. Using Intents to Launch Activities

The most common use of Intents is to bind your application components and
communicate between them. Intents are used to start Activities, allowing you to
create a workflow of different screens.

Intent can be constructed to explicitly specify the Activity class to open, or to


include an action that the target Activity must be able to perform. In the latter
case, the run time will choose an Activity dynamically using a process known as
intent resolution.

By using startActivity, the application won’t receive any notification when the
newly launched Activity finishes. To track feedback from a sub-Activity, use
startActivityForResult.

2.7.2. Using Intents to Broadcast Events

As a system-level message-passing mechanism, Intents are capable of sending


structured messages across process boundaries. As a result, you can implement
Broadcast Receivers to listen for, and respond to, these Broadcast Intents within
your applications. Broadcast Intents are used to notify applications of system or
application events, extending the event-driven programming model between
applications.

Broadcasting Intents helps make your application more open by broadcasting


an event using Intent, you let yourself and third-party developers react to events
without having to modify your original application. Within your applications
you can listen for broadcast Intents to react to device state changes and third-
party application events. Android uses Broadcast Intents extensively to
broadcast system events, such as changes in network connectivity, docking
state, and incoming calls.

23
2.8. Introducing the Intent Service

The Intent Service is a convenient wrapper class that implements the best
practice pattern for background Services that perform set tasks on demand, such
as recurring Internet updates or data processing. Other application components
request an Intent Service complete a task by starting the Service and passing in
an Intent containing the parameters necessary to complete the task.

The Intent Service queues request Intents as they are received and process
them consecutively on an asynchronous background Thread. After every
received Intent has been processed, the Intent Service will terminate itself. The
Intent Service handles all the complexities around queuing multiple requests,
background Thread creation, and UI Thread synchronization.

2.8.1. Creating Intent Filters and Broadcast Receivers

Having learned to use Intents to start Activities/Services and to broadcast


events, it’s important to understand how to create the Broadcast Receivers and
Intent Filters that listen for Broadcast Intents and allow your application to
respond to them.

In the case of Activities and Services, Intent is a request for an action to be


performed on a set of data, and an Intent Filter is a declaration that a particular
application component is capable of performing an action on a type of data.
Intent Filters are also used to specify the actions a Broadcast Receiver is
interested in receiving.

2.8.2. Using Intent Filters to Service Implicit Intents

If Intent is a request for an action to be performed on a set of data, how does


Android know which application (and component) to use to service that
request? Using Intent Filters, application components can declare the actions
and data they support.

To register an Activity or Service as a potential Intent handler, add an intent-


filter tag to its manifest node using the following tags and associated attributes:

 action — Uses the android:name attribute to specify the name of the


action being serviced. Each Intent Filter must have at least one action tag.
Actions should be unique strings that are self-describing. Best practice is
to use a naming system based on the Java package naming conventions.

24
 category — Uses the android:name attribute to specify under which
circumstances the action should be serviced. Each Intent Filter tag can
include multiple category tags.

You can specify your own categories or use the following standard values:

 ALTERNATIVE — This category specifies that this action should be


available as an alternative to the default action performed on an item of
this data type. For example, where the default action for a contact is to
view it, the alternative could be to edit it.

 SELECTED_ALTERNATIVE— Similar to the ALTERNATIVE


category, but whereas that category will always resolve to a single action
using the intent resolution described next, SELECTED_ALTERNATIVE
is used when a list of possibilities is required. As you’ll see later in this
chapter, one of the uses of Intent Filters is to help populate context menus
dynamically using actions.

 BROWSABLE — Specifies an action available from within the browser.


When Intent is fired from within the browser, it will always include the
browsable category. If you want your application to respond to actions
triggered within the browser (e.g., intercepting links to a particular
website), you must include the browsable category.

 DEFAULT — Set this to make a component the default action for the
data type specified in the Intent Filter. This is also necessary for
Activities that are launched using an explicit Intent.

 HOME — By setting an Intent Filter category as home without


specifying an action, you are presenting it as an alternative to the native
home screen.

 LAUNCHER — Using this category makes an Activity appear in the


application launcher.

 DATA — The data tag enables you to specify which data types your
component can act on; you can include several data tags as appropriate.

25
You can use any combination of the following attributes to specify the
data your component supports:
 android: host — Specifies a valid hostname (e.g., google.com).
 android: mimetype — Specifies the type of data your component is
capable of handling. For example, <type
android:value=”vnd.android.cursor.dir/*”/> would match any
Android cursor.
 android: path — Specifies valid path values for the URI (e.g.,
/transport/boats/).
 android:port — Specifies valid ports for the specified host.
 android:scheme — Requires a particular scheme (e.g., content or
http).

2.9. Introducing Fragments

Fragments enable you to divide your Activities into fully encapsulated reusable
components, each with its own lifecycle and UI.
The primary advantage of Fragments is the ease with which you can create
dynamic and flexible UI designs that can be adapted to suite a range of screen
sizes from small-screen smart phones to tablets. Each Fragment is an
independent module that is tightly bound to the Activity into which it is placed.

Fragments can be reused within multiple activities, as well as laid out in a


variety of combinations to suit multi pane tablet UIs and added to, removed
from, and exchanged within a running Activity to help build dynamic UIs.

Fragments provide a way to present a consistent UI optimized for a wide


variety of Android device types, screen sizes, and device densities. Although it
is not necessary to divide your Activities (and their corresponding layouts) into
Fragments, doing so will drastically improve the flexibility of your UI and make
it easier for you to adapt your user experience for new device configurations.

2.9.1. Interfacing Between Fragments and Activities

Use the getActivity method within any Fragment to return a reference to the
Activity within which it’s embedded. This is particularly useful for finding the
current Context, accessing other Fragments using the Fragment Manager, and
finding Views within the Activity’s View hierarchy.

26
TextView textView=(TextView)getActivity().findViewById(R.id.textview);

Although it’s possible for Fragments to communicate directly using the host
Activity’s Fragment Manager, it’s generally considered better practice to use the
Activity as an intermediary. This allows the Fragments to be as independent and
loosely coupled as possible, with the responsibility for deciding how an event in
one Fragment should affect the overall UI falling to the host Activity.

Where your Fragment needs to share events with its host Activity (such as
signaling UI selections), it’s good practice to create a callback interface within
the Fragment that a host Activity must implement.

2.10. Creating Content Providers

Content Providers provide an interface for publishing data that will be


consumed using a Content Resolver. They allow you to decouple the application
components that consume data from their underlying data sources, providing a
generic mechanism through which applications can share their data or consume
data provided by others.

To create a new Content Provider, extend the abstract ContentProvider class:


public class MyContentProvider extends ContentProvider

Like the database contract class described in the previous section, it’s good
practice to include static database constants particularly column names and the
Content Provider authority that will be required for transacting with, and
querying, the database.

It will also need to override the onCreate handler to initialize the underlying
data source, as well as the query, update, delete, insert, and getType methods to
implement the interface used by the Content Resolver to interact with the data.

2.10.1. Native Android Content Providers

Android exposes several native Content Providers, which you can access
directly using the techniques described earlier in this chapter. Alternatively, the
android provider package includes APIs that can simplify access to many of the
most useful Content Providers, including the following-

27
 Media Store — Provides centralized, managed access to the multimedia
on your device, including audio, video, and images. You can store your
own multimedia within the Media Store and make it globally available.

 Browser — Reads or modifies browser and browser search history.

 Contacts Contract — Retrieves, modifies, or stores contact details and


associated social stream updates.

 Calendar — Creates new events, and deletes or updates existing calendar


entries. That includes modifying the attendee lists and setting reminders.

 Call Log — Views or updates the call history, including incoming and
outgoing calls, missed calls, and call details, including caller IDs and call
durations.

28
CHAPTER 3
PROPOSED SYSTEM

The aim of proposed system is to develop a system of improved facilities. The


proposed system can overcome all the limitations of the existing system. The
system provides proper security and reduces the manual work. The existing
system has several disadvantages and many more difficulties to work well. The
proposed system tries to eliminate or reduce these difficulties up to some
extent. The proposed system will help the user to reduce the workload and
mental conflict. The proposed system helps the user to work user friendly and it
can be done without time lagging.

3.1. System Analysis

System analysis is a process of gathering and interpreting facts, diagnosing


problems and the information to recommend improvements on the system. It is
a problem solving activity that requires intensive communication between the
system users and system developers. System analysis or study is an important
phase of any system development process. The system is studied to the minutest
detail and analyzed. The system analyst plays the role of the interrogator and
dwells deep into the working of the present system.

The system is viewed as a whole and the input to the system are identified.
The outputs from the organizations are traced to the various processes. System
analysis is concerned with becoming aware of the problem, identifying the
relevant and decisional variables, analyzing and synthesizing the various factors
and determining an optimal or at least a satisfactory solution or program of
action.

29
A detailed study of the process must be made by various techniques like
interviews, questionnaires etc. The data collected by these sources must be
scrutinized to arrive to a conclusion. The conclusion is an understanding of how
the system functions. This system is called the existing system. Now the
existing system is subjected to close study and problem areas are identified. The
designer now functions as a problem solver and tries to sort out the difficulties
that the enterprise faces. The solutions are given as proposals. The proposal is
then weighed with the existing system analytically and the best one is selected.
The proposal is presented to the user for an endorsement by the user. The
proposal is reviewed on user request and suitable changes are made. This is loop
that ends as soon as the user is satisfied with proposal.

Preliminary study is the process of gathering and interpreting facts, using the
information for further studies on the system. Preliminary study is problem
solving activity that requires intensive communication between the system users
and system developers. It does various feasibility studies. In these studies a
rough figure of the system activities can be obtained, from which the decision
about the strategies to be followed for effective system study and analysis can
be taken.

3.2. Feasibility Study


Feasibility study is made to see if the project on completion will serve the
purpose of playing the quiz application. Feasibility study lets the developer
foresee the future of the project and the usefulness. A feasibility study of a
system proposal is according to its workability, to meet the user needs and
effective use of resources. Thus when a new application is proposed it normally
goes through a feasibility study before it is approved for development.

The document provide the feasibility of the project that is being designed and
lists various areas that were considered very carefully during the feasibility
study of this project such as Technical, Economic and Operational
feasibilities. The following are its features:

30
3.2.1. Technical Feasibility
The system must be evaluated from the technical point of view first. The
assessment of this feasibility must be based on an outline design of the system
requirement in the terms of input, output, programs and procedures. Having
identified an outline system, the investigation must go on to suggest the type of
equipment, required method developing the system, of running the system once
it has been designed.

Technical issues raised during the investigation are:


 Does the existing technology sufficient for the suggested one?
 Can the system expand if developed?

The project should be developed such that the necessary functions and
performance are achieved within the constraints. The project is developed
within latest technology. Through the technology may become obsolete after
some period of time, due to the fact that never version of same software
supports older versions, the system may still be used. So there are minimal
constraints involved with this project. The system has been developed using
Java the project is technically feasible for development.

3.2.2. Economic Feasibility


The developing system must be justified by cost and benefit. Criteria to ensure
that effort is concentrated on project, which will give best, return at the earliest.
One of the factors, which affect the development of a new system, is the cost it
would require.

The following are some of the important financial questions asked during
preliminary investigation:

 The costs conduct a full system investigation.


 The cost of the hardware and software.
 The benefits in the form of reduced costs or fewer costly errors.

Since the system is developed as part of project work, there is no manual cost
to spend for the proposed system. Also all the resources are already available, it
give an indication of the system is economically possible for development.

31
3.2.3. Behavioral Study
This includes the following questions:

 Is there sufficient support for the users?


 Will the proposed system cause harm?

The project would be beneficial because it satisfies the objectives when


developed and installed. All behavioral aspects are considered carefully and
conclude that the project is behaviorally feasible.

3.2.4. Cost Analysis

The cost regarding this project and maintenance of the project system is
negligible. Cost of essential hardware and software is not required much. The
proposed system is fully automated and hence easy to use. Since benefits out
base the cost, hence our application is economically feasible.

3.3. Designing
Design is the first step into the development phase for any engineered product
or system. Design is a creative process. A good design is the key to effective
system. The term “design” is defined as “the process of applying various
techniques and principles for the purpose of defining a process or a system in
sufficient detail to permit its physical realization”. It may be defined as a
process of applying various techniques and principles for the purpose of
defining a device, a process or a system in sufficient detail to permit its physical
realization.
Software design sits at the technical kernel of the software engineering
process and is applied regardless of the development paradigm that is used. The
system design develops the architectural detail required to build a system or
product.

32
As in the case of any systematic approach, this software too has undergone the
best possible design phase fine tuning all efficiency, performance and accuracy
levels. The design phase is a transition from a user oriented document to a
document to the programmers or database personnel.

3.3.1. Module Design :

Table No. 3.1

Level 1: Very super famous PLAY!

Level 2: Modern Alchemists (answer 5 to unlock)

Level 3: By the Meter (answer 12 to unlock)

Level 4: Story of the Atom (answer 19 to unlock)

Level 5: Secrets of life (answer 24 to unlock)

Level 6: Quantum Menace (answer 31 to unlock)

Level 1: Very Super Famous


It has in questions images of very famous scientists like Marie Curie
or Galileo which every middle school student has read about.

Level 2: Modern Alchemists


This is specific to scientists from field of chemistry and needs
specializations and some answers are tough to crack.

Level 3: By the Meter


Scientists on who name of units have been kept.

33
Level 4: Story of Atom
It involves those scientists who were a part discovery of atom.

Level 5: Secrets of life


This is a biology oriented round where the scientists are belonging to the
life sciences group.

Level 6: Quantum Menace


This is about modern physics where contributors have been zoned down
to the field of quantum mechanics.

3.3.2. A brief description about levels:

All these levels have 7-8 questions and initially only one level is unlocked .The
rest of the levels unlock when we start answering the questions of previous
levels which is mentioned on the levels. For example we need to answer atleast
19 questions correctly before the Story of atom level opens up.
Each right and wrong answer is accompanied by a cross or tick symbol along
with sound.

The application has various levels to offer .The first one being a very basic
one and features scientists which every middle school student has heard about.
Even if a student is unable to figure out by looking at the picture itself then a set
of four options provided makes it a little easier. When realization dawns upon
the student that the scientist being missed out was a very famous one who
shaped the course of science this is where it becomes more engaging. As the
levels increase the fields narrow to down to more specific domains like
chemists, biologists etc. here the student has to move out of their comfort zone
to explore more. A small biography about the scientist is also provided when
you answer a question correctly to know more about them.

In case you get an incorrect answer in the first attempt then a small hint is
given about that question which helps you take the second shot in the right
direction. What if someone tries to play the guessing game here a small trick has
been used that after every attempt the order of options changes. So if you took

34
the third option as a blind guess then the situation might be that the next time
the fourth option will get replaced by the third option of the previous attempt.
Thus foxing the player at that juncture so you need to be aware and alert while
attempting the quiz even though you don’t have any idea about the answer.
3.4. Software Environment

3.4.1. Hardware Specification

Table No. 3.2


Screen Size 3.2 inch and above

Processor 500 MHz

RAM 64 MB

Internal memory 10 MB

CPU Cores More than one

3.4.2. Software Specification

Table No. 3.3

Operating System Android(Gingerbread 2.3 & above)

Languages Java , XML

Front End Application

Platform Android

Others Not for windows or iOS

35
3.5. Code Details

The purpose of code is to facilitate the identification, retrieval of the items and
information. A code is an oriented collection of symbols design to provide
unique identification of an entry or attribute. Code is built with manually
exclusive features.
Codes in all cases specify object which are physical or on performance
characteristics. They are used to give optimal distraction and other information.
Codes are used for identifying, accessing, storing and matching records. The
codes insure that only one value of the code with a single meaning is correctly
applied to give entity or attribute as described in various ways.

3.6. Project Testing

 Testing Objectives
 To ensure that during operation the system will perform as per
specification.
 To make sure that the system makes user requirement during operations.

 Testing Principles
 All tests should be traceable to user requirements.
 Tests should be planned long before testing begins.

 Test Case Design


 A rich variety of test case design methods have evolved for software.
 These methods provide the developer with a systematic approach to
testing.

1. White-Box Testing
White Box Testing is a testing in which in which the software

36
tester has knowledge of the inner workings, structure and language
of the software, or at least its purpose. It is used to test areas that
cannot be reached from a black box level.
2. Black-Box Testing
Black Box Testing is testing the software without any knowledge
of the inner workings, structure or language of the module being
tested. Black box tests, as most other kinds of tests, must be
written from a definitive source document, such as specification or
requirements document, such as specification or requirements
document.

Table No. 3.4.

TYPES OF TEST COMMENTS/ SOFTWARE


EXPLANATIONS COMPONENTS

Requirement testing Since there is no use of Android Phone


SQLite for database so,
need an android phone.

Unit Testing The whole project is Regular expression,


divide into many String Matching
functionality. Hence all
the units were
individually tested.
Performance This Testing is applied Searching
on details searching
which is providing
search result.
Integration After the unit testing Regular expression,
this testing is applied. String Matching
All the units were
Integrated and tested.

37
CHAPTER 4
SNAPSHOTS

Fig. 4.1. Fig. 4.2.


A glimpse of the home screen where An extended list as all levels are
only the first level is unlocked. not visible in one frame.

38
Fig. 4.3. Fig. 4.4.
Credits for various images used in The appearance of level after
“Faces of Science” and reset the application one question has been answered.
to the initial stage.

Fig. 4.5. Fig. 4.6.


The images in the first level the very An arrow on the opening of level
Famous one. indicating how to play.

39
Fig. 4.7. Fig. 4.8.
A hint visible for a question in form The first question of the very
of a short biography. famous with options.

Fig. 4.9. Fig. 4.10.


In case of answering incorrectly a large In case of answering correctly a
cross covers up accompanied by sound. tick mark accompanied by sound.

40
CONCLUSION

The project titled as “Android Quiz Application for Google Play Store” is an
android based application. It maintains all information related to the field of
science. The major advantage of developing this application is that to help
students for boost up their knowledge in field of science.

The aim supposed to be achieved by developing this project has been


completed successfully with satisfaction. The constraints are met and overcome
successfully. The system is designed as like it was decided in the design phase.
The project gives good idea on developing a full-fledged application satisfying
the user requirements.

The system is very flexible and versatile. This software has a user-friendly
screen that enables the user to use without any inconvenience. Validation
checks induced have greatly reduced errors. Provisions have been made to
upgrade the software. The application has been tested with live data and has
provided a successful result. Hence the software has proved to work efficiently.

41
FUTURE SCOPE

In future we can able to add more modules in this project. We can make it more
attractive by the LOOK and FEEL feature. Android Quiz Application is very
useful for students to boost their knowledge about the famous scientists which
form a part of their text book. This application can increase its domain from
science to others like Mathematics, General Knowledge, etc. Generic User
Interface implemented by the inclusion of Voice User interface. Thus questions
can be spoken by voice on the application. We can also make it available on
several other platforms like windows and IOS.

42
REFERENCES

Resources/urls :

1. http://developer.android.com/reference/packages.html

2. http://developer.android.com/sdk/index.html

3. “Android Studio Plug-in”


(https://android.googlesource.com/platform/tools/adt/idea/+/master/android/src/org
/jetbrains/android/AndroidPlug in.java)

4. https://developer.android.com/sdk/installing/studio.html

5. "Google Launches Android Studio And New Features For Developer Console,
Including Beta Releases And Staged Rollout"
(http://venturebeat.com/2014/12/08/google-releases-android-studio-10-the-first-
stable-version-of-its-ide/

6. "Android Studio: An IDE built for Android"


(http://android-developers.blogspot.in/2013/05/android-studio-ide-built-for-
android.html).

7. "Getting Started with Android Studio"


(http://developer.android.com/sdk/installing/studio.html).

8. "Download Android Studio IDE For Windows, OS X And Linux"


(http://www.redmondpie.com/download-android-studio-ide-for-windows-os-x-and-
linux/).

9. http://developer.android.com/guide/developing/tools/index.html

10. http://developer.android.com/guide/developing/tools/emulator.html

43
Text books references:

1. The Android Developer’s Cookbook By James Steele Nelson


2. Unusual Pattern Detection in DNA Database Using KMP Algorithm By
S.RAJESH,
3. Research on Development of Android Applications By Jianye Liu
4. Creating and Using Databases for Android Applications Sunguk Lee
5. OL. Google Android Developers, Android Develop Guide, .
6. http://www.tutorialspoint.com
7. http://www.youtube.com/watch?v=xtsyrKdPZVw&list=PL9E21BFF40816
8. Android Developers, http://www.androidin.com/.

44

Vous aimerez peut-être aussi