You are on page 1of 73

Mobile Inbox Search Tool

Chapter 1

INTRODUCTION
Mobile phones are one of the most ubiquitous electronic devices. Mobile Devices are multifunctional, portable, wireless connectivity, relatively limited resources and have longer power back up. In India there are about 300 million phones available. Each phone will have many features like calling, SMS, Bluetooth, internet, media players etc. Of all the modes of communication SMS happens to be the most widely used because of cost and ease of sending.SMS traffic in India is huge and considering an average user the SMS traffic will be at least 50 messages.

1.1 Overview
There are many types of Mobile Devices and we can classify them based on the market segment and device type. Mobile Devices based on Market Segments include devices for Business use, Personal and consumer use, Multi-purpose. Mobile Devices based on Device types include Smart phones, Table PC, Notebooks and single purpose devices such as mp3 players and navigation system.

1.2 Problem Statement


In todays Android Operating System based mobile phones has limited searching functionalities in messaging inbox. When search is made based on contact number/a persons name the search will results with all the occurrences of input like mobile numbers or names in messages etc.. So in order to over come the searching problems we are developing an efficient searching tool, which searches the inbox based on Contact Name, Mobile Number etc..

1.3 Aim of the Project


MIST which stands for Mobile Inbox Search Tool is used to perform advanced searching operations on the mobile inbox. This tool is being developed on ANDROID platform which is an open source platform for mobile devices.

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool Android devices are phones, allowing your software to initiate calls, send and receive SMS messages, and everything else you expect from a modern bit of telephony technology. This tool allows searching for messages in which the user is interested and also allows the user to search depending upon some special criteria.

Functional Supported:
Search by Sender. Search by Number. Search by Date. Displaying all the unread messages.

1.4 Organizational Report


Chapter 2: Literature survey Various researchers all over the world are involved themselves in finding out various aspects related to android. A selected bunch of references are discussed hereunder. Chapter 3: Software Requirement Specification This chapter includes the system design details, is the process or art of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. Chapter 4: System Design A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development Chapter 5: Implementation Implementation is the important aspect on software development life cycle. This chapter includes the abstract implementation details of our software. Chapter 6: Testing and Result This chapter includes all testing which satisfies all the constraints to work as expected in the real world environment. Chapter 7: Conclusion and Future Enhancement

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool

Chapter 2

LITERATURE SURVEY
Various researchers all over the world are involved themselves in finding out various aspects related to android. A selected bunch of references are discussed hereunder.

2.1 Android(operating system)


Android is an operating system (or, more precisely, a software stack) for mobile devices that includes middleware and key applications, and uses a modified version of the Linux Kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries. The unveiling of the Android distribution on November 5, 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license. On Feb 16, 2010 Google announced that 60,000 cell phones with Android are shipping every day. According to a press estimate, the Android platform ranks as the fourth most popular smart phone device-platform in the United States as of February 2010. Google has also participated in the Android Market by offering several applications for its services. These applications include Google Voice for the Google Voice service, Sky Map for watching stars, Finance for their finance service, Maps Editor for their My Maps service, Places Directory for their Local Search, Google Goggles that searches by image, Google Translate, Listen for podcasts and My Tracks, a jogging application.

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool

Figure 2.1 shows an Android running in the Android SDK Emulator

Company / developer Programmed in Working state Source model Initial release Latest stable release

Open Handset Alliance C[1] Current Free and open source software 21 October 2008; Tablets: 3.1(Honeycomb)[2] Phones: 2.3.4 (Gingerbread) / 24 February 2011; 2 months ago[2]

Supported platforms Kernel type Default user interface License Official website

ARM, MIPS, Power Architecture, x86 Monolithic (modified Linux kernel) Graphical Apache 2.0 and GPLv2[3] android.com

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool

2.2 Survey of android


Google acquired Android, Inc., a small startup company based in Palo Alto, California, USA. Android's co-founders who went to work at Google included Andy Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White (headed design and interface development at WebTV). At the time, little was known about the functions of Android, Inc. other than that they made software for mobile phones. This began rumors that Google was planning to enter the mobile phone market.

Figure 2.2 shows an Android at Googolplex

At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel which they marketed to handset makers and carriers on the premise of providing a flexible, upgradeable system. It was reported that Google had already lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part. More speculation that Google would be entering the mobile-phone market came in December 2006. Reports from the BBC and The Wall Street Journal noted that Google wanted its search and applications on mobile phones and it was working hard to deliver that. Print and online media outlets soon reported rumors that Google was developing a Google-branded handset. More speculation followed reporting that as Google was defining technical specifications, it was showing prototypes to cell phone manufacturers and network operators. InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony. Dr.SMCE/Dept of CSE/2011-12 5

Mobile Inbox Search Tool Open Handset Alliance The Open Handset Alliance, a consortium of several companies which include Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel and T-Mobile was unveiled with the goal to develop open standards for mobile devices. Along with the formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6. it was announced that 14 new members would be joining the Android project, including ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc. Licensing With the exception of brief update periods, Android has been available as open source since 21 October 2008. Google opened the entire source code (including network and telephony stacks) under an Apache License.With the Apache License, vendors can add proprietary extensions without submitting those back to the open source community. Update history Android has seen a number of updates since its original release. These updates to the base Operating System typically fix bugs and add new features

Figure 2.3 a cupcake was placed beside Android at Googleplex

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool

2.3 Features
Current features and specifications

Handset layouts

The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional Smartphone layouts.

Storage Connectivity

The Database Software SQLite is used for data storage purposes Android supports connectivity technologies including GSM/EDGE, IDEN,CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, and WiMAX.

Messaging

SMS and MMS are available forms of messaging including threaded text messaging.

Web browser

The web browser available in Android is based on the open-source WebKit application framework. The browser scores a 93/100 on the Acid3 Test.

Java support

Software written in Java can be compiled to be executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine. Android does not support J2ME, like some other mobile operating systems.

Media support

Android supports the following audio/video/still media formats: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, BMP.

Additional hardware

Android can use video/still cameras, touch screens, GPS, accelerometers, magnetometers, accelerated 2D bit blits (with hardware orientation, 7

Dr.SMCE/Dept of CSE/2011-12

Mobile Inbox Search Tool support Development environment Market scaling, pixel format conversion) and accelerated 3D graphics. Includes a device emulator, tools for debugging, memory and performance profiling, and a plug-in for the Eclipse IDE. Like many phone-based application stores, the Android Market is a catalog of applications that can be downloaded and installed to target hardware over-the-air, without the use of a PC. Originally only free applications were supported. Paid-for applications have been available on the Android Market in the United States since 19 February 2009. The Android Market has been expanding rapidly. As of April 30, 2010, it had over 50,000 Android applications for download. Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was initially disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively. Bluetooth Video calling Support for sending files over Bluetooth was added in version 2.0. Android does not support video calling. However, it is possible if the phone runs an additional UI. This is proved on the HTC Eva 4G, which runs Sense and can support video calling.

2.4 Hardware running Android


The first phone to run the Android operating system was the HTC Dream, released on 22 October 2008.By the end of 2009 there will be at least 18 phone models using Android worldwide, according to Google. In addition to the mobile devices that ship with Android, some users have been able (with some amount of hacking, and with limited functionality) to install it on mobile devices shipped with other operating systems.

2.5 Software development


The early feedback on developing applications for the Android platform was mixed. Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issueDr.SMCE/Dept of CSE/2011-12 8

Mobile Inbox Search Tool tracking system. (Google announced an issue tracker on 18 January 2008.) In December 2007, Merge Lab mobile startup founder Adam MacBeth stated, "Functionality is not there, is poorly documented or just doesn't work... It's clearly not ready for prime time." Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the Snake game. The Android Dev Phone is a SIM-unlocked and hardware-unlocked device that is designed for advanced developers.

Figure 2.4 shows the Early Android device

While developers can use regular consumer devices purchased at retail to test and use their applications, some developers may choose not to use a retail device, preferring an unlocked or no-contract device. 2.5.1 Software development kit The Android 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 x86-architecture computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or Vista. Requirements also include Java Development Kit, Apache Ant, and Python 2.2 or later. The officially supported integrated development environment (IDE) is Eclipse (3.2 or later) using the Android Development Tools (ADT) Plug-in, though developers may use any text editor to edit Java and XML files then use command line tools to create, build and debug Dr.SMCE/Dept of CSE/2011-12 9

Mobile Inbox Search Tool Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely). A preview release of the Android software development kit (SDK) was released on 12 November 2007. On 15 July 2008, the Android Developer Challenge Team accidentally sent an email to all entrants in the Android Developer Challenge announcing that a new release of the SDK was available in a "private" download area. The email was intended for winners of the first round of the Android Developer Challenge. The revelation that Google was supplying new SDK releases to some developers and not others (and keeping this arrangement private) has led to widely reported frustration within the Android developer community. Android Applications are packaged in .apk format and stored under /data/app folder on the Android OS. The user can run the command adb root to access this folder as only the root has permissions to access this folder. 2.5.2 Android Developer Challenge The Android Developer Challenge was a competition for the most innovative application for Android. Google offered prizes totaling 10 million US dollars, distributed between ADC I and ADC II. ADC I accepted submissions from 2 January to 14 April 2008. The 50 most promising entries, announced on 12 May 2008, each received a $25,000 award to fund further development. It ended in early September with the announcement of ten teams that received $275,000 each, and ten teams that received $100,000 each. ADC II was announced on 27 May 2009. The first round of the ADC II closed on 6 October 2009. The first-round winners of ADC II comprising the top 200 applications were announced on 5 November 2009. 2.5.3 Google applications Google has also participated in the Android Market by offering several applications for its services. These applications include Google Voice for the Google Voice service, Sky Map for watching stars, Finance for their finance service, Maps Editor for their MyMaps service, Places Directory for their Local Search, Google Goggles that searches by image, Google Translate, Listen for podcasts and My Tracks, a jogging application.

Dr.SMCE/Dept of CSE/2011-12

10

Mobile Inbox Search Tool 2.5.4 Third party applications With the growing number of Android handsets, there has also been a growing interest by third party developers to port their applications to the Android operating system.Famous applications that have been converted to the Android operating system include Shazam, Backgrounds, and Weather Bug. The Android operating system has also been considered important enough by a lot of the most popular internet sites and services to create native android applications. These include MySpace and Face book. The release of Mozilla Firefox browser for Android is planned for late 2010. According to an interview with Mozilla's vice president of mobile, Jay Sullivan, conducted by TechRadar on February 17, 2010, part of the delay with the porting of Firefox over to Android has been because Firefox Mobile is built on C and C++ code, but that the new Native Development Kit makes it easier to port Firefox Mobile. 2.5.5 Native code Libraries written in C and other languages can be compiled to ARM native code and installed using the Android Native Development Kit. Native classes can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes. Complete applications can be compiled and installed using traditional development tools. The ADB debugger gives a root shell under the Android Emulator which allows native ARM code to be uploaded and executed. ARM code can be compiled using GCC on a standard PC. Running native code is complicated by the fact that Android uses a non-standard C library (known as Bionic). The underlying graphics device is available as a framebuffer at /dev/graphics/fb0. The graphics library that Android uses to arbitrate and control access to this device is called the Skia Graphics Library (SGL), and it has been released under an open source license. Skia has backends for both win32 and Cairo, allowing the development of cross-platform applications, and it is the graphics engine underlying the Google Chrome web browser. 2.5.6 Community-based firmware There is a community of open-source enthusiasts that build and share Android-based firmware with a number of customizations and additional features, such as FLAC lossless Dr.SMCE/Dept of CSE/2011-12 11

Mobile Inbox Search Tool audio support and the ability to store downloaded applications on the microSD card. This usually involves rooting the device. Rooting lets users load modified firmwares allowing users of older phones to use applications available only on newer releases. Those firmware packages are updated frequently, incorporate elements of Android functionality that haven't yet been officially released within a carrier-sanctioned firmware, and tend to have fewer limitations. CyanogenMod is one such firmware. On 24 September 2009, Google issued a cease and desist letter to the modder Cyanogen, citing issues with the re-distribution of Google's closed-source applications within the custom firmware. Even though Android OS is open source, phones come packaged with closed-source Google applications for functionality such as the application store and GPS navigation. Google has asserted that these applications can only be provided through approved distribution channels by licensed distributors. Cyanogen has complied with Google's wishes and is continuing to distribute this mod without the proprietary software. He has provided a method to back up licensed Google applications during the mod's install process and restore them when it is complete.

2.6 Marketing
2.6.1 Logos Android uses the Droid font family made by Ascender Corporation. Fig 2.6 shows the logo. Android Green is the color of the Android Robot that represents the Android operating system.

Figure 2.5 Android robot logo and font style

The print color is PMS 376C and the online hex color is #A4C639, as specified by the Android Brand Guidelines. 2.6.2 Market share Dr.SMCE/Dept of CSE/2011-12 12

Mobile Inbox Search Tool Research company Canalys estimated in Q2 2009 that Android had a 2.8% share of worldwide smart phone shipments. By Q4 2010 this had grown to 33% of the market, becoming the top-selling smart phone platform. This estimate includes the Tapas and OMS variants of Android. In February 2010 ComScore said the Android platform had 9.0% of the U.S. smartphone market, as measured by current mobile subscribers. This figure was up from an earlier estimate of 5.2% in November 2009. By the end of Q3 2010 Android's U.S. market share had grown to 21.4 percent. In May 2010, Android's first quarter U.S. sales surpassed that of the rival iPhone platform. According to a report by the NPD group, Android achieved 25% smartphone sales in the US market, up 8% from the December quarter. In the second quarter, Apple's iOS was up by 11%, indicating that Android is taking market share mainly from RIM, and still has to compete with heavy consumer demand for new competitor offerings. Furthermore, analysts pointed to advantages that Android has as a multi-channel, multi-carrier OS, which allowed it to duplicate the quick success of Microsoft's Windows Mobile. In early October 2010, Google added 20 countries to its list of approved submitters. By mid-October, purchasing apps will be available in a total of 32 countries. For a complete list of countries that are allowed to sell apps and those able to buy them see Android Market. As of December 2010 Google said over 300,000 Android phones were being activated daily, up from 100,000 per day in May 2010.In February 2011, during the 2011 Mobile World Congress, Eric Schmidt announced that Android has reached 350,000 activations per day.At Google I/O, May 10, 2011, Google announced that 400,000 new Android devices are activated every day and more than 100 million have been activate.

2.7 Restrictions and Issues


2.7.1 Kernel-related Android uses a version of Linux as its kernel (albeit tweaked by Google to fit Android needs and separated from the main Linux kernel tree), but it is not a conventional Linux distribution; it does not have a native X Window System, neither does it support the full set of standard GNU libraries like its system libraries (GNU C Library). This makes it difficult to reuse existing Linux applications or libraries on Android. Dr.SMCE/Dept of CSE/2011-12 13

Mobile Inbox Search Tool Google no longer maintains the Android code they previously contributed to the Linux kernel, effectively branching kernel code in their own tree, separating their code from Linux. The code which is no longer maintained was deleted in January 2010 from the Linux codebase. However, Google announced in April 2010, that they will hire two coders to work with kernel.org. 2.7.2 Issues concerning application development 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, but does not provide the full-class libraries and APIs bundled with Java SE or ME. However, Myriad's J2Android, launched on 19th March, 2010, allows seamless conversion of Java MIDlets into Android applications. Developers have reported that it is difficult to maintain applications working on different versions of Android, because of various compatibility issues between versions 1.5 and 1.6, specifically concerning the different resolution ratios of the various Android phones. Such problems were specifically encountered during the ADC2 contest. Garbage collection will slow down programs that make too many memory allocations allowing Dalvik to keep a pool of free memory. This may noticeably affect responsiveness. Android does not readily support Bluetooth file exchange, video call or native Java ME, as do other mobile operating systems, such as Symbian OS and Windows Mobile, however some of this is still possible: Bluetooth file exchange is possible on rooted devices. Apps like Qik allow live broadcasting (but not receiving) and

KnockingLiveVideo for the iPhone is set to make an Android appearance. Third-party XMPP clients such as BEEM could support the Jingle protocol soon. Java ME apps can be converted with a MIDP runner that converts them to android apk's to be installed like normal apps. 2.7.3 Issues for specific applications Unlike other mobile closed platforms like Apple's phone OS, Google tracks issues and feature requests at Google Code's site. The following outstanding issues have been highly debated or voted for by the user community: Dr.SMCE/Dept of CSE/2011-12 14

Mobile Inbox Search Tool

A source of criticism has been the lack of standards-based iCalendar/CalDAV functionality in the Android calendar client. Currently, the Android calendar is restricted to synchronization with Google Calendar service.

As of January 2010, the most requested ("starred") feature is the support for Bidirectional text (right-to-left) such as Arabic, Persian and Hebrew.

Bluetooth voice dialing is also not supported. This feature in particular has caused some surprise; many older phones have had this feature for several years.

Android does not support animated GIF files. It only shows the first frame. Android does not support encrypted sending (SMTP+TLS) and receiving (IMAP+SSL) of e-mail over self-signed certificates.

Because of potential security issues, Android does not officially allow applications to be installed on, nor run from, an SD card. Current Android products such as the HTC Dream and Magic have limited onboard memory and many users feel restricted by this lack of functionality. However, several unsupported modifications exist to give the user this capability.

Dr.SMCE/Dept of CSE/2011-12

15

Mobile Inbox Search Tool

Chapter 3 SOFTWARE REQUIREMENTS SPECIFICATION


A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development i.e., listing the functional and nonfunctional requirements and language requirements for the project.

3.1 Functionality of the software


The functional Requirements are organized by features. Separate functionalities are provided for each stated feature. Search by Sender In this feature the tool filters out messages from a particular sender. Once the user inputs few characters, a search is performed to filter out the messages from the senders whose name starts with these characters. Each time a character is entered or cleared, the existing character string is taken as input, the search is performed and the results are displayed immediately. To display the results no specific button such as search has to be pressed separately, meaning as the user changes the input character string, the results displayed also change automatically based on current input. For example, if the user types letters Ab, the messages from senders whose name starts with letters Ab such as Abhay, Abhi etc. gets filtered and are displayed. Search by Number In this feature searching is performed on the basis of senders number. The input to the search application will be a integer. After the search is performed, the messages sent by that particular number get displayed. For example, if we search for 9449762999, then all the messages sent by 9449762999will get displayed.

Dr.SMCE/Dept of CSE/2011-12

16

Mobile Inbox Search Tool Search by Date This feature allows us to search and display messages which have arrived on a particular day or until a particular time. When Search by date is chosen, the user is allowed to enter a date and all the messages that have arrived on that day are displayed. Unread Messages This feature will display all the unread messages.

3.2 Software Requirements


The software requirements such as operating system, type of language and front end to use for designing of graphical user interface are described here.

Parameter Operating System Language Android OS Java

Values

Eclipse 3.2 or higher versions JDK 5 or JDK 6 Android Development Tools plug-in Android SDK for windows is 2.2 Windows operating system.

3.3 Hardware Requirements


A minimum of 512MB RAM . For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed.

Dr.SMCE/Dept of CSE/2011-12

17

Mobile Inbox Search Tool

The Android SDK requires disk storage for all of the components that you choose to install. The table below provides a rough idea of the disk-space requirements to expect, based on the components that you plan to use.

Component type SDK Tools SDK Platform-tools Android platform (each) SDK Add-on (each) USB Driver for Windows Samples (per platform) Offline documentation

Approximate size 35 MB 6 MB 150 MB 100 MB 10 MB 10M 250 MB

Dr.SMCE/Dept of CSE/2011-12

18

Mobile Inbox Search Tool

Chapter 4

SYSTEM ANALYSIS
After exploring existing mobile city guides and scenarios, I list the functionalities in different priorities. The priorities are given according to the importance of functions for a city guide. For example, the function of showing map is very important for a city guide. The priorities are divided into three different levels: High (H), Medium (M), and Low (L). H is considered the most important for a city guide and implemented firstly, M is less important and implemented after H, L is the least important and considered to implement after the high and medium. Normally, city guide should have basic functions: showing map and showing points of interest (POIs) on map, providing some information about sights or events (e.g. when the museum is open). In addition to them, we can add telephone function, the function of adding review, the function of making tour plan, the function of event reminder and so on. As well, I explore implementation of functionalities as many as possible based on the features of powerful Android platform since investigating realization of a tailorable City Guide application on the Android platform is the main purpose in the project.

4.1 Functional Requirements


MAP ID 1 2 3 4 Requirement The city guide can show map of a city. The map can be zoomed in and out Users can move around the map The city guide can show users current position on the map The city guide can show the route between different locations on the map The city guide can see other users positions in the same group on the map The map can show points of interest (POIs) The map only shows Priority H H H H

8 Dr.SMCE/Dept of CSE/2011-12

M 19

Mobile Inbox Search Tool the points of interest users are interested in Information Retrieval ID 9 Requirement The city guide can retrieve information of points of interest The city guide can retrieve information of events, which will happen right now. The city guide can retrieve information about reviews of points of interest Users can select what kind of POIs to show on map (i.e. different classifications. e.g. hotels, museums, restaurants events, and so on). Priority H

10

11

12

Communication ID 13 Requirement Priority The city guide can M support communication between users in the same group through telephone or short message.

Review ID 14

Requirement Priority Users can add review M about points of interest. Requirement Priority The city guide can H support event reminder like lunch time Fig 4.1 Functional requirements

ID 15

Dr.SMCE/Dept of CSE/2011-12

20

Mobile Inbox Search Tool

4.2 Non-Functional Requirements


Speed of access: Messaging and many app in the android device provides us to access faster. Performance on most machines: The application created can be used in any of the android based mobiles with particular version. Ease of use: The application can be created so that it will be easy to work by the normal user also. And also Android applications are written in java, developers will be familiar with many of the packages provided as part of the Android SDK, such as java.net.developers will be pleased to find that the learning curve for android is quite reasonable. Its free if it is to be published in India.

Dr.SMCE/Dept of CSE/2011-12

21

Mobile Inbox Search Tool

Chapter 5

SYSTEM DESIGN
5.1 Development Methods
1. The development method that we are using for the development of our application is the Evolutionary Development Model also known as Iterative Development Model. 2. This approach interleaves the activities of specification, development and validation. An initial system is rapidly developed from the abstract specifications. This is then refined with customer input to produce the system that satisfies the customers needs. 3. We chose this method to develop our application because this is a utility based application .In this we have a initial set of requirements which is going to aid the user. 4. Once each of these utilities are developed it is going to be validated to see if it is fulfilling the customer requirements and in case it is not it is modified to work as intended.

5.2 Architectural Strategies


This section contains any design decisions and/or strategies that affect the overall organization of the system and its higher-level structures. These strategies provide insight into the key abstractions and mechanisms used in the system architecture. It also contains the reasoning employed for each decision and/or strategy (possibly referring to previously stated design goals and principles) and how any design goals or priorities were balanced or traded-off. Few of the decisions are as follows Use of a particular type of product We are making use of Android Development framework because its open source, it provides excellent development environment to develop the user interface and applications. It also provides several native libraries like surface manager,SQLite,media framework etc.

Dr.SMCE/Dept of CSE/2011-12

22

Mobile Inbox Search Tool Future plans for extending or enhancing the software We are currently developing this as an independent application and hope to integrate it into the default message inbox provided by android. We are developing this on Android and in future hope to extend this to other platforms like Symbian (used by Nokia). User interface paradigms In Android user interfaces can be designed using one of the two methods Procedural and Declarative.Procedural involves writing code in java to create and manipulate user interface objects.Declarative design doesnt involve any code. This makes use of Markup language based on XML. In our project we make use of both of the methods as and when required. Hardware and/or software interface paradigms Eclipse with ADT Plug-in and android SDK provides us with the emulators and interfaces required for development. Management of resources Android uses Linux for its Memory management, networking, process management and other operating system services. External databases and/or data storage management and persistence Android framework provides SQLite libraries for data storage management. Communication mechanisms Intents are system messages, running around the inside of the device, notifying applications of various events, from hardware state changes (e.g., an SD card was inserted), to incoming data (e.g., an SMS message arrived), to application events (e.g., your activity was launched from the devices main menu).

5.3 System Architecture


The system architecture provides a high level overview of how the functionalities and responsibilities of the system were distributed or assigned to various subsystems or components. The main purpose here is to gain a general understanding of how and why the system was decomposed and how the individual parts work together to provide the desired functionality.

Dr.SMCE/Dept of CSE/2011-12

23

Mobile Inbox Search Tool

Figure 5.1 Android System Architecture Android system architecture consists of four layers and their functionalities are as follows: 1. Linux Kernel Linux provides the hardware abstraction layer for Android, allowing Android to be ported to a wide variety of platforms in future. And it is also responsible for memory management,process management and other operating system services. 2. Native Libraries These libraries are all written in C or C++,compiled for particular hardware architecture used by phones, and preinstalled by the phone vendor. Some of the most important native libraries are surface manager, SQL database, browser engine etc. 3. Application Framework This layer provides the high-level building blocks we use to create our applications. Most important parts of framework are activity manager, content providers, resource manager, location manager etc. 4. Applications And Widgets Applications are programs that can take over the whole screen and interact with the user. On the other hand, Widgets also called gadgets only operate in a small rectangle of the Home screen application. Some of the standard system applications which come prepackaged with the android phone arePhone dialer,email,contacts,web browser,android market etc. Dr.SMCE/Dept of CSE/2011-12 24

Mobile Inbox Search Tool

5.4 Data flow diagrams


DFD Level 0 Level 0 DFD includes the basic data flow included in overall process. The level 0 DFD is as shown in the figure. Search criteria & data 1.0 Mobile Inbox search Tool Result User

User

Figure 5.2 Basic data flow Level 0, broadly explains the main entities involved. The user provides the type of the search and data to be searched .The search operation is performed and the results are displayed to the user. DFD Level 1 Level 1 DFD represents elaboration of the single process in Level 0 into sub processes. Level 1 DFD is as shown in the figure.The entities of the MIST tool are represented in above diagram. Search criteria & data
1.0.1

USER

Input Processing

Result

USER

1.0.2
Database

1.0.3 View Management

Figure 5.3 Expansion of MIST Tool

Dr.SMCE/Dept of CSE/2011-12

25

Mobile Inbox Search Tool DFD level 2 Level 2 DFD as shown in below figure. Level 2 elaborates Level 1 DFD in more detail.

1.0.1.1
Search By Sender

1.0.2.1 Query handler

1.0.3.1 Cursor

1.0.1.2 USER Search By Number 1.0.3.2 1.0.2.2 SQLite Database 1.0.1.3 Search By Date 1.0.3.3 Array adapter 1.0.2.3 Cursor management
Accessing cursor data

1.0.1.4 Display unread messages

1.0.3.4 List View

Figure 5.4 Expansion of DFD1 USER

Input processing unit allows the user to select the type of search to be performed. The user may select any of the four types namely Search By Number , Search By Sender, Search By date. The database unit is responsible for taking search data from the user and performing Dr.SMCE/Dept of CSE/2011-12 26

Mobile Inbox Search Tool the search .It comprises of 3 units namely Query Handler, SQLite database and Cursor Management. The query handler converts the search criteria into a SQLite query to perform the search.The query generated is run on the database to obtain the results and these results are managed by a Cursor Object.The cursor manager helps us to access the data within a cursor like moving to next row etc. The View Management is responsible taking the search results and displaying it to the user in the required format.The various components which help us do this are shown in the figure below. Finally the Cursor containing the search results is obtained and the data in it is accessed and the required data is put into an array adapter and this data is displayed into the ListView view.In this section, we have identified the individual modules that comprise the building blocks of our system and have presented a complete design for them. The details of the design process for each module contains of the following elements:

The purpose of the module: A description of its functionality using an algorithm. A description of the types and number of inputs it accepts. A description of the types and number of outputs it generates. A discussion of the relationship it shares with any other components. An overall view of the structure of the system is presented below it shows the interactions between each file, and at what level each file runs at.

5.5 Classification
In section 3.3.1, a Data flow diagram shows the various processes involved in identifying the type of request and responding to that particular type of request. In this section certain modules are described to carry out the implementation of those various processes. There are four main modules and each module have sub components. The main modules are: 1. Search by Sender module. 2. Search by Number module. 3. Search by Date module. Dr.SMCE/Dept of CSE/2011-12 27

Mobile Inbox Search Tool 4. Display Unread messages modules Flow Chart i/p Module

i/p Query Populate List


Query Contacts Databases

Query SMS Database

Display Sub-Module

Delete Module

Array Adapter

Figure 5.5 Module of Search by Sender.

5.5.1 Subsystem 1 - Search by Sender module


Definition This subsystem filters out messages from a particular sender. Responsibilities Once the user inputs few characters, a search is performed to filter out the messages from the senders whose name starts with these characters. Constraints

Dr.SMCE/Dept of CSE/2011-12

28

Mobile Inbox Search Tool The name of the sender must be present in the phone book i.e. messages from unknown numbers cannot be filtered. Composition The various modules of this subsystem are described below:

1. Input module
Classification This is a module of the subsystem Search by Sender. Definition It is responsible for taking input from the user. Responsibilities This module provides a edit text box with TextWatcherlistener attached to it which calls a callback whenever the input in the edit text box changes.

Constraints Valid input must be given. Uses/Interactions Android by default provides a virtual QWERTY key board which the user can use to enter the input.

2. Populate list
Classification This is a module of the subsystem Search by Sender. Definition It is responsible for processing the user input and displaying the results in ListView. Responsibilities Extracts the user input entered in the edit text box and generates a suitable query, queries the SMS database and displays the result. Composition This consists of four sub-modules which are as follows Dr.SMCE/Dept of CSE/2011-12 29

Mobile Inbox Search Tool 1. Input Query 2. Query SMS database 3. Display sub-module 4. Interface/Exports Interface/Exports This module is called by the TextWatcher callback. It is also called when we wish to populate or refresh the list.

3. Delete module
Classification This is a module present in the Search by Sender subsystem. Definitions This module handles the deletion of selected messages when invoked. Responsibilities This module is invoked when the delete button is selected through menu options. The module checks for the messages which have been checked by the user and deletes those messages by finding out their unique IDs. Also this module returns the number of messages deleted. Uses/Interactions This module is used by the Search by Sender subsystem whenever the user wants to delete a message or messages by a particular Sender. Resources This module uses Hash Table as a resource for retrieving the unique IDs of user selected messages for deletion.

4. Array Adapter
Classification This is a class used by the Search by Sender subsystem. Definition This class is responsible for providing a customized View for displaying the results. Dr.SMCE/Dept of CSE/2011-12 30

Mobile Inbox Search Tool Responsibilities It generates a customized View for displaying the results obtained by Search by Sender subsystem. Uses/Interactions It is a custom view used by populate list to display the results in a ListView. Resources Contacts cursor which contains all the contacts present in the phonebook which satisfy the user mentioned criteria. SMS cursor containing all the messages present in the database.

5.5.2 Subsystem 2 - Search by Number module


Definition This subsystem is responsible for filtering out the messages on the basis of the input number. Responsibilities This subsystem allows the user to search messages sent from unknown numbers as well as known numbers.

Constraints The input to the tool must be a phone number and not the name. Composition The various modules of this subsystem are described below:

1. Input module
Classification This is a module of the subsystem Search by Number. Definition It is responsible for taking input from the user. Responsibilities This module provides a edit text box with TextWatcherlistener attached to it which calls a callback whenever the input in the edit text box changes. Dr.SMCE/Dept of CSE/2011-12 31

Mobile Inbox Search Tool Constraints The input to the search tool must be number. Uses/Interactions Android by default provides a virtual QWERTY key board which the user can use to enter the input.

2. Populate list
Classification This is a module of the subsystem Search by Number. Definition It is responsible for processing the user input and displaying the results in ListView. Responsibilities Extracts the user input entered in the edit text box and generates a suitable query, queries the database and displays the result.

Composition This consists of four sub-modules which are as follows 1. Input Query 2. Query SMS database 3. Display sub-module 4. Interface/Exports

3. Delete Module
Classification This is a module present in the Search By Number subsystem. Definition This module handles the deletion of selected messages when invoked. Responsibilities This module is invoked when the delete button is selected through menu options. Themodulechecks for the messages which have been checked by the user and deletes

Dr.SMCE/Dept of CSE/2011-12

32

Mobile Inbox Search Tool those messages by finding out their unique IDs. Also this module returns the numberof messages deleted. Uses/Interactions This module is used by the Search by Number subsystem whenever the user wants to delete a message or messages by a particular Number. Resources This module uses HashTable as a resource for retrieving the unique IDs of user selected messages for deletion.

4. ArrayAdapter
Classification This is a class used by the Search by Number subsystem. Definition This class is responsible for providing a customized View for displaying the results. Responsibilities It generates a customized View for displaying the results obtained by Search by Sender subsystem. Constraints Accepts only Strings. Data other than String type data must be converted into String type. Uses/Interactions It is a custom view used by populate list to display the results in a ListView. Resources SMS cursor containing all the messages present in the database.

5.5.3 Subsystem 3 - Search by Date


Definition This subsystem is responsible for searching the messages on the basis of date of the messages sent by the different senders. Responsibilities Dr.SMCE/Dept of CSE/2011-12 33

Mobile Inbox Search Tool This subsystem allows the user to search messages sent on a particular day or on a particular day and until particular time. i.e. the user can just input the date and perform searching or he can even input time along with the date and perform searching. Constraints This subsystem will not allow the user to perform searching based only on the Date Composition The various modules of this subsystem are described below:

1. Input module
Classification This is a module of the subsystem Search by Date. Definition It is responsible for taking input from the user. Responsibilities This module allows the user to set the date by providing the DatePicker dialog . The user can clear the already set date by using the Reset button provided by the input module. Uses/Interactions Android by default provides a DatePicker dialog to set the date which are the callbacks called when the user selects those dialogs to set the date

2. Populate list
Classification This is a module of the subsystem Search by Date. Definition It is responsible for processing the user input and displaying the results in ListView. Responsibilities Extracts the user input entered through DatePicker dialog. If the user sets only the date, the query is generated to extract the messages sent only on that particular date by default is taken as the interval between 00:00 to 23:59. If the user sets date. After extracting the input this module queries the database and displays the result.

Dr.SMCE/Dept of CSE/2011-12

34

Mobile Inbox Search Tool Composition This consists of four sub-modules which are as follows 1. Input Query 2. Query SMS database 3. Display sub-module 4. Interface/Exports

3. Delete Module
Classification This is a module present in the Search By Date subsystem. Definition This module handles the deletion of selected messages when invoked. Responsibilities This module is invoked when the delete button is selected through menu options. The module checks for the messages which have been checked by the user and deletes those messages by finding out their unique IDs. Also this module returns the number of messages deleted.

Uses/Interactions This module is used by the Search by Date subsystem whenever the user wants to delete a message or messages by different senders. Resources This module uses HashTable as a resource for retrieving the unique IDs of user selected messages for deletion.

4. ArrayAdapter
Classification This is a class used by the Search by Date subsystem. Definition This class is responsible for providing a customized View for displaying the results. Responsibilities Dr.SMCE/Dept of CSE/2011-12 35

Mobile Inbox Search Tool It generates a customized View for displaying the results obtained by Search by Date subsystem. Constraints Accepts only Strings. Data other than String type data must be converted into String type. Uses/Interactions It is a custom view used by populate list to display the results in a ListView. Resources Contacts cursor which contains all the contacts present in the phonebook which satisfy the user mentioned criteria. SMS cursor containing all the messages present in the database.

5.5.4 Subsystem-4 Display Unread messages subsystem


Definition This subsystem is responsible for displaying all the unread messages which are present in message Inbox. Responsibilities This subsystem checks for the message status to find out whether the message is Read or Unread. Composition The various modules of this subsystem are described below.

1. Populate list
Classification This is a module of the subsystem Display Unread messages. Definition It is responsible for displaying all the Unread messages in a customized ListView. Responsibilities This module displays allthe Unread messages with the sender name and a part of the message content in a customized ListView. Dr.SMCE/Dept of CSE/2011-12 36

Mobile Inbox Search Tool

Composition This consists of four sub-modules which are as follows 1. Input Query 2. Query SMS database 3. Display sub-module 4. Interface/Exports

2. Delete module
Classification This is a module present in the Display Unread messages subsystem. Definition This module handles the deletion of selected messages when invoked. Responsibilities This module is invoked when the delete button is selected through menu options. The module checks for the messages which have been checked by the user and deletes those messages by finding out their unique IDs. Also this module returns the number of messages deleted.

Uses/Interactions This module is used by the Display Unread messages subsystem whenever the user wants to delete a message or messages by different senders. Resources This module uses HashTable as a resource for retrieving the unique IDs of user selected messages for deletion.

3. ArrayAdapter
Classification This is a class used by the Display Unread messages subsystem. Definition This class is responsible for providing a customized View for displaying the results. Responsibilities Dr.SMCE/Dept of CSE/2011-12 37

Mobile Inbox Search Tool It generates a customized View for displaying the results obtained by Display Unread messages subsystem. Constraints Accepts only Strings. Data other than String type data must be converted into String type. Uses/Interactions It is a custom view used by populate list to display the results in a ListView. Resources Contacts cursor which contains all the contacts present in the phonebook which satisfy the user mentioned criteria. SMS cursor containing all the messages present in the database.

Dr.SMCE/Dept of CSE/2011-12

38

Mobile Inbox Search Tool

5.6 UML diagrams 5.6.1 Use case diagram


The use case diagram for mobile inbox search tool is as shown below:

Figure 5.6 Use case diagram

Dr.SMCE/Dept of CSE/2011-12

39

Mobile Inbox Search Tool

5.6 .2 Sequence diagrams

Figure 5.7 Main Sequence diagram

Dr.SMCE/Dept of CSE/2011-12

40

Mobile Inbox Search Tool

Fig 5.8 Sequence diagram for searching

Dr.SMCE/Dept of CSE/2011-12

41

Mobile Inbox Search Tool

5.6.3 Activity diagram

Figure 5.9 Activity diagram

Dr.SMCE/Dept of CSE/2011-12

42

Mobile Inbox Search Tool

Chapter 6

IMPLEMENTATION
The project we have undertaken involves searching mechanism which is used to solve searching problems in Message Inbox. It involves search by sender, search by number, search by date and time, display unread messages.

6.1 Details of language used


We have used JAVA language in our project, and Android uses standard JAVA compiler to compile the source code. You get a commonly-used programming language (Java) with some commonly used libraries (e.g., some Apache Commons APIs) along with support for tools you may beused to (Eclipse). Android programs are written in JAVA languages and they use JAVA STANDARD EDITION(SE) libraries APIs. Android uses a standard Java compiler to compile your source code into regular bytecodes and then translates those byte-codes into Dalvik instructions.Therefore, the entire JAVA language is supported, not just the subset. Compare this to the Google Web Toolkit (GWT), which has its own Java to JavaScript translator. By using the stock compiler and byte-codes, you dont even need to have the source code for libraries that you want to use in your applications. Android supports a relatively large subset of the Java Standard Edition 5.0 library. Some things were left out because they simply didnt make sense (such as printing), and others were omitted because better APIs are available that are specific to Android (such as user interfaces).

Supported Packages
The following standard packages are supported in Android. Consult the Java 2 Platform Standard Edition 5.0 API documentation for information on how to use them: java.awt.font: A few constants for Unicode and fonts Dr.SMCE/Dept of CSE/2011-12 43

Mobile Inbox Search Tool java.beans: A few classes and interfaces for JavaBeans property changes java.io: File and stream I/O and etc.

Not Supported Packages


These packages, normally part of the Java 2 Platform Standard Edition,are not supported by Android: java.applet java.awt java.lang.management java.rmiand etc.

Additional Packages
In addition to the standard libraries listed earlier, the Android SDKcomes with a number of third-party libraries for your convenience: org.apache.http: HTTP authentication, cookies, methods, andprotocol org.json: JavaScript Object Notation org.xml.sax: XML parsing org.xmlpull.v1: XML parsing

6.2 Details of platform used


Android is the first free, open source, and fully customizable mobile platform. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows third-party developers to develop great applications. Android is a new open source software toolkit for mobile phones thatwas created by Google and the Open Handset Alliance. Android is the first environment that combines the following: A truly open, free development platform based on Linux and open source: Handset makers like it because they can use and customizethe platform without paying a royalty.Developers like itbecause they know that the platform has legs and is not locked into any one vendor that may go under or be acquired. Dr.SMCE/Dept of CSE/2011-12 44

Mobile Inbox Search Tool

A component-based architecture inspired by Internet mashups: Parts of one application can be used in another in ways not originally envisioned by the developer. You can even replace built-in components with your own improved versions. This will unleash new round of creativity in the mobile space. Tons of built-in services out of the box: Location-based services useGPS or cell tower triangulation to let you customize the user experience depending on where you are. A full-powered SQL database lets you harness the power of local storage for occasionally connected computing and synchronization. Automatic management of the application life cycle: Programs are isolated from each other by multiple layers of security, which willprovide a level of system stability not seen before in smart phones.The end user will no longer have to worry about what applicationsare active or close some programs so that others can run. Androidis optimized for low-power, low-memory devices in a fundamentalway that no previous platform has attempted. High-quality graphics and sound: Smooth, antialiased 2D vectorgraphics and animation inspired by Flash are melded with 3Daccelerated OpenGL graphics to enable new kinds of games andbusiness applications. Codecs for the most common industrystandard audio and video formats are built right in, includingH.264 (AVC), MP3, and AAC. Portability across a wide range of current and future hardware: All your programs are written in Java and executed by Androids Dalvik virtual machine, so your code will be portable acrossARM, x86, and other architectures. Support for a variety of inputmethods is included such as keyboard, touch, and trackball.User interfaces can be customized for any screen resolution and orientation. Android offers a fresh take on the way mobile applications interact withusers, along with the technical underpinnings to make it possible.

Dr.SMCE/Dept of CSE/2011-12

45

Mobile Inbox Search Tool

6.3 Details of the Interface


We have implemented the user interface using Activities. An activity is a user interface screen. Applications can define one or more activities to handle different phases of the program. each activity is responsible for saving its own state so that it can be restored later as part of theapplication life cycle The building block of the user interface is the activity. While it is possible for activities to not have a user interface, most likely your headless code will be packaged in the form of content providers or services Your projects src/directory contains the standard Java-style tree of directories based uponthe Java package you used when you created the project. Inside the innermost directory you should find a pre-generated source file named Now.java, which is where your first activity will go.

Dr.SMCE/Dept of CSE/2011-12

46

Mobile Inbox Search Tool

Chapter 7

TESTING AND RESULTS


The purpose of this section is to ensure that the resulting system meets the system requirements and there is a seamless transition of data flowing through each of the systems as well as in between one another. In our application there are mainly 4 modules which provide the 4 promised features. Each module has its own user interface. There is an interface which brings together all the 4 features. We perform three types of testing namely
1. Unit testing

2. Integration testing
3. User Interface testing

7.1 Unit Testing


The first level of testing is called unit testing. Unit testing focuses verification effort on the smallest unit of software design- the module. In this, different modules are tested against the specifications produced during design for the modules. Unit testing is essentially for verification of the code produced during the coding phase and hence the goal is to test the internal logic of the modules. It is typically done by the programmer of the module. A module is considered for integration only after it has been unit tested satisfactorily. Due to its close association with coding, the coding phase is frequently called coding and unit testing. The unit test can be conducted in parallel for multiple modules. Features to be tested Filtering Deleting Opening message Mapping between sender number and name. Items to be tested Dr.SMCE/Dept of CSE/2011-12 47

Mobile Inbox Search Tool Algorithm performing filtering Algorithm performing deleting Algorithm for opening message Algorithm performing mapping between sender number and name. Purpose of Testing

To check for the proper functionality of filtering algorithm.


To check for the proper functionality of deleting algorithm. To check for the proper functionality of message opening algorithm. To check for the mapping between sender number and name. Pass / Fail Criteria The messages in the inbox should be filtered out depending on the criteria in which the user is interested. If the user selects the delete option from the menu, the checked messages should be deleted from the displayed result. Once the user selects a message the corresponding conversation should be opened by the default SMS manager. The test cases listed below contain the details of our considerations while testing the working of the module.

Dr.SMCE/Dept of CSE/2011-12

48

Mobile Inbox Search Tool


Sl No. of test case 1 Name of test SBS filtering 1 Item / Sample Feature Input being tested Filtering Complete algorithm sender name Expected output All messages from the corresponding sender 2 SBS filtering 2 Filtering algorithm Partial sender name All messages from senders whose names begin with the character sequence entered by user Actual output Result

All messages from the corresponding sender All the messages from senders whose names begin with the character sequence entered by user

passed

passed

SBS deleting

Deleting algorithm

Checking the messages to be deleted

The selected messages have to be deleted from the list as well as the database

The selected messages have been deleted from the list as well as the database The conversation containing the messages corresponding to the particular sender should be opened Numbers passed passed passed

SBS opening

Opening algorithm

Clicking on the message to be opened

The conversation containing the messages corresponding to the particular sender should be opened

SBS Mapping

Mapping algorithm

List Numbers from SMS database

of Numbers

mapped to the mapped to the corresponding names.

the corresponding names.

SBS

Mapping

A sender

All numbers

Only primary

Failed

Dr.SMCE/Dept of CSE/2011-12

49

Mobile Inbox Search Tool


Mapping. algorithm having multiple numbers mapped to the corresponding name number is mapped to the sender name and rest of the numbers were ignored. There by the messages from those numbers were not displayed.

TEST RESULT: It happened because of wrong URI and was replaced by proper URI

Sl No. of test case 1

Name of test SBN filtering 1

Item / Feature being tested Filtering algorithm

Sample Input Partial number

Expected output

Actual output

Result

All messages All messages Passed from the from the

corresponding number 2 SBN filtering 2 Filtering algorithm Partial number All messages from senders whose numbers begin with the number sequence entered by user The selected

corresponding number

SBN deleting

Deleting algorithm

Checking the messages to be deleted

All the Passed messages from senders whose number begin with the number sequence entered by user The selected passed messages messages have been have to be deleted from the list as well deleted from as the the list as well database as database the

SBN opening

Opening algorithm

Clicking on the message to

The conversation containing the

The conversation containing the

passed

Dr.SMCE/Dept of CSE/2011-12

50

Mobile Inbox Search Tool


be opened messages corresponding to the particular number should be opened messages corresponding to the particular number should be opened

TEST RESULT : To solve this, a constraint that only one activity of the type can be launched in a tab was introduced. Launching an already launched activity will launch it as a separate activity occupying the whole screen and will function independently will all respects compared to the one placed under a tab.

7.2 Integration Testing


The second level of testing is called integration testing. In this, many unit tested modules are combined into subsystems, which are then tested. The goal here is to see if all the modules can be integrated properly. Features to be tested Index Launching of different activities in different tabs. Items to be tested Algorithm for starting different activities in different tabs.

Purpose of Testing The main purpose of this testing is to see how seamlessly the different activities are called and placed within tabs.

7.3 Interface Testing


In this type of testing, we wish to test the user interfaces associated with each module and also the application as a whole.

Dr.SMCE/Dept of CSE/2011-12

51

Mobile Inbox Search Tool The test cases listed below contain the details of our considerations while testing the working of the user interface of the system.
Sl No of test case 1 UI 1 User Interfaces Pressing Menu Button and Selecting Delete Option Change in the layout of the list View to allow user to check mark multiple messages Changes as mentione d above occurs properly in all modules 2 UI 2 User Interfaces of search by date Click on 1.Set the date button 2.Reset button 1.DatePicker been Changed Passe d Passe d Name of the text Item/features Being test Sample Input Expected Output Actual Output Resul t

shown allowing the as user to set the date . mention After the date is set, above the text of the

original

buttons

changes to the set date 2.Previously set date should be cleared and the text of the buttons gets set to Set the date

Dr.SMCE/Dept of CSE/2011-12

52

Mobile Inbox Search Tool

Chapter 8

CONCLUSION & FUTURE ENHANCEMENTS


This application was developed as a utility application to aid the searching and deletion operation. The application promised 4 features namely : Search By Sender , Search By Number , Search By Date and Time and Display Unread . All the features were successfully implemented. This application was developed for the Android Platform. The reasons for choosing the android platform were : Open Source Android doesnt differentiate between native applications and third party applications, thus giving the developer ability to realize the full power of the platform. Data from other applications can be easily accessed and modified thus we were able to access the contacts and sms from the default application present on the phone. Other applications on the phone can easily be called from current application. XML to develop the User Interface. To develop the application we followed the prototype based development, where each feature was individually developed in phases and in each phase functionality was added, upgraded or unnecessary ones were removed. After the individual features were ready they were integrated to form the final application. Using prototype development made application development easy for us to accomplish changes. The individual features are placed in tabs for easy user navigation. Also appropriate menus and buttons are provided for the user to use the application easily.

8.1 Future Enhancements


The application currently searches only the inbox of the mobile and with very few changes it can be extended to search through the outbox, drafts, sent items as well. The application currently is a standalone application and if integrated into the messaging application will make it a very effective tool for the user to use. Dr.SMCE/Dept of CSE/2011-12 53

Mobile Inbox Search Tool The application is developed specifically for android and in future can be developed for other platforms like symbian, iPhone , blackberry etc as well.

Dr.SMCE/Dept of CSE/2011-12

54

Mobile Inbox Search Tool

APPENDIX-A SOURCE CODE SECTION


The code for android-sdk-windows platform 1.5 is written below:

1.DisplayUnread.java
//This program is responsible for listing unread messages. package com.ist.activity; import java.util.List; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView;

import com.ist.pojo.Message; import com.ist.util.MessageAdapter; import com.ist.util.MessageUtil;

/** * * @author Sumit Anvekar

Dr.SMCE/Dept of CSE/2011-12

55

Mobile Inbox Search Tool * IST * com.ist.activity.UnreadMessageListActivity */ public class UnreadMessageListActivity extends Activity {

List<Message> unreadMessages = null;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); unreadMessages = MessageUtil.GetSMSList(getContentResolver(), getApplicationContext(), "read=0"); setContentView(R.layout.unreadmessagelist); ListView lv = (ListView) findViewById(R.id.msgList); lv.setAdapter(new MessageAdapter(getApplicationContext(), unreadMessages)); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent msgIntent = new Intent(Intent.ACTION_VIEW); msgIntent.setData(Uri.parse("content://mmssms/conversations/" + id)); startActivity(msgIntent); } });

lv.setOnLongClickListener(new OnLongClickListener() {

Dr.SMCE/Dept of CSE/2011-12

56

Mobile Inbox Search Tool

public boolean onLongClick(View arg0) { // TODO Create Context Menu to OPEN, MARK READ, DELETE return false; } }); } }

2. SearchByNumber.java
//This program is responsible for filtering out the messages based on sender number. package com.ist.activity; import java.util.HashMap; import java.util.List; import com.ist.pojo.Message; import com.ist.util.MessageAdapter; import com.ist.util.MessageUtil; import com.ist.util.literals.IApplicationLiterals; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.AdapterView; Dr.SMCE/Dept of CSE/2011-12 57

Mobile Inbox Search Tool import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener;

/** * * @author Sumit Anvekar * IST * com.ist.activity.ByNumberListActivity */ public class ByNumberListActivity extends Activity implements IApplicationLiterals{

private HashMap<String, Message> goldMap; List<Message> messages;

@SuppressWarnings("unchecked") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); goldMap = (HashMap<String, Message>) intent.getSerializableExtra("goldMap"); messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_NUMBER, null); setContentView(R.layout.searchbynumber); updateList();

TextView tv = (TextView) findViewById(R.id.keyWord_txt); Dr.SMCE/Dept of CSE/2011-12 58

Mobile Inbox Search Tool tv.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before, int count) { messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_NUMBER, s.toString()); updateList(); }

public void afterTextChanged(Editable s) { //TODO: Do Nothing }

public void beforeTextChanged(CharSequence s, int start, int count, int after) { //TODO: Do Nothing } }); }

private void updateList(){ ListView lv = (ListView) findViewById(R.id.msgList); lv.setAdapter(new MessageAdapter(getApplicationContext(), messages)); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent msgIntent = new Intent(Intent.ACTION_VIEW); Dr.SMCE/Dept of CSE/2011-12 59

Mobile Inbox Search Tool msgIntent.setData(Uri.parse("content://mmssms/conversations/" + id)); startActivity(msgIntent); } });

lv.setOnLongClickListener(new OnLongClickListener() {

public boolean onLongClick(View arg0) { // TODO Create Context Menu to OPEN, MARK READ, DELETE return false; } }); } }

3.SearchBySender.java
//This program is responsible for filtering out the messages based on sender name. package com.ist.activity; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.Editable; Dr.SMCE/Dept of CSE/2011-12 60

Mobile Inbox Search Tool import android.text.TextWatcher; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.TextView;

import com.ist.pojo.Message; import com.ist.util.MessageAdapter; import com.ist.util.MessageUtil; import com.ist.util.literals.IApplicationLiterals;

/** * * @author Sumit Anvekar * IST * com.ist.activity.ByNameListActivity */ public class ByNameListActivity extends Activity implements IApplicationLiterals{

private HashMap<String, Message> goldMap; List<Message> messages; Long selectedId; AlertDialog alert;

@SuppressWarnings("unchecked") Dr.SMCE/Dept of CSE/2011-12 61

Mobile Inbox Search Tool @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); goldMap = (HashMap<String, Message>) intent.getSerializableExtra("goldMap"); messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_NAME, null); setContentView(R.layout.searchbyname); updateList(); createDialog();

TextView tv = (TextView) findViewById(R.id.keyWord_txt); tv.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before, int count) { messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_NAME, s.toString()); updateList(); }

public void afterTextChanged(Editable s) { //TODO: Do Nothing }

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

Dr.SMCE/Dept of CSE/2011-12

62

Mobile Inbox Search Tool //TODO: Do Nothing } }); }

private void createDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Select an Action:"); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Long itemId = null; Long threadId = null;

switch (item) { case 0: Intent msgIntent = new Intent(Intent.ACTION_VIEW); msgIntent.setData(Uri.parse("content://mmssms/conversations/" + threadId)); startActivity(msgIntent); break;

case 1:

getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), "_id = ?", new String[]{"" + itemId}); break;

case 2: Dr.SMCE/Dept of CSE/2011-12 63

Mobile Inbox Search Tool

break; } } }); }

private void updateList(){ ListView lv = (ListView) findViewById(R.id.msgList); lv.setAdapter(new MessageAdapter(getApplicationContext(), messages)); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent msgIntent = new Intent(Intent.ACTION_VIEW); msgIntent.setData(Uri.parse("content://mmssms/conversations/" + id)); startActivity(msgIntent); } });

lv.setOnLongClickListener(new OnLongClickListener() {

public boolean onLongClick(View arg0) { // TODO Create Context Menu to OPEN, MARK READ, DELETE alert.show(); return false; Dr.SMCE/Dept of CSE/2011-12 64

Mobile Inbox Search Tool } }); registerForContextMenu(lv); } }

4.SearchByDate.java
//This program is responsible for filtering out the messages based on Date and Time or Only Date. package com.ist.activity; import java.util.Calendar; import java.util.HashMap; import java.util.List; import com.ist.pojo.Message; import com.ist.util.MessageAdapter; import com.ist.util.MessageUtil; import com.ist.util.literals.IApplicationLiterals; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.AdapterView; import android.widget.DatePicker; import android.widget.ListView; Dr.SMCE/Dept of CSE/2011-12 65

Mobile Inbox Search Tool import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener;

/** * * @author Sumit Anvekar * IST * com.ist.activity.ByDateListActivity */ public class ByDateListActivity extends Activity implements IApplicationLiterals{

private TextView fromDate; private TextView toDate; private int mYear; private int mMonth; private int mDay; private boolean isToDate; private HashMap<String, Message> goldMap; List<Message> messages;

@SuppressWarnings("unchecked") protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.searchbydate); fromDate = (TextView) findViewById(R.id.fromDate); toDate = (TextView) findViewById(R.id.toDate);

Dr.SMCE/Dept of CSE/2011-12

66

Mobile Inbox Search Tool // add a click listener to the button fromDate.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { isToDate = false; showDialog(DATE_DIALOG_ID); } }); toDate.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { isToDate = true; showDialog(DATE_DIALOG_ID); } });

// get the current date final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH);

Intent intent = getIntent(); goldMap = (HashMap<String, Message>) intent.getSerializableExtra("goldMap"); messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_DATE, fromDate.getText() + "~" + toDate.getText()); updateList(); }

Dr.SMCE/Dept of CSE/2011-12

67

Mobile Inbox Search Tool private void updateList(){ ListView lv = (ListView) findViewById(R.id.msgList); lv.setAdapter(new MessageAdapter(getApplicationContext(), messages)); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent msgIntent = new Intent(Intent.ACTION_VIEW); msgIntent.setData(Uri.parse("content://mmssms/conversations/" + id)); startActivity(msgIntent); } });

lv.setOnLongClickListener(new OnLongClickListener() {

public boolean onLongClick(View arg0) { // TODO Create Context Menu to OPEN, MARK READ, DELETE return false; } }); registerForContextMenu(lv); }

// updates the date in the TextView private void updateDisplay() { String textDate = new StringBuilder() Dr.SMCE/Dept of CSE/2011-12 68

Mobile Inbox Search Tool // Month is 0 based so add 1 .append(mMonth + 1).append("-") .append(mDay).append("-") .append(mYear).append(" ").toString(); if(isToDate){ toDate.setText(textDate); }else{ fromDate.setText(textDate); } messages = MessageUtil.getMessageList(goldMap, FORMAT_TYPE_DATE, fromDate.getText() + "~" + toDate.getText()); updateList(); }

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; updateDisplay(); } };

protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: Dr.SMCE/Dept of CSE/2011-12 69

Mobile Inbox Search Tool return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null; } }

Dr.SMCE/Dept of CSE/2011-12

70

Mobile Inbox Search Tool

APPENDIX-B SCREENSHOTS

Fig 1- Mobile Menu showing MIST

Fig 2- screen shots of all types of searches

Fig 3- Search By Sender without input

Fig 4- Search By Sender with input

Dr.SMCE/Dept of CSE/2011-12

71

Mobile Inbox Search Tool

Fig 5- Search By Number without input

Fig 6- Search By Number with input

Fig 7- DatePicker dialog

Dr.SMCE/Dept of CSE/2011-12

72

Mobile Inbox Search Tool

REFERENCES
[1] http://www.android.com - Android Official Webpage [2] http://code.google.com/android/ - Official Android Google Code Webpage [3] http://www.openhandsetalliance.com/ - Open Handset Alliance Webpage [4] http://www.androidwiki.com Android Wiki [5] http://googleblog.blogspot.com/ - Official Google Blog [6] http://en.wikipedia.org/wiki/Android_(mobile_phone_platform)Wikipedia Information [7] http://en.wikipedia.org/wiki/SQLite [8] http://en.wikipedia.org/wiki/WebKit [9] http://en.wikipedia.org/wiki/Eclipse_(software) [10] DiMarzio [11] Sams Teach Yourself ANDROID APPLICATION DEVELOPMENT of Pearson edition by Lauren Darcey and Shane conder A PROGRAMMERS GUIDE of Tata Mcgraw-Hill edition by Jerome (J.F)

Dr.SMCE/Dept of CSE/2011-12

73

You might also like