tetris development for android
Post on 03-Apr-2018
239 Views
Preview:
TRANSCRIPT
-
7/28/2019 Tetris Development for Android
1/53
1. INTRODUCTION
1.1 Purpose of the project:
The purpose of the project is to list down requirements for the Tetris application, which
is submitted to JNTU University, Kakinada as part of the fulfillment of Bachelors of
Technology course enrolled at Chaitanya Institute of Engineering and Technology.
1.2Existing System:
Tetris is available in many forms and available on various devices like desktop
computers, hand held devices like PDA etc. as of today.
1.3 Proposed system:
QTetris is an application for the Android phones, which are widely used in the foreign
countries.
1.4 Feasibility study:
All projects are feasible if they have unlimited resources and infinite time. But the
development of software is plagued by the scarcity of resources and difficult delivery
rates. It is necessary and prudent to evaluate the feasibility of a project at the earliest
possible time. The three considerations are involved in the feasibility analysis.
1.4.1 Economic Feasibility:
This procedure is to determine the benefits and savings that are expected from acandidate system and compare with cost. If benefits outweigh cost then the decision is
made to design and implement the system.
1
-
7/28/2019 Tetris Development for Android
2/53
Otherwise further justification or alterations in proposed system that have to be made if
it is having a change of being approved .This is an ongoing effort that improves in
accuracy of each phase of the system lifecycle. For my project I am not expecting any
feasibility costs spent on this on this project because here I am using open source
environments.
1.4.2 Technical feasibility:
Technical feasibility centers on the existing mobile system (hardware, software etc...)
and to what extent it can support the proposed addition if the budget is a serious
constraint, then the project is judged not feasible. The Technical feasibilities are
important role in my project because here I am using android operating system.
1.4.3Operational feasibility:
People are inherently resistant to change and mobiles have been known to facilitate
change. In my project a technical people require to configure the software and technical
background is necessary to work on the sensors.
2
-
7/28/2019 Tetris Development for Android
3/53
1.5 Intended Developers:
3
-
7/28/2019 Tetris Development for Android
4/53
2. SCOPE OF PROJECT
The scope of this project is to develop an Android based gaming application for Tetris.
The game (or one of its many variants) is available for nearly every video game console
and computer operating system, as well as on devices such as graphing calculators,
mobile phones, portable media players, PDAs and even as an Easter egg on non-media
products like oscilloscopes. It has even been played on the sides of various buildings,
with the record holder for the world's largest fully functional game of Tetris being an
effort by Dutch students in 1995 that lit up all 15 floors of the Electrical Engineering
department at Delft University of Technology.
This project is aimed to develop the Tetris game on Mobile phone.
4
-
7/28/2019 Tetris Development for Android
5/53
3. PRODUCT PERSPECTIVE
This research is on the latest open source mobile development platform called, Android
and to implement a game based technologies for different requirements.
3.1 Product Features:
Android is "openness." The promise is that developers can produce
applications without interference.
"The fact that (Android) is an advanced, open operating system is important
to the development community, but customers don't buy operating systems.
The interface is flexible.
The Android Platform provides a rich security model that allows developers
to request the capabilities, or access, needed by their application and to
define new capabilities that other applications can request.
Developers have full access to the same framework APIs used by the core
applications
5
-
7/28/2019 Tetris Development for Android
6/53
4. ASSUMPTIONS AND DEPENDENCIES
Having only hardware is not sufficient, to access an application Software is
must.
Assumption is made in such a way that the mobile is charged with enough
battery.
The battery should be in a working mode.
The one who using the mobile must have a minimum knowledge of how to play
Tetris game.
6
http://code.google.com/android/devel/security.htmlhttp://code.google.com/android/devel/security.html -
7/28/2019 Tetris Development for Android
7/53
5. SOFTWARE REQUIREMENT SPECIFICATION
5.1 Functional Requirements Specification
The system is required to perform the following functions.
1. Display all the information about the application that is being developed and
some set of instructions the user might want to remember before he sets up the
system for configuring global time.
2. Sign in your application with jar signer before running your application
3. Install your apk file with android bridge (i.e adb) .
4. After executing your application tetris
5. Ability to rotate the shapes in clockwise and anti clockwise direction.
6. Use up and down arrow keys for rotating.
7. Able to display score
8. Ability to pause and resume and stop the application
5.2 Non-Functional Requirements
Application framework enabling reuse and replacement of components. Dalvik virtual machine optimized for mobile devices.
7
-
7/28/2019 Tetris Development for Android
8/53
Integrated browser based on the open source Web Kit engine. Optimized graphics powered by a custom 2D graphics library; 3D graphics
based on the OpenGL ES 1.0 specification (hardware acceleration optional).
SQLite for structured data storage. GPS Rich development environment including a device emulator, tools for
debugging, memory and performance profiling, and a plug-in for the Eclipse
IDE.
The system is expected to run on low memory devices also. The system should not consume lot of bandwidth so that the other applications
will block for the internet.
The system should provide secured access to the web server.
Requirements Specifications
5.3 Software Requirements:
J2SE, Android, Linux, Windows XP, Eclipse 3.4, Mobile IDE Plug-in.
5.4 Hardware Requirements:
Pentium IV with 2GHZ, 1 GB RAM, 40 GB Hard Drive, Android Phone
(optional)
8
-
7/28/2019 Tetris Development for Android
9/53
6. PROJECT ANALYSIS
6.1 Overview:
Tetris is one of the few games that achieve ultimate popularity. It is remarkably simple,
yet remarkably difficult. It's been ported to every computer and game console known to
man, and has sold millions of cartridges, tapes, and disks across the land.
Besides that, it also led to one of the most interesting legal battles in the history of videogames, leading to the famed Tengen version of Tetris and to the downfall of a few
companies. It's a pretty cool story, so let's get down to business. Hold on for a second
while I set the time machine to cruise control
Tetris has been involved in many legal battles. In June 1985, Alexey Pajitnov created
Tetris on an Elektronika 60 while working for the Soviet Academy of Sciences at their
Computer Center in Moscow with Dmitry Pavlovsky, and Vadim Gerasimov ported it
to the IBM PC. Gerasimov reports that Pajitnov chose the name "Tetris" as "a
combination of 'tetramino' and 'tennis'.
9
-
7/28/2019 Tetris Development for Android
10/53
From there, the PC game exploded into popularity, and began spreading all around
Moscow. This version is available on Gerasimov's web site.
Meanwhile, before any legal rights were settled, the Spectrum HoloByte IBM PC
version of Tetris was released in the United States in 1986. The game's popularity was
tremendous, and many players were instantly hookedit was a software blockbuster,
with reviews such as in Computer Gaming World calling the game "deceptively simple
and insidiously addictive".
The details of the licensing issues were uncertain by this point, but in 1987 Andromeda
managed to obtain copyright licensing for the IBM PC version and any other home
computer system.By 1988, the Soviet government began to market the rights to Tetris through an
organization called Elektronorgtechnica, or "Elorg" for short. Pajitnov had granted his
rights to the Soviet Government, via the Computer Center he worked at for ten years.
By this time Elorg had still seen no money from Andromeda, and yet Andromeda was
licensing and sub-licensing rights that they themselves did not even have.
By 1989, half a dozen different companies claimed rights to create and distribute the
Tetris software for home computers, game consoles, and handheld systems. Elorg,
meanwhile, held that none of the companies were legally entitled to produce an arcade
version, and signed those rights over to Atari Games, while it signed non-Japanese
console and handheld rights over toNintendo.
10
http://en.wikipedia.org/wiki/Alexey_Pajitnovhttp://en.wikipedia.org/wiki/Elektronika_60http://en.wikipedia.org/wiki/Soviet_Academy_of_Scienceshttp://en.wikipedia.org/wiki/IBM_PChttp://en.wikipedia.org/wiki/Alexey_Pajitnovhttp://en.wikipedia.org/wiki/Elektronika_60http://en.wikipedia.org/wiki/Soviet_Academy_of_Scienceshttp://en.wikipedia.org/w/index.php?title=Dmitry_Pavlovsky&action=edit&redlink=1http://en.wikipedia.org/wiki/Vadim_Gerasimovhttp://en.wikipedia.org/wiki/IBM_PChttp://en.wikipedia.org/wiki/United_Stateshttp://en.wikipedia.org/wiki/Computer_Gaming_World -
7/28/2019 Tetris Development for Android
11/53
Screenshot of theNES version of TETIS: the Soviet Mind Game
Pajitnov himself has made very little money from the deal, even though Nintendo
profited greatly from the game.
In 1996, The Tetris Company LLC (TTC) was formed in an effort to derive revenue
from TetrisTTC is now the exclusive licensee of Tetris Holding, LLC, which owns
copyright registrations for Tetris products in the United States and trademark
registrations for Tetris in most every country in the world. Tetris Holding through TTC
has licensed its intellectual property to a number of companies. The U.S. Court of
International Trade and the U.S. Customs have at times issued seizure orders to
preclude knock-off Tetris games from being imported into the U.S., despite bulletins
circulated by the U.S. Copyright Office stating that copyright does not apply to the rules
of a game.
Due to the popularity of Tetris, there have also been many knock-off and lookalike
games on the Internet, many with names confusingly similar to "Tetris". In order to stop
this infringement, TTC and Tetris Holding have vigorously policed and enforced their
rights and have sent cease-and-desist letters to websites that infringe the Tetris mark.
Effect of Tetris on the brain:
According to intensive research from Dr. Michael Crane and Dr. Richard Haier, et al.
prolonged Tetris activity can also lead to more efficient brain activity during play.
11
http://en.wikipedia.org/wiki/Nintendohttp://en.wikipedia.org/wiki/Atari_Gameshttp://en.wikipedia.org/wiki/Japanhttp://en.wikipedia.org/wiki/Nintendohttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/Nintendo_Entertainment_Systemhttp://en.wikipedia.org/wiki/File:TET%D0%AFIS_The_Soviet_Mind_Game.pnghttp://en.wikipedia.org/wiki/Elektronorgtechnicahttp://en.wikipedia.org/wiki/Arcade_gamehttp://en.wikipedia.org/wiki/Atari_Gameshttp://en.wikipedia.org/wiki/Japanhttp://en.wikipedia.org/wiki/Nintendohttp://en.wikipedia.org/wiki/Nintendo_Entertainment_System -
7/28/2019 Tetris Development for Android
12/53
When first playing Tetris, brain function and activity increases, along with greater
cerebral energy consumption, measured by glucose metabolic rate. As Tetris players
become more proficient, their brains show a reduced consumption of glucose, indicating
more efficient brain activity for this task. The game can also cause a repetitive stress
symptom in that the brain will involuntarily picture Tetris combinations even when the
player is not playing the game (the Tetris effect), although this can occur with any
computer game showcasing repeated images or scenarios.
In January 2009, an Oxford University research group headed by Dr Emily Holmes
reported in PLoS ONE that for healthy volunteers, playing Tetris soon after viewing
traumatic material in the laboratory reduced the number of flashbacks to those scenes inthe following week. They believe that the computer game may disrupt the memories
that are retained of the sights and sounds witnessed at the time, and which are later re-
experienced through involuntary, distressing flashbacks of that moment. The group
hope to develop this approach further as a potential intervention to reduce the
flashbacks experienced in PTSD, but emphasized that these are only preliminary results.
12
http://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/File:Tetris_NES_play.pnghttp://en.wikipedia.org/wiki/Glucose -
7/28/2019 Tetris Development for Android
13/53
7. PROJECTDESIGN
What is UML?
The Unified Modeling Language (UML) is a standard language for specifying,
visualizing, constructing, and documenting the artifacts of software systems, as well as
for business modeling and other non-software systems. The UML represents a
collection of best engineering practices that have proven successful in the modeling of
large and complex systems. The UML is a very important part of developing objects
oriented software and the software development process. The UML uses mostly
graphical notations to express the design of software projects. Using the UML helps
project teams communicate, explore potential designs, and validate the architectural
design of the software.
Goals of UML:
The primary goals in the design of the UML were:
13
http://en.wikipedia.org/w/index.php?title=Repetitive_stress_symptom&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Repetitive_stress_symptom&action=edit&redlink=1http://en.wikipedia.org/wiki/Tetris_effect -
7/28/2019 Tetris Development for Android
14/53
Provide users with a ready-to-use, expressive visual modeling language so they
can develop and exchange meaningful models.
Provide extensibility and specialization mechanisms to extend the core concepts.
Be independent of particular programming languages and development
processes.
Provide a formal basis for understanding the modeling language.
Encourage the growth of the OO tools market.
Support higher-level development concepts such as collaborations, frameworks,
patterns and components. Integrate best practices.
Why Use UML?
As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce
cost and time-to-market. These techniques include component technology, visual
programming, patterns and frameworks. Businesses also seek techniques to manage the
complexity of systems as they increase in scope and scale. In particular, they recognize
the need to solve recurring architectural problems, such as physical distribution,
concurrency, replication, security, load balancing and fault tolerance. Additionally, the
development for the World Wide Web, while making some things simpler, has
exacerbated these architectural problems. The Unified Modeling Language (UML) was
designed to respond to these needs.
UML Diagrams:UML diagram is designed to let developers and customers view a software system from
a different perspective and in varying degrees of abstraction. UML diagrams commonly
created in visual modeling tools include.
14
-
7/28/2019 Tetris Development for Android
15/53
7.1 Use case Diagram:
A use case is a set of scenarios that describing an interaction between a user and a
system. A use case diagram displays the relationship among actors and use cases. The
two main components of a use case diagram are use cases and actors.
An actor is represents a user or another system that will interact with the system you are
modeling. A use case is an external view of the system that represents some action theuser might perform in order to complete a task.
When to Use: Use Cases Diagrams:
Use cases are used in almost every project. They are helpful in exposing requirements
and planning the project. During the initial stage of a project most use cases should be
defined, but as the project continues more might become visible.
15
-
7/28/2019 Tetris Development for Android
16/53
7.2 Class Diagram:
Class diagrams are widely used to describe the types of objects in a system and their
relationships. Class diagrams model class structure and contents using design elements
such as classes, packages and objects. Class diagrams describe three different
perspectives when designing a system, conceptual, specification, and implementation.
These perspectives become evident as the diagram is created and help solidify the
design. This example is only meant as an introduction to the UML and class diagrams.
If you would like to learn more see the Resources page for more detailed resources on
UML.
When to Use: Class Diagrams:
16
-
7/28/2019 Tetris Development for Android
17/53
Class diagrams are used in nearly all Object Oriented software designs. Use them to
describe the Classes of the system and their relationships to each other.
7.3 Sequence Diagram:
Sequence diagrams demonstrate the behavior of objects in a use case by describing the
objects and the messages they pass. The diagrams are read left to right and descending.
The example below shows an object of class 1 start the behavior by sending a message
17
http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/resources.htm -
7/28/2019 Tetris Development for Android
18/53
to an object of class 2. Messages pass between the different objects until the object of
class 1 receives the final message.
TetrisSequencediagram:
18
-
7/28/2019 Tetris Development for Android
19/53
7.4 Activity Diagram:
19
-
7/28/2019 Tetris Development for Android
20/53
Activity diagrams describe the workflow behavior of a system. Activity diagrams are
similar to state diagrams because activities are the state of doing something. The
diagrams describe the state of activities by showing the sequence of activities
performed. Activity diagrams can show activities that are conditional or parallel.
When to Use: Activity Diagrams
Activity diagrams should be used in conjunction with other modeling techniques such
as interaction diagrams and state diagrams. The main reason to use activity diagrams is
to model the workflow behind the system being designed. Activity Diagrams are also
useful for: analyzing a use case by describing what actions needs to take place and
when they should occur; describing a complicated sequential algorithm; and modeling
applications with parallel processes.
However, activity diagrams should not take the place ofinteraction diagrams and state
diagrams. Activity diagrams do not give detail about how objects behave or how
objects collaborate.
20
-
7/28/2019 Tetris Development for Android
21/53
21
http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/state.htmhttp://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/interaction.htmhttp://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/state.htmhttp://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/interaction.htmhttp://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/state.htmhttp://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/state.htm -
7/28/2019 Tetris Development for Android
22/53
8. CODE IMPLEMENTATION
8.1 Android:
The Android platform is a software stack for mobile devices including an operating
system, middleware and key applications. Developers can create applications for the
platform using the Android SDK. Applications are written using the Java programming
language and run on Dalvik, a custom virtual machine designed for embedded use,
which runs on top of a Linux kernel. An embarrassing bug found on the G1 Phone has
been fixed by Google. After starting up the phone if a user then typed reboot, the
phone would reboot.
The bug was found accidentally by a user who happened to type Reboot into his
phone.
Google moved quickly to fix the problem, users in the US are already reporting having
received the update and according to the BBC, users in the UKwill have the update by
12th November.
The G1 has had surprisingly few bugs for a phone that is based on a completely new
platform and is the first phone to use it.
Android Architecture:
The following diagram shows the major components of the Android operating system.
Each section is described in more detail below.
22
-
7/28/2019 Tetris Development for Android
23/53
Applications:
Android will ship with a set of core applications including an email client, SMS
program, calendar, maps, browser, contacts, and others. All applications are written
using the Java programming language.
Application Framework:
Developers have full access to the same framework APIs used by the core applications.
The application architecture is designed to simplify the reuse of components; any
application can publish its capabilities and any other application may then make use of
those capabilities (subject to security constraints enforced by the framework). This same
mechanism allows components to be replaced by the user.
Underlying all applications is a set of services and systems, including:
A rich and extensible set of Views that can be used to build an application,
including lists, grids, text boxes, buttons, and even an embeddable web browser
23
http://news.bbc.co.uk/1/hi/technology/7722367.stm -
7/28/2019 Tetris Development for Android
24/53
Content Providers that enable applications to access data from other applications
(such as Contacts), or to share their own data
A Resource Manager, providing access to non-code resources such as localized
strings, graphics, and layout files
A Notification Manager that enables all applications to display custom alerts in
the status bar
An Activity Managerthat manages the life cycle of applications and provides a
common navigation back stack
Libraries:
Android includes a set of C/C++ libraries used by various components of the Android
system. These capabilities are exposed to developers through the Android application
framework. Some of the core libraries are listed below:
System C library - a BSD-derived implementation of the standard C system
library (libc), tuned for embedded Linux-based devices
Media Libraries - based on Packet Videos Open CORE; the libraries support
playback and recording of many popular audio and video formats, as well as
static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly
composites 2D and 3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android
browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries
use either hardware 3D acceleration (where available) or the included, highlyoptimized 3D software rasterizer
FreeType - bitmap and vectorfont rendering
SQLite - a powerful and lightweight relational database engine available to all
applications
24
-
7/28/2019 Tetris Development for Android
25/53
Android Runtime:
Android includes a set of core libraries that provides most of the functionality available
in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik
virtual machine. Dalvik has been written so that a device can run multiple VMs
efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which
is optimized for minimal memory footprint. The VM is register-based, and runs classes
compiled by a Java language compiler that have been transformed into the .dex format
by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as
threading and low-level memory management.
LINUX KERNEL:
Android relies on Linux version 2.6 for core system services such as security, memory
management, process management, network stack, and driver model. The kernel also
acts as an abstraction layer between the hardware and the rest of the software stack.
8.2 Eclipse 3.4:
An open-source Java IDE and platform for rich client applications Eclipse is an open
source platform-independent software framework for delivering what the project calls
or is known as "rich-client applications" (as opposed to "thin clients", this means the
clients perform heavy-duty work on the host.
25
-
7/28/2019 Tetris Development for Android
26/53
So far this framework has typically been used to develop Ides (Integrated Development
Environments), such as the highly-regarded Java IDE called Java Development Toolkit
(JDT) and compiler that come as part of Eclipse (and which are also used to develop
Eclipse itself). However, it can be used for other types of client application as well, see
the popular Bit Torrent client for example.
8.3 JAVA
OVERVIEW OF JAVA:
Computers connected to the net are from many different manufacturers, running on
different operating systems and they differ in architecture, computing power and
capacity. By considering this point SUN Microsystems Corporation felt the need for a
new programming language suitable for this heterogeneous Environment and java was
the solution. This breaks barriers between different computers, chips and operating
Systems. .
The main properties of the Java, which made Java so popular, are as follows:
Simple
26
-
7/28/2019 Tetris Development for Android
27/53
Secure
Portable
Object-Oriented
Robust
Multithreaded
Interpreted
High performance
The Key Features Of Java Is Byte Code:
The key that allows Java to solve both the security and the portability problems just
described is that the output of a Java compiler is not executable code. Rather, it is Byte
code. Byte code is a highly optimized set of instructions designed to be executed by the
Java runtime systems, which is called the Java Virtual Machine (JVM). That is, in its
standard form, the JVM is an interpreter for Byte code. This may come has a bit of
surprise.
Java Platform:
One characteristic of Java is portability, which means that computer programs written in
the Java language must run similarly on any supported hardware/operating-system
platform. One should be able to write a program once, compile it once, and run it
anywhere.
This is achieved by compiling the Java language code, not to machine code but to Java
bytecode instructions analogous to machine code but intended to be interpreted by a
virtual machine (VM) written specifically for the host hardware. End-users commonly
27
-
7/28/2019 Tetris Development for Android
28/53
-
7/28/2019 Tetris Development for Android
29/53
Windows XP orVista. Requirements also include Java Development Kit, Apache Ant,
and Python 2.2 or later. The officially supported integrated development environment
(IDE) is Eclipse (3.2 or later) using the Android Development Tools (ADT) Plug-in,
though developers may use any text editor to edit Java and XML files then use
command line tools to create, build and debug Android applications.
A preview release of the Android software development kit (SDK) was released on 12
November 2007. On 15 July 2008, the Android Developer Challenge Team accidentally
sent an email to all entrants in the Android Developer Challenge announcing that a new
release of the SDK was available in a "private" download area. The email was intended
for winners of the first round of the Android Developer Challenge. The revelation thatGoogle was supplying new SDK releases to some developers and not others (and
keeping this arrangement private) have led to widely reported frustration within the
Android developer community.
On 18 August 2008 the Android 0.9 SDK beta was released. This release provides an
updated and extended API, improved development tools and an updated design for the
home screen. Detailed instructions for upgrading are available to those already working
with an earlier release. On 23 September 2008 the Android 1.0 SDK (Release 1) was
released.[75] According to the release notes, it included "mainly bug fixes, although some
smaller features were added". It also included several API changes from the 0.9 version.
On March 9, 2009, Google released version 1.1 for the android dev phone. While there
are a few aesthetic updates, a few crucial updates include support for "search by voice,
priced apps, alarm clock fixes, sending gmail freeze fix, fixes mail notifications and
refreshing intervals, and now the maps show business reviews". Another important
update is that Dev phones can now access paid apps and developers can now see them
on the Google marketplace.
29
http://en.wikipedia.org/wiki/Applethttp://en.wikipedia.org/wiki/Applethttp://en.wikipedia.org/wiki/Thread_(computer_science)http://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Just-in-time_compilationhttp://en.wikipedia.org/wiki/Dynamic_recompilationhttp://en.wikipedia.org/wiki/Debuggerhttp://en.wikipedia.org/wiki/Software_libraryhttp://en.wikipedia.org/wiki/Applethttp://en.wikipedia.org/wiki/Thread_(computer_science)http://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Just-in-time_compilationhttp://en.wikipedia.org/wiki/Dynamic_recompilationhttp://en.wikipedia.org/wiki/Debuggerhttp://en.wikipedia.org/wiki/Software_libraryhttp://en.wikipedia.org/wiki/Emulatorhttp://en.wikipedia.org/wiki/QEMUhttp://en.wikipedia.org/wiki/Documentationhttp://en.wikipedia.org/wiki/Tutorialshttp://en.wikipedia.org/wiki/X86http://en.wikipedia.org/wiki/Linuxhttp://en.wikipedia.org/wiki/List_of_Linux_distributionshttp://en.wikipedia.org/wiki/Mac_OS_X -
7/28/2019 Tetris Development for Android
30/53
9. TESTING
What is testing?
A process of executing a program with the explicit intention of finding errors, that is
making the program fail. Testing is the process of detecting errors. Testing performs a
very critical role for quality assurance and for ensuring the reliability of software. The
results of testing are used later on during maintenance also.
Psychology of Testing
The aim of testing is often to demonstrate that a program works by showing that it has
no errors. The basic purpose of testing phase is to detect the errors that may be present
in the program. Hence one should not start testing it the intent of showing that a
program works but the intent should be to show that a program does not work. Testing
is the process of executing a program with the intent of finding errors.
Testing Objectives
The main objective of testing is to uncover a host of errors, systematically and
with minimum effort and time. Stating formally, we can say,
Testing is a process of executing a program with the intent of finding an error.
A successful test is one that uncovers an as yet discovered error.
A good test case is one that has a high probability of finding error, if it exists.
The tests are inadequate to detect possibly present errors.
The software more or les confirms to the quality and reliable standards.
Software Testing:
30
http://en.wikipedia.org/wiki/Google_Android#cite_note-74http://en.wikipedia.org/wiki/Windows_XPhttp://en.wikipedia.org/wiki/Windows_Vistahttp://en.wikipedia.org/wiki/Java_Development_Kithttp://en.wikipedia.org/wiki/Apache_Anthttp://en.wikipedia.org/wiki/Python_(programming_language)http://en.wikipedia.org/wiki/Integrated_development_environmenthttp://en.wikipedia.org/wiki/Eclipse_(software)http://en.wikipedia.org/wiki/Command_linehttp://en.wikipedia.org/wiki/Software_development_kithttp://en.wikipedia.org/wiki/Google_Android#cite_note-74 -
7/28/2019 Tetris Development for Android
31/53
It is the process of testing the functionality and correctness of a software by running it.
A good test case is the one that has a high probability of finding an as yet undiscovered
error. A successful test is one that uncovers an as yet undiscovered error. Software
testing is usually performed for one of the two reasons.
Defect detection.
Reliability estimation.
Black Box Testing:
Black box testing is based on the softwares specifications or requirements, without
reference to its internal workings
Black Box Testing is not a type of testing; it instead is a testing strategy, which does not
need any knowledge of internal design or code etc. As the name "black box" suggests,
no knowledge of internal logic or code structure is required. The types of testing under
this strategy are totally based/focused on the testing for requirements and functionality
of the work product/software application. Black box testing is sometimes also called as
"Opaque Testing", "Functional/Behavioral Testing" and "Closed Box Testing".
The base of the Black box testing strategy lies in the selection of appropriate data as per
functionality and testing it against the functional specifications in order to check for
normal and abnormal behavior of the system. Now a days, it is becoming common to
route the Testing work to a third party as the developer of the system knows too much
of the internal logic and coding of the system, which makes it unfit to test the
application by the developer.
In order to implement Black Box Testing Strategy, the tester is needed to be thorough
with the requirement specifications of the system and as a user, should know, how the
system should behave in response to the particular action.
31
-
7/28/2019 Tetris Development for Android
32/53
White Box Testing:
White box testing is a security testing method that can be used to validate whether code
implementation follows intended design, to validate implemented security functionality,
and to uncover exploitable vulnerabilities White box testing is performed based on the
knowledge of how the system is implemented. White box testing includes analyzing
data flow, control flow, information flow, coding practices, and exception and error
handling within the system, to test the intended and unintended software behavior.
White box testing can be performed to validate whether code implementation follows
intended design, to validate implemented security functionality, and to uncover
exploitable vulnerabilities.
White box testing requires access to the source code. Though white box testing can be
performed any time in the life cycle after the code is developed, it is a good practice to
perform white box testing during the unit testing phase.
White box testing requires knowing what makes software secure or insecure, how to
think like an attacker, and how to use different testing tools and techniques. The first
step in white box testing is to comprehend and analyze source code, so knowing what
makes software secure is a fundamental requirement. Second, to create tests that exploit
software, a tester must think like an attacker. Third, to perform testing effectively,
testers need to know the different tools and techniques available for white box testing.
The three requirements do not work in isolation, but together.
Knowing the internal working i.e., to test if all internal operations are performed
according to program structures and data structures. To test if all internals components
have been adequately exercised.
32
-
7/28/2019 Tetris Development for Android
33/53
Levels of Testing:
In order to uncover the errors present in different phases we have the concept of levels
of testing. The basic levels of testing are
Client needs Acceptance Testing
Requirements System Testing
Design Integration Testing
Code Unit Testing
Software Testing Strategies:
A strategy for software testing will begin in the following order.
Unit Testing
Integration Testing
Validation Testing
System Testing
Unit Testing:
It concentrates on each unit of the software as implemented in source code and is a
white box oriented. Using the component level design description as a guide, important
control paths are tested to uncover errors with in the boundary of the module. In the unit
testing, the steps can be conducted in parallel for multiple components. In my project I
tested all the modules individually related to main function codes and attacks also.
Integration Testing:
Here focus is on design and construction of the software architecture. Integration
Testing is a systematic technique for constructing the program structure while at the
same time conducting tests to uncover errors associated with interfacing. The objective
33
-
7/28/2019 Tetris Development for Android
34/53
is to take unit tested components and build a program structure that has been dictated by
design. The goal here is to see if modules can be integrated properly, the emphasis
being on testing interfaces between modules.
This testing activity can be considered as testing the design and hence the emphasis on
testing module interactions. In this project the main system is formed by integrating all
the modules. When integrating all the modules I have checked whether the integration
effects working of any of the services by giving different combinations of inputs with
which the two services run perfectly before integration.
Validation Testing:
In this, requirements established as part of software requirement analysis are validated
against the software that has been constructed i.e., validation succeeds when software
functions in a manner that can reasonably expected by the customer.
System Testing:
System testing of software or hardware is testing conducted on a complete, integrated
system to evaluate the system's compliance with its specified requirements. System
testing falls within the scope of black box testing, and as such, should require noknowledge of the inner design of the code or logic.
Here the entire software system is tested. The reference document for this process is the
requirements document, and the goal is to see if software meets its requirements.
9.1 TEST CASES:
A test case in software engineering is a set of conditions or variables under which a
tester will determine whether an application or software system meets specifications.
The mechanism for determining whether a software program or system has passed or
failed such a test is known as a test oracle. In some settings an oracle could be a
requirement or use case. It may take many test cases to determine that a software
program or system is functioning correctly. Test cases are often referred to as test
34
-
7/28/2019 Tetris Development for Android
35/53
scripts, particularly when written. Written test cases are usually collected into test
suites.
What are positive and negative test cases?
A positive test case is when the test is designed to return what is
expected according to the requirement.
Negative test case is when the test is designed to determine the
response of the product outside of what is defined.
35
http://en.wikipedia.org/wiki/Requirementshttp://en.wikipedia.org/wiki/Black_box_testinghttp://en.wikipedia.org/wiki/Software_engineeringhttp://en.wikipedia.org/wiki/Software_applicationhttp://en.wikipedia.org/wiki/Software_systemhttp://en.wikipedia.org/wiki/Oracle_(testing)http://en.wikipedia.org/wiki/Requirementhttp://en.wikipedia.org/wiki/Use_casehttp://en.wikipedia.org/wiki/Test_script -
7/28/2019 Tetris Development for Android
36/53
10. OUTPUT SCREENS
36
http://en.wikipedia.org/wiki/Test_scripthttp://en.wikipedia.org/wiki/Test_suitehttp://en.wikipedia.org/wiki/Test_suite -
7/28/2019 Tetris Development for Android
37/53
37
-
7/28/2019 Tetris Development for Android
38/53
38
-
7/28/2019 Tetris Development for Android
39/53
39
-
7/28/2019 Tetris Development for Android
40/53
40
-
7/28/2019 Tetris Development for Android
41/53
41
-
7/28/2019 Tetris Development for Android
42/53
42
-
7/28/2019 Tetris Development for Android
43/53
43
-
7/28/2019 Tetris Development for Android
44/53
44
-
7/28/2019 Tetris Development for Android
45/53
45
-
7/28/2019 Tetris Development for Android
46/53
11. FUTURE SCOPE
Currently the application only supports the Tetrominoes to drop from top to bottom, the
application can also be extended to move Tetrominoes from bottom to top, the project
can also be extended to have different levels, based on the level we can make
Tetrominoes to drop at increasing speeds.
46
-
7/28/2019 Tetris Development for Android
47/53
12. CONCLUSION
Finally we concluded that the QTetris is a game application developed on a new mobile
platform Android, and for the users who loves playing games, it also helps users to get
relaxed from heavy work.
47
-
7/28/2019 Tetris Development for Android
48/53
13. BIBLIOGRAPHY
http://google.com/
http://android-developers.blogspot.com/
http://androidcommunity.com/
http://www.android.com/
htt http://en.wikipedia.org/wiki/Tetrisp://code.google.com/android/
14. APPENDIX
The following terms are used in these documents.
48
-
7/28/2019 Tetris Development for Android
49/53
.apk extension
The extension for an Android package file, which typically contains all of the files
related to a single Android application. The file itself is a compressed collection of an
AndroidManifest.xml file, application code (.dex files), resource files, and other files. A
project is compiled into a single .apk file.
.dex extension
Android programs are compiled into .dex (Dalvik Executable) files, which are in turn
zipped into a single .apk file on the device. .dex files can be created by automatically
translating compiled applications written in the Java programming language.
Action
A description of something that an Intent sender wants done. An action is a string value
assigned to Intent. Action strings can be defined by Android or by a third-party
developer. For example, android.intent.action.VIEW for a Web URL, or
com.example.rumbler.SHAKE_PHONE for a custom application to vibrate the phone.
Activity
A single screen in an application, with supporting Java code, derived from the Activity
class.
AdbAndroid Debug Bridge, a command-line debugging application shipped with the SDK.
It provides tools to browse the device, copy tools on the device, and forward ports for
debugging. See Using adb for more information.
49
http://google.com/http://android-developers.blogspot.com/http://androidcommunity.com/http://www.android.com/http://code.google.com/android/ -
7/28/2019 Tetris Development for Android
50/53
Application
A collection of one or more activities, services, listeners, and intent receivers. An
application has a single manifest, and is compiled into a single .apk file on the device.
Content Provider
A class built on ContentProviderthat handles content query strings of a specific format
to return data in a specific format. See Reading and writing data to a content provider
for information on using content providers.
Content URI
A type of URI. See the URI entry.
Dalvik
The name of Android's virtual machine. The Dalvik VM is an interpreter-only virtual
machine that executes files in the Dalvik Executable (.dex) format, a format that is
optimized for efficient storage and memory-mappable execution. The virtual machine is
register-based, and it can run classes compiled by a Java language compiler that have
been transformed into its native format using the included "dx" tool. The VM runs on
top of Posix-compliant operating systems, which it relies on for underlying functionality
(such as threading and low level memory management). The Dalvik core class library is
intended to provide a familiar development base for those used to programming with
Java Standard Edition, but it is geared specifically to the needs of a small mobile
device.
DDMSDalvik Debug Monitor Service, a GUI debugging application shipped with the SDK. It
provides screen capture, log dump, and process examination capabilities. See Using the
Dalvik Debug Monitor Serverto learn more about this program.
50
-
7/28/2019 Tetris Development for Android
51/53
Drawable
A compiled visual resource that can be used as a background, title, or other part of the
screen. It is compiled into an android.graphics.drawable subclass.
Intent
A class (Intent) that contains several fields describing what a caller would like to do.
The caller sends this intent to Android's intent resolver, which looks through the intent
filters of all applications to find the activity most suited to handle this intent. Intent
fields include the desired action, a category, a data string, the MIME type of the data, a
handling class, and other restrictions.
Intent Filter
Activities and intent receivers include one or more filters in their manifest to describe
what kinds of intents or messages they can handle or want to receive. An intent filter
lists a set of requirements, such as data type, action requested, and URI format, that the
Intent or message must fulfill. For activities, Android searches for the activity with the
most closely matching valid match between the Intent and the activity filter. For
messages, Android will forward a message to all receivers with matching intent filters.
Intent Receiver
An application class that listens for messages broadcast by calling
Context.sendBroadcast (). For example code, see Listening for and broadcasting global
messages.
Layout resource
An XML file that describes the layout of an Activity screen.
Manifest
51
-
7/28/2019 Tetris Development for Android
52/53
An XML file associated with each Application that describes the various activies, intent
filters, services, and other items that it exposes. See AndroidManifest.xml File Details.
. URIs
Android uses URI strings both for requesting data (e.g., a list of contacts) and for
requesting actions (e.g., opening a Web page in a browser). Both are valid URI strings,
but have different values. All requests for data must start with the string "content://".
Action strings are valid URIs that can be handled appropriately by applications on the
device; for example, a URI starting with "http://" will be handled by the browser.
52
-
7/28/2019 Tetris Development for Android
53/53
top related