divide and qonquer

34
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 )

Transcript of divide and qonquer

Page 1: divide and qonquer

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 )

Page 2: divide and qonquer

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

Page 3: divide and qonquer

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

Page 4: divide and qonquer

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

Page 5: divide and qonquer

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

Page 6: divide and qonquer

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]

Page 7: divide and qonquer

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

Page 8: divide and qonquer

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

Page 9: divide and qonquer

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.

Page 10: divide and qonquer

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

Page 11: divide and qonquer

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.

Page 12: divide and qonquer

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

Page 13: divide and qonquer

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

Page 14: divide and qonquer

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.

Page 15: divide and qonquer

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,

Page 16: divide and qonquer

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.

Page 17: divide and qonquer

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.

Page 18: divide and qonquer

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

Page 19: divide and qonquer

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.

Page 20: divide and qonquer

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.

Page 21: divide and qonquer

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

Page 22: divide and qonquer

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

Page 23: divide and qonquer

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.

Page 24: divide and qonquer

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

Page 25: divide and qonquer

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.

Page 26: divide and qonquer

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.

Page 27: divide and qonquer

27

Android working:-

Page 28: divide and qonquer

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.

Page 29: divide and qonquer

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.

Page 30: divide and qonquer

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

Page 31: divide and qonquer

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

Page 32: divide and qonquer

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

Page 33: divide and qonquer

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.

Page 34: divide and qonquer

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.