fundamentals of drawing and isometric and orthographic projection
divide and qonquer
1. 1
JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY,NOIDA
MAJOR PROJECT
REPORT
(DIVIDE AND CONQUER)
(ANDROID BASED)
PROJECT MENTOR: SUBMITTED BY:
Mr. ANKUR KULHARI Arvind Singh
(9910103535)
(Batch - F-4 )
2. 2
INDEX
S No. Table Contents Page Number
1) DECLARATION 3
2) CERTIFICATE 4
3) ACKNOWLEDGEMENT 5
4) INTRODUCTION 6
5) PROBLEM STATEMENT 7
6) PROPOSED SOLUTION AND ALGORITHM 7 to 13
7) Research Papers Annotations 14 to 24
a) A Framework for Multilingual Applications on the Android
Platform
14 to 16
b) Android Technology Research Paper 17 to 19
c) Android vs. Symbian OS vs. Windows Mobile 20 to 23
8) RESEARCH PAPER REFERENCES 24
9) FIELD SURVEY 25
10) SYSTEM REQUIREMENT SPECIFICATION 26 to 34
11) TOOLS AND TECHNOLOGY 35 to 36
12) RISK ANALYSIS AND MITIGATION PLAN 37
13) IMPLEMENTATION 38
14) TEST PLAN 39 to 40
15) CONCLUSION 41
16) FUTURE SCOPE 41
3. 3
DECLARATION
I hereby declare that this submission is my own work and that, to the best of my
knowledge and belief, it contains no material previously published or written by
another person nor material which has been accepted for the award of any other
degree or diploma of the university or other institute of higher learning, except
where due acknowledgment has been made in the text.
Place: Delhi Signature:
Date: 30/05/2014 Name: Arvind Singh
Enrollment No: 9910103535
4. 4
CERTIFICATE
This is to certify that the work titled Divide and Conquer submitted by Arvind
Singh in partial fulfillment for the award of degree of B. Tech. from Jaypee
Institute of Information Technology University, Noida has been carried out under
my supervision. This work has not been submitted partially or wholly to any other
University or Institute for the award of this or any other degree or diploma.
Signature of Supervisor:
Name of Supervisor: Mr. Ankur Kulhari
Date: 30/05/2014
5. 5
ACKNOWLEDGEMENT
My most humble and sincere thanks to:
My mentor, Mr. Ankur Kulhari for helping me and guiding me throughout the
project.
My teachers for guiding me and giving me new ideas on how to make this a
successful project. My parents for supporting me at every point.
Signature of the Student:
Name of Student: Arvind Singh
Enrollment Number: 9910103535
Date: 30/05/2014
6. 6
INTRODUCTION
Divide and Conquer is an android based Application which runs on the android Platform. A good game
that deals with your logical skills.
This is a good pass time. This game helps to enhance good skills and the game is to divide the area for
the ball.
Domain and Platform:
Domain: Application Development
Platform: Java (Android), Swing which is easy to work as compared to Symbian Operating System or
Windows [3]
7. 7
Literature Survey
PROBLEM STATEMENT:-
As the android trend in market increases the games and apps have increased. Here we manage
to design an interesting game for a good pass time and also to increase your logical skills.
Assumptions of the proposed solution:
1. The application is running on a device with either of the two resolutions sets:
a) HDPI
b) MDPI
2. The application is running on device with a micro-controller based on ARM.
3. The device is running with a minimum android build of Android 2.2.
To create alternative bitmap drawables for different densities, you should follow the 3:4:6:8 scaling ratio
between the four generalized densities. For example, if you have a bitmap drawable that's 48x48 pixels
for medium-density screen (the size for a launcher icon), all the different sizes should be:
36x36 for low-density
48x48 for medium-density
72x72 for high-density
96x96 for extra high-density
To help you target some of your designs for different types of devices, here are some numbers for
typical screen widths:
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
8. 8
Various screen configurations available from emulator skins in the Android SDK
(indicated in bold) and other representative resolutions.
Low density (120),
ldpi
Medium density
(160), mdpi
High density
(240), hdpi
Extra high density
(320), xhdpi
Small screen QVGA (240x320) 480x640
Normal
screen
WQVGA400
(240x400)
WQVGA432
(240x432)
HVGA (320x480)
WVGA800
(480x800)
WVGA854
(480x854)
600x1024
640x960
Large screen
WVGA800**
(480x800)
WVGA854**
(480x854)
WVGA800*
(480x800)
WVGA854*
(480x854)
600x1024
Extra Large
screen
1024x600
WXGA (1280x800)†
1024x768
1280x768
1536x1152
1920x1152
1920x1200
2048x1536
2560x1536
2560x1600
* To emulate this configuration, specify a custom density of 160 when creating an AVD that uses a WVGA800 or
WVGA854 skin.
** To emulate this configuration, specify a custom density of 120 when creating an AVD that uses a WVGA800 or
WVGA854 skin.
† This skin is available with the Android 3.0 platform
Android runs on a variety of devices that offer different screen sizes and densities. For applications, the
Android system provides a consistent development environment across devices and handles most of the
work to adjust each application's user interface to the screen on which it is displayed. At the same time,
the system provides APIs that allow you to control your application's UI for specific screen sizes and
densities, in order to optimize your UI design for different screen configurations. For example, you might
want a UI for tablets that's different from the UI for handsets.
Although the system performs scaling and resizing to make your application work on different screens,
you should make the effort to optimize your application for different screen sizes and densities. In doing
9. 9
so, you maximize the user experience for all devices and your users believe that your application was
actually designed for their devices—rather than simply stretched to fit the screen on their devices.
By following the practices described in this document, you can create an application that displays
properly and provides an optimized user experience on all supported screen configurations, using a
single .apk file.
Solution Approach and proposed solution:
1. For storing data we will use SQL Lite database.
2. For development purpose we will use eclipse.
3. We will use the 'Ice-Cream Sandwich' (Android 4.0) iteration as our reference platform.
4. For icon and UI designing we are working on Adobe Photoshop.
5. We are also using some open-source icon sets.
Scope and Limitations of the Solution:
1. Will not work well on devices with 720 Pixilated (720p) screens size.
2. Students and service employees will especially benefit from this application. Through this they can
manage and assess their expenditures and liabilities
3.We hav used SQLite database in our Project to store maximum of data we want.
10. 10
Terms and concepts
1)Screen size
Actual physical size, measured as the screen's diagonal.
For simplicity, Android groups all actual screen sizes into four generalized sizes: small, normal,
large, and extra large.
2)Screen density
The quantity of pixels within a physical area of the screen; usually referred to as dpi (dots per
inch). For example, a "low" density screen has fewer pixels within a given physical area,
compared to a "normal" or "high" density screen.
For simplicity, Android groups all actual screen densities into four generalized densities: low,
medium, high, and extra high.
3)Orientation
The orientation of the screen from the user's point of view. This is either landscape or portrait,
meaning that the screen's aspect ratio is either wide or tall, respectively. Be aware that not only
do different devices operate in different orientations by default, but the orientation can change
at runtime when the user rotates the device.
4)Resolution
The total number of physical pixels on a screen. When adding support for multiple screens,
applications do not work directly with resolution; applications should be concerned only with
screen size and density, as specified by the generalized size and density groups.
5)Density-independent pixel (dp)
A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or
position in a density-independent way.
The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is
the baseline density assumed by the system for a "medium" density screen. At runtime, the
system transparently handles any scaling of the dp units, as necessary, based on the actual
density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi /
160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp
11. 11
units when defining your application's UI, to ensure proper display of your UI on screens with
different densities.
Use wrap_content, fill_parent, or the dp unit for layout dimensions in Coding:-
When defining the android:layout_width and android:layout_height for views in an XML layout file,
using "wrap_content", "fill_parent" or dp units guarantees that the view is given an appropriate size on
the current device screen.
For instance, a view with a layout_width="100dp" measures 100 pixels wide on medium-density screen
and the system scales it up to 150 pixels wide on high-density screen, so that the view occupies
approximately the same physical space on the screen.
SQLite database:
Unlike client–server database management systems, the SQLite engine has no standalone processes
with which the application program communicates. Instead, the SQLite library is linked in and thus
becomes an integral part of the application program. (In this, SQLite follows the precedent of Informix
SE of c. 1984) The library can also be called dynamically. The application program uses SQLite's
functionality through simple function calls, which reduce latency in database access: function calls
within a single process are more efficient than inter-process communication. SQLite stores the entire
database (definitions, tables, indices, and the data itself) as a single cross-platform file on a host
machine. It implements this simple design by locking the entire database file during writing. SQLite read
operations can be multitasked, though writes can only be performed sequentially.
12. 12
PAPERS
PAPER-I
A Framework for Multilingual Applications on the Android Platform
Gregoire D ´ etrez, Ramona Enache ´
Department of Computer Science and Engineering
Chalmers University of Technology and University of Gothenburg
Abstract
In this paper we describe a Java library allowing applications to use advanced linguistic knowledge on
Android devices. We implemented parts of the Grammatical Framework runtime system and optimized
it to run on Android handheld devices. This allows building mobile applications on top of GF grammars.
Introduction
This paper describes our work in implementing the basic GF runtime system in Java and using it for
building applications on the Android platform.GF (Grammatical Framework) is a type-theoretical
grammar formalism and a functional programming language. It is mainly used in multilingual grammar
applications for formalizing the syntax of natural languages. Compared to many other approaches to
computational linguistics, which are based on statistical methods and machine learning, GF treats
natural languages from a programming languages perspective. The key idea of GF is to have an abstract
syntax defining the main categories and rules that connect them, which is common to all grammars and
many concrete syntaxes that implement the categories and relations from the abstract syntax, following
specific characteristics of the given language. The abstract syntax describes the grammar conceptually
and provides a framework for the actual computational grammars, which are the concrete syntax
modules. It also limits the coverage of the grammar to the constructions that could be built using the
13. 13
elements of the abstract syntax. From this point of view, GF is similar to other grammar formalisms like
HPSG and LFG. The main operations that can be performed on a GF grammar are parsing from natural
language to the abstract syntax tree representing the underlying concept and linearization that
generates natural language constructions in a certain language from an abstract syntax tree. By
combining this two operations one obtains a translation between any two concrete grammars. This
approach has the advantage that the translation will always be syntactically correct, due to the fact that
the linearization in a certain grammar, uses the implementation of the concrete syntax module. In
addition to this, GF provides a portable runtime format, PGF (Angelov et al., 2010) which can be used to
embed the libraries further on in applications written in programming languages that provide a suitable
interpreter. In this way, other projects can use GF modules, as normal software libraries for the
development of other projects.PGF interpreters exists for Haskell and JavaScript at the moment, and our
work resulted in the Java version of the interpreter.
Motivations
There are many motivations to have linguistic application son handled devices. One can think of
automatic translation, tools for languages learner or for travelers and help for impaired people. Many
existing services in those categories requires a live connection to the internet, which is not always
available, especially when one is traveling abroad. One of the advantage of GF is its extensive and
growing resource library, with formal grammar and basic vocabulary for over 16 languages (Ranta,
2009). The library provides the linguistic background for developing domain- specific grammars and
other language applications. And finally, we choose the Android platform to experiment because of its
openness and its growing adoption.
Related work
Aarne Ranta implemented an multilingual translator for number working on mobile devices. It was
implemented in JavaScript and it ran as a webpage in the device browser.The grammatical framework
runtime has once been implemented in Java by Bjorn Bringert (Bringert, 2005) ¨but this implementation
was not maintained anymore and didn’t follow recent changes in the grammar format and the runtime
system.
Implementation
The current runtime system being written in Haskell, and since the algorithms for parsing and
linearization are specifics to GF, we couldn’t use pre-existing libraries and implemented it from scratch.
During the beginning of this project, we concentrated on implementing and optimizing the parser and
linearizer. The main reason is that the limited computing power of the targeted devices would make
difficult to implement the full GF runtime system.
Those component are enough to build interesting application using natural language. Moreover, for
complex grammars, we quickly reach the limits of the devices computing power.The parsing algorithm is
described in (Angelov, 2009)and the linearization algorithm in (Angelov and Ranta,2010).375.
Application. We developed a simple phrasebook application to demonstrate a possible use of the library
(http://www.grammaticalframework.org/android/). The application allows the user to enter simple
sentences in a controlled language and to translate them in a different language. This application is
based on the MOLTO phrasebook project (http://www.molto-project.eu/demo/phrasebook). This is a
relevant use case as it has a clear potential for usage because of the high quality
14. 14
of the translations and the variety of languages for which the grammar was deviced. It is also worth
mentioning that the reasonable coverage of the grammar makes the phrasebook applicable in many
day-to-day situations for tourists traveling abroard.
To allow easy and fast input while restraining the user to the controlled language, we used an interface
similar to the fridge magnets application (http://tournesol.cs.chalmers.se:41296/fridge). This
demonstrate the utility of predictive parsing on the cell phone. This feature is a great aid for users of a
controlled language, since they can always be aware of the coverage, and the possibilities that the
grammar offers. (See screenshot in figure 1.)What is more is that the Android platform provides services
for high-quality voice synthesis for a number of languages, which can be plugged to the grammar
applications. This gives our approach a great advantage over the traditional phrasebooks.
Future work
Though we already worked hard on improving the initial performances and to make the user experience
acceptable, gain in this domain are still possible. A next step might also be to implement some parts of
the logical framework.
15. 15
PAPER-II
Android Technology Research Paper
By Christoph Alme, head of Anti-Malware R&D at HTC Inc.
INTRODUCTION:
Android technology is a type of OSS (open source software), which is a type of software readily available
with a source code that isn’t held exclusive by copyright laws. Android is made specially for mobile
devices and includes: software that provides common services for computer applications, middleware,
which lets multiple applications run at the same time or connect, and many other key applications like
social networking, games, and business modules. Android is modeled after Linux kernel, the first
operating system of free and open-source software. However, Android is moving to increase the
number of people with web access via mobile devices (cell phones). In August of 2005, Google
purchased the original software developer of Android. Android technology includes the hardware
devices, operating systems, and computer-programming languages used by the Android phone. Android
developers write in java language, which is why the majority of the open-source software stack consists
of Java applications on a Java-based framework that is object-oriented. Some of the most popular
android products are HTC-EVO 4G and Droid X, 2, and Pro smart phones as well as one of it’s latest
developments, the Motorola XOOM, an Android tablet. Android continues to progress in its production
of newer software, smart phones, etc. To date, there are over two hundred thousand applications
offered for Android. Lastly, Android technology has improved mobile technology by forming the Open
Handset Alliance, a group of handset manufacturers, service providers, and chip producers whose goal is
to form the ecosystem for Android operating systems.
POTENTIAL BENEFITS:
Android technology hosts a number of potential benefits to possible consumers. Android is powered by
open-source software stack, which means it is free to obtain and can be accessed from the Internet. In
fact, Google has out sourced codes of Android technology on the web to be trialed. It safe to say that
Google sees an importance in the customers familiarizing themselves with the product before
purchasing say a smart phone, tablet, etc. that comes equip with Android technology. In saying this, it
would be incorrect to say that Android manufacturers don’t believe in customer service. Another,
benefit of Android is its push to increase the number of people with mobile web access. A benefit of
mobile access to the web relieves the hassle of trying to find a desktop or waiting until one gets home to
check emails, Google groups, social networking sites that hold important information, etc. Android
Technology is provided in a wide array of products, such as the Motorola Droid X. More specifically,
benefits of Droid X are perks like: its 4.3 inch vivid display allowing for pocket-sized home theater
quality, the ability to control your home’s Front point security system, an advanced 8 mega-pixel camera
with dual flash that captures pictures and records HD videos, and an HDMI output that is capable of
connecting to your home HD television to view your HD videos. Ultimately, each product carrying
Android technology has it’s own little perks whether that’s software, elongated battery life, etc. The
potential benefits of this kind of technology outweigh any potential pitfalls. According to Marguerite
Reardon in her CNET news article Living with Technology: Google Android and the Wireless Future,
16. 16
“much of the software’s success will be determined by what others in the ecosystem choose to do with
it” (Reardon 1). This means benefits can be endless, because with android technology you get what you
put in, as cliché as that sounds, the more applications you add to your device the more sufficient you
and your mobile device will be.
PERSPECTIVES:
Like all other advancements in technology, Android technology is a modification of what came before it
(Linux kernel). Due to nature of it being a new and exciting type of technology, people have begun to
voice perspective on legal, social, ethical, and security conditions of products including the
software. First, to clear up any confusion Google only has rights to the software or operating system; it
is not there job to supply the build or make devices. Rights to manufacture phones/smart phones and
other devices using Android operating systems powered by Google are companies like LG, HTC,
Samsung, and Motorola. Also, service providers like Verizon and T-Mobile only provide cell phone
service; they don’t manufacture the phones or write the software that is put into them. This is
something that catches people off guard when they see these devices being sold at local Verizon and T-
Mobile stores. The main determinant of social perspectives is feedback whether that’s in the form of a
review or letter. Mobile technology specialist Ian Fogg had this to say, “Android offers some key
advantages. Handset manufacturers can get a leg up, a quicker start, because they're using Android as a
base, they can still differentiate with software, and they get the advantage of having compatibility with
all the applications out in the Android marketplace." The idea of taking something like a cellular phone
and inserting Android technology exponential improves the user’s capability to interact with others
based on a number of different applications and simply by mobilizing web access. Opinions of Ethical
standards in terms of Android technology go hand in hand with opinions of its security policies. First, in
order to activate the software you must purchase a data plan, which is billed monthly in addition to the
total cost of the device itself. This rules out the obsoleteness of the software, because although it is
freely obtainable it is not in free and workable condition without a data plan. This is a feature of
Android technology that society rewards; being able to main exclusivity underlines the importance,
safety, and integrity of the company. Also, in terms of perspectives on ethics and security, phones have
in put GPS devices that signal where the phone is, if it is ever to lost or stolen. Lastly, ethics are built on
societal needs and coming through with them. One of the many pre-installed application that comes
with an Android device is an application called “places”. This application allows people to locate
necessary “places”: gas stations, ATM’s, and dining facilities in their vicinity with just the touch of a
button.
17. 17
OBSTACLES:
One of the biggest obstacles that caused a minor setback for Google’s Android during the beginning of
its expansion was its absence of Bluetooth API (application programming interface). Ken Dulaney, a
Gartner analyst, pointed out that although there was no Bluetooth API, “Android’s partial support for
headsets would alleviate some concerns“(Ruffolo 1). However, it didn’t take away all potential
problems. Dulaney continued by saying, “one of the major side effects of the missing Bluetooth API –
and of the open source platform in general – is that the Android-based handhelds will suffer from
serious fragmentation across the various vendors using the platform, complicating the development
process” (Ruffolo 1). Yet, these weren’t obstacles that couldn’t have been overcome. The author talks
about how even Apple had problems with the iPhone in its manufacturing stages; all that was needed
was time for developers to grow and their product to further mature.
CONCLUSION:
Android technology is a open-source software that has created numerous possibilities with its many
potential benefits such as: applications, mobile web access, and growing popularity/dependability. It
has received positive feedback from the public in terms of applications and software that apply to legal,
social, ethical, and security perspectives. Lastly, although it is apparent that minor set backs have
occurred in the developing of products with Android technology, time will allow them to grow and
improve from stages of experimentation.
18. 18
PAPER-III
Android vs. Symbian OS vs. Windows Mobile
(Dr.A.K Anthony from University of Texas,Austin)
This thesis deals with the comparison between Android and the operating systems Symbian
OS and Windows Mobile. Before comparing these operating systems, some basic terminology must be
established. This includes the following questions:
1) What is an operating system?
An operating system is an organizational unit within a computer system. It is the interface
between applications and hardware. The primary function is the administration of the
available operating resources.
2) What is a mobile system?
A mobile system is a computer system which isn’t linked to a certain place. It is possible
to move it or carry it around like e.g. a cell phone, a handheld or a special computer
system in a car. Although there are many similarities between a stationary and a mobile
operating system, there are also clear distinctions concerning mobility. An example for an
application where a normal operating system is not able to be used is ABS control in a
car. An operating system like Windows XP which is not stable enough to guarantee the
running of the ABS system over a long time, cannot be used. This example points out
which attributes are important for a mobile system of any device: The system must be
stable and fail-proof.
Classification of operating systems for mobile devices
Mobile devices have changed their profile dramatically in the last years. The advanced mobile
phones of today integrate fully-featured personal digital assistant (PDA) capabilities with those of a
traditional mobile phone. This chapter examines the critical factors for operating systems in this
market which differentiate them from each other.
Characteristics of the mobile phone market
The classification of operating systems has to consider the market in which they are used. The
market for advanced mobile devices is hard to compare to other markets like the PC market where
also operating systems are used. User needs and requirements are different.
Symbian, manufacturer of the mobile operating system Symbian OS, believes that the mobile phone
market has five key characteristics that make it unique, and result in the need for a specifically
designed operating system:
1. Mobility: mobile phones are both small and mobile
2. Universal: mobile phones are ubiquitous – they target a mass market of consumer,
enterprise and professional users
3. Connection: mobile phones are occasionally connected – they can be used when
19. 19
connected to the wireless phone network, locally to other devices, or on their own
4. Innovation: manufacturers need to differentiate their products in order to innovate and
compete in a fast-evolving market.
5. Open: the platform has to be open to enable independent technology and software
vendors to develop third-party applications, technologies and services
These five characteristics of the mobile phone market underline the difference to other markets
where operating systems are used. To be successful in this market, a product must address these
characteristics without limiting functionalities.
Classification criteria
Try to classify operating systems for the purpose of comparison. Technical aspects of these systems
have to be considered, also user needs are very important. Because user needs differ the
identification of an ideal operating system is not possible. Only a classification or an optimal
solution relating to a certain group of individuals is possible.
In the following we will have a look at classification criteria which are important to compare
operating systems. For the purpose of clarity I will divide the criteria in several different groups.
Looking at the mobile phone market characteristics from chapter 3.1.1 we can deduce the following
criteria which are important for a successful operating system
Main criteria
1) Portability
Portability is the characteristic of being transportable from one location to another. As to
Operating system for advanced mobile devices it means the possibility to use the operating
System on every cell phone, no matter which brand or type.
2) Reliability
Reliability is the ability of a system to perform its required functions under stated
Conditions for a specific period of time.
3) Connectivity
Connectivity is the unbiased transport of packets between two end points. As to operating
Systems for advanced mobile devices it means the possibility to connect supported by the
operating system like wireless, Bluetooth or infrared.
4) Product diversity
Product diversity is the difference, characteristic or feature which makes the product
special. As to operating systems for advanced mobile devices it constitutes the key factor
of the system which makes the product unique. The marketing strategy of the producer
plays also a major role with regard to this criterion.
20. 20
Android vs. Symbian OS vs. Windows Mobile 20
1) Open System
An Open System is a collection of interacting software, hardware and components with
well-defined, publicly available interfaces maintained by a consensus process. As to
operating systems for advanced mobile devices it means the free usage and expandability
of the system which allows to change it in every possible way.
The above are the main criteria I will address. They are most important for a classification of an
operating system in my opinion. They will be explained and discussed in detail. But before that I will
address another group of criteria. I would like to expand the main group with a few criteria which I think
are also important for a classification of an operating system.
2) Kernel size
The kernel of the operating system is the central component which is responsible for
memory management, process and task management, and disk management. The size of
the kernel is very important to operating systems for advanced mobile devices as it is
loaded first and then remains in the main memory of the operating system. This
Influences the capacity.
3) Standards
A standard is a commonly approved or accepted definition or format. An operating
systems for advanced mobile devices needs standards concerning programming language,
Android vs. Symbian OS vs. Windows Mobile 21 connectivity, data exchange and networking. This is also
an important factor for an open system.
4) Security
Security is the attribute of a system to be safe against attacks or other interference. As to
operating systems for advanced mobile devices it means the features of the operating
system in order to make it safe in any respect.
5) Special features
Special features of operating systems are features which make the difference between
them. These additional criteria combined with the criteria deduced from the characteristics listed in
subsection 3.1.1 are adequate in my opinion to build a foundation for a detailed and significant
classification of operating systems for advanced mobile phones which can be used by everyone.
Further criteria
There are many other criteria which can be consulted to classify an operating system. This criteriaare
user-dependent, which means that every user assesses this criteria in a different way.
Because of that I will address some other groups of criteria that can be consulted for the
classification of the operating systems. These criteria will not be explained in detail because they are
either self-explanatory or user dependent. A table at the end of this subsction displays the
criteria.
21. 21
The further criteria are:
Basic criteria
1) Public domain or private domain.
2) Manufacturer-specific or manufacturer independent.
3) User driven or manufacturer driven.
4) Functionality is disclosed and well documented or functionality is closed and badly
documented.
5) Configuration possibility is given or configuration possibility is less given.
6) Market alignment
Technical criteria
1) Power management
2) Multitasking
3) Configuration possibility
4) Footprint
Usability criteria
1) Acts on the assumption of experienced user or acts on the assumption of inexperienced
user
2) Good usability or bad usability
3) Applications
4) Driver configuration
User Interface criteria
1) Division between operating system and user interface
2) Change of user interfaces
22. 22
RESEARCH PAPER REFERENCES
[1] Gregoire D ´ etrez, Ramona Enache ´Department of Computer Science and Engineering Chalmers
University of Technology and University of Gothenburg , “A Framework for Multilingual
Applications on the Android Platform”.
[2] Christoph Alme Head of Anti-Malware R&D at HTC Inc, “Android Technology Research Paper”.
[3] By Dr.A.K Anthony University of Texas, Austin , “ Android vs. Symbian OS vs. Windows Mobile”.
23. 23
Field Survey :-
For the purpose of our project, we did some initial field survey where we interacted with android
programmer in Delhi who are working in the same domain and had undertaken related projects. We has
also interacted with some senior of my college in order to gain more perspective and be more intuitive
regarding the necessity of such project and related applications.
The Android Developer Tools (ADT) plugin for Eclipse provides a professional-grade development
environment for building Android apps.It's a full Java IDE with advanced features to help you build,
test,debug,and package your Android apps.Free,open-source, and runs on most major OS platforms.
Existing Tool Survey :-
As per our initial and exhaustive research, we were unable to find any application or software that
provided developers with speech recognition framework (that user speech classification and feature
selection) and thus allowed them to develop engaging and intuitive applications. There had been no
such commercial available tools however, certain tools have been developed by researchers for their
respective departments and research groups. This field is still in active development and is at the heart
of significant research activity in recent times.
Integrated Summary of Studied Literature
Optimization can occur in different stages of the development cycle and in different areas. For example,
the target architecture can be upgraded, algorithms could be modified, compilers’ optimization power
can be turned on, and coding practices might be subject to amendment. Upgrading the mobile
architecture is not practical for the general developer, as it would generally require significant
modifications of internal chip architectures or device structures. Algorithms on the other hand are
dependent on the context and field they are being used in and are therefore often application
dependent.
Android device just has 1 core and you never need to care about multithreading. It is just WRONG. You
still need to do a lot of multithreading to reach a better level of performance.
The main thread will do the user touch event handler and view rendering. Then, if you use the main
thread for some calculation that takes a lot of time then your UI just become frozen or not smooth when
you scroll.
Mobile platforms have the resource-constrained characteristic, demanding to optimize the program to
make up for the relative lack of resources. In this paper, using java as the development language, mainly
optimize the code side and display side for the android platform applications. Experimental results
show that the technique improves efficiency and user experience degree.
24. 24
SOFTWARE REQUIREMENTS
SPECIFICATION
ANDROID BASED DIVIDE AND CONQUER GAME
1.0 Introduction
The basic goal of this document is to specify the software requirements in our project
1.1 Purpose of this document
The purpose of this SRS document is to provide a detailed overview of our software product,its
parameters and goals.This document describes the project’s target audience and its user
interface,hardware and software requirements.It defines how our client,team and audience see the
product and its functionalities.
1.2 Scope of the development project
With the tough economic situation of today, we could use any help we can get in order to stay on top of
our financial situation and to monitor our budgets effectively. Perhaps you could use some help in
keeping track of your financial health. Android Authority has done a search for you and we now bring
you the best apps for personal finance management
25. 25
2. Specific Requirements
2.1 Functional Requirements
2.1.1 Search Class Catalog
The user will have the ability to search the class catalog for various classes and find information on each
of the classes in the catalog. This will be integrated in with the Class Search Screen.
2.1.2 Add/Drop Classes
The user will have the ability to add or drop the classes that they have found. This feature will be useful
for setting up a new schedule or for changing classes after a semester has already started. The Class
Management screen will provide the use with the screen that will show them their current classes. If the
user wants to add or drop they will then go to the Class Listing Screen which will have the add and drop
option.
2.1.3 Confirm Schedule
The user will have the ability to confirm their schedule through the application. This involves either
clicking confirm because the user has adequate funding to pay for the semester or paying for the
semester then clicking confirm.
2.2 Non-Functional Requirements
2.2.1 Security
Security will be an issue because of the possibility of monetary transactions as well as the various
student data being transferred over a wireless connection. Because of these issues the application will
have various security features to enable to user to know that all action performed on the application will
be safe.
26. 26
2.2.2 Visual Aesthetics
The application will be aesthetically appealing to the user in order to make the application more
desirable.We will test whether or not we have successfully created an aesthetically appealing
application by using team members as test subjects.
2.2.3 Connection Permanency
The application will be availability 24/7 so that the users can asses all features of the application no
matter the time.
2.3 Performance requirements
The product can be web based and run from a web-server.Initial load time depends on the media from
which the product is run.Once the product is loaded,it runs completely within the computer’s memory.
2.4 Quality Attributes
The product is target towards users under the supervision of a mentor.A mentor must be able to use
and understand the product as easily as a user.The product must load quickly and work well on a variety
of computer systems.It must also tolerate a wide variety of input possibilities from a user,such as
incorrect responses or unforeseen keystrokes and selections from a pointing device.
28. 28
TOOLS AND TECHNOLOGY
Why Android SDK? [3]
The Android software development kit (SDK) includes a comprehensive set of development tools. These
include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and
tutorials. Currently supported development platforms include computers running Linux (any modern
desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported
integrated development environment (IDE) is Eclipse 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
(Java Development Kit and Apache Ant are required) to create, build and debug Android applications as
well as control attached Android devices (e.g., triggering a reboot, installing software package(s)
remotely).
Enhancements to Android's SDK go hand in hand with the overall Android platform development. The
SDK also supports older versions of the Android platform in case developers wish to target their
applications at older devices. Development tools are downloadable components, so after one has
downloaded the latest version and platform, older platforms and tools can also be downloaded for
compatibility testing.
Android applications are packaged in .apk format and stored under /data/app folder on the Android OS
(the folder is accessible only to root user for security reasons). APK package contains .dex files (compiled
byte code files called Dalvik executables), resource files, etc.
It also provide us to work on Multilingual function like there are many Android nase application that has
a feature to show text in many language like German, Italian, English etc. [1]
Java standards
Obstacles to development include the fact that Android does not use established Java standards, i.e.
Java SE and ME. This prevents compatibility among Java applications written for those platforms and
those for the Android platform. Android only reuses the Java language syntax and semantics, but does
not provide the full class libraries and APIs bundled with Java SE or ME. However, there are multiple
tools in the market from companies such as Myriad Group and UpOnTek that provide J2ME to Android
conversion services.
29. 29
Eclipse
It is a multi-language software development environment comprising an integrated development
environment (IDE) and an extensible plug-in system. It is written mostly in Java. It can be used to
develop applications in Java and, by means of various plug-ins, other programming languages including
Ada, C, C++, COBOL, Haskell, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala,
Clojure, Groovy, Android and Scheme. It can also be used to develop packages for the software
Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java,
Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.
The initial codebase originated from IBM VisualAge. The Eclipse SDK (which includes the Java
development tools) is meant for Java developers. Users can extend its abilities by installing plug-ins
written for the Eclipse Platform, such as development toolkits for other programming languages, and
can write and contribute their own plug-in modules.
Released under the terms of the Eclipse Public License, Eclipse SDK is free and open source software. It
was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea.
Server platform
Eclipse supports development for Tomcat, GlassFish and many other servers and is often capable of
installing the required server (for development) directly from the IDE. It supports remote debugging,
allowing the user to watch variables and step through the code of an application that is running on the
attached server.
30. 30
Risk Analysis & Risk Mitigation
Risk ID Risk
Description
Risk Area Probabilty
(P)
Impact
(I)
RE
(P*I)
Risk for
M Plan
M Plan C Plan
1) Entering
Expenses
detail fails
due to
Device
problem
Software 1 5 5 Y Display
Message
NA
2) Detail
entered
don’t get
saved in
database
Software 1 5 5 Y Will
display
warning
NA
3) Not able to
display the
Details
Entered
Software 3 5 15 N NA NA
4) Database
may get
Corrupted
Software 1 5 5 Y Check the
Database
again
NA
31. 31
Debugging
Sno. Bug Description Cause of the Bug Removal steps
1. Value Not entered Phone may get
hanged
Restart phone aor
close non using
Apps.
2. Unhandled memory exception Memory needed to
be released for every
variable
Release commands
and destructors for
all variables
3. Not enough memory in heap/stack Need to increase
memory
Change linker
settings
4. Class not found Utility package not
imported
Required packages
were imported
5. Overflow Exceed the size of a
regular 4 byte
integer
Use long long int
instead
6. Eclispse encountered an
unexpected error
eclipse receives data
in unexpected
format
Restarted IDE
TESTING
Type of test Will the test be
performed
Comments/Explanations Software
components
Requirement testing Yes This is to keep a check
whether the application
is developed as per
requirements.
It involved all the
All modules
32. 32
requirements of the
project depending upon
various factors like
resources and time.
Unit Yes To check whether all
units are working as
intended.
The different modules
will include the main as
well as the supporting
individual units
Expenditure/Assests
etc module
Integration Yes To check if integration
of all individual modules
is successful.
Applied to all
modules.
Performance Yes We execute the
performance on the
basis of the execution
time.
Calling module
Stress No As of now it is a single
user application.
Compliance Yes To test if the new
methods give similar
and usable results for
the existing and
supporting softwares.
All modules
Security No No need to check if the
data and functionality is
protected.
Test schedule
Activity Start Date Completion
Date
Time Components
Data collection 10/04/14 12/04/14 2days Completed
Test planning 13/04/14 14/04/14 1days Completed
33. 33
Test case planning 14/04/14 15/04/14 1days Completed
Test Development 16/04/14 17/04/14 1days Completed
Test execution/Evaluation 18/04/14 20/04/14 2days Completed
Summary /Report 21/04/14 23/04/14 2days Completed
Test team details
Role Name Responsibility
Tester Arvind Singh Everything
Limitations of the solution
This project works properly on android 3.0 or later
Testing of project can be done only on registered devices.
Conclusions
This project has been a great learning experience for in the field of mobile application development.
Conceptually, this project was very challenging and taught me many things. This project would help the
architects and interior designers in giving a good presentation of their designs and imagination on paper.
I would like to take the opportunity of thanking my supervisor Mr. Ankur Kulhari for guiding me
throughout.
34. 34
Future Work
We plan on carrying this work forward and extend it to full body application, our future work includes-
Develop a more user Friendly graphical UI for the entire application.
To solve bugs in the existing App.
To enhance the Speed of App and try to add more feature in the App.