mist report final altered 2

Upload: vinay-kumar

Post on 05-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Mist Report Final Altered 2

    1/73

    Mobile Inbox Search Tool

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

    Chapter 1

    INTRODUCTION

    Mobile phones are one of the most ubiquitous electronic devices. Mobile Devices are multi-

    functional, 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.

  • 7/31/2019 Mist Report Final Altered 2

    2/73

    Mobile Inbox Search Tool

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

    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

  • 7/31/2019 Mist Report Final Altered 2

    3/73

    Mobile Inbox Search Tool

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

    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.

    http://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Open_Handset_Alliancehttp://en.wikipedia.org/wiki/Computer_hardwarehttp://en.wikipedia.org/wiki/Computer_softwarehttp://en.wikipedia.org/wiki/Telecommunicationhttp://en.wikipedia.org/wiki/Open_standardhttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/Free_software_licensehttp://en.wikipedia.org/wiki/Open_source_licensehttp://en.wikipedia.org/wiki/Smartphonehttp://en.wikipedia.org/wiki/Google_Voicehttp://en.wikipedia.org/wiki/Google_Goggleshttp://en.wikipedia.org/wiki/Google_Goggleshttp://en.wikipedia.org/wiki/Google_Voicehttp://en.wikipedia.org/wiki/Smartphonehttp://en.wikipedia.org/wiki/Open_source_licensehttp://en.wikipedia.org/wiki/Free_software_licensehttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/Open_standardhttp://en.wikipedia.org/wiki/Telecommunicationhttp://en.wikipedia.org/wiki/Computer_softwarehttp://en.wikipedia.org/wiki/Computer_hardwarehttp://en.wikipedia.org/wiki/Open_Handset_Alliancehttp://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Managed_code
  • 7/31/2019 Mist Report Final Altered 2

    4/73

    Mobile Inbox Search Tool

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

    Figure 2.1 shows an Android running in the Android SDK Emulator

    Company/developer Open Handset Alliance

    Programmed in C[1]

    Working state Current

    Source model Free and open source software

    Initial release 21 October 2008;

    Latest stable release Tablets:

    3.1(Honeycomb)[2]

    Phones:

    2.3.4 (Gingerbread) / 24 February 2011; 2 months

    ago[2]

    Supported platforms ARM, MIPS, Power Architecture, x86

    Kernel type Monolithic (modified Linux kernel)

    Default user interface Graphical

    License Apache 2.0 and GPLv2[3]

    Official website android.com

    http://en.wikipedia.org/wiki/Software_industryhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Open_Handset_Alliancehttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/Software_release_life_cyclehttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/MIPS_architecturehttp://en.wikipedia.org/wiki/Power_Architecturehttp://en.wikipedia.org/wiki/X86http://en.wikipedia.org/wiki/Kernel_%28computing%29http://en.wikipedia.org/wiki/Monolithic_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/Graphical_User_Interfacehttp://en.wikipedia.org/wiki/Software_licensehttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Android_%28operating_system%29#cite_note-Licenses-2http://en.wikipedia.org/wiki/Android_%28operating_system%29#cite_note-Licenses-2http://en.wikipedia.org/wiki/Websitehttp://www.android.com/http://www.android.com/http://en.wikipedia.org/wiki/Websitehttp://en.wikipedia.org/wiki/Android_%28operating_system%29#cite_note-Licenses-2http://en.wikipedia.org/wiki/GNU_General_Public_Licensehttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/Software_licensehttp://en.wikipedia.org/wiki/Graphical_User_Interfacehttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Monolithic_kernelhttp://en.wikipedia.org/wiki/Kernel_%28computing%29http://en.wikipedia.org/wiki/X86http://en.wikipedia.org/wiki/Power_Architecturehttp://en.wikipedia.org/wiki/MIPS_architecturehttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/Software_release_life_cyclehttp://en.wikipedia.org/wiki/Free_and_open_source_softwarehttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/Open_Handset_Alliancehttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Software_industry
  • 7/31/2019 Mist Report Final Altered 2

    5/73

    Mobile Inbox Search Tool

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

    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

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

    http://en.wikipedia.org/wiki/Googlehttp://en.wikipedia.org/wiki/List_of_Google_acquisitionshttp://en.wikipedia.org/wiki/Startup_companyhttp://en.wikipedia.org/wiki/Palo_Alto,_CAhttp://en.wikipedia.org/wiki/Palo_Alto,_CAhttp://en.wikipedia.org/wiki/Andy_Rubinhttp://en.wikipedia.org/wiki/Danger_%28company%29http://en.wikipedia.org/wiki/Rich_Minerhttp://en.wikipedia.org/w/index.php?title=Nick_Sears&action=edit&redlink=1http://en.wikipedia.org/wiki/T-Mobilehttp://en.wikipedia.org/wiki/WebTVhttp://en.wikipedia.org/wiki/Mobile_phonehttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Mobile_network_operatorhttp://en.wikipedia.org/wiki/BBChttp://en.wikipedia.org/wiki/The_Wall_Street_Journalhttp://en.wikipedia.org/wiki/The_Wall_Street_Journalhttp://en.wikipedia.org/wiki/Handset#Telephonyhttp://en.wikipedia.org/wiki/InformationWeekhttp://en.wikipedia.org/wiki/Evalueservehttp://en.wikipedia.org/wiki/Patenthttp://en.wikipedia.org/wiki/Patenthttp://en.wikipedia.org/wiki/Evalueservehttp://en.wikipedia.org/wiki/InformationWeekhttp://en.wikipedia.org/wiki/Handset#Telephonyhttp://en.wikipedia.org/wiki/The_Wall_Street_Journalhttp://en.wikipedia.org/wiki/The_Wall_Street_Journalhttp://en.wikipedia.org/wiki/BBChttp://en.wikipedia.org/wiki/Mobile_network_operatorhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Mobile_phonehttp://en.wikipedia.org/wiki/WebTVhttp://en.wikipedia.org/wiki/T-Mobilehttp://en.wikipedia.org/w/index.php?title=Nick_Sears&action=edit&redlink=1http://en.wikipedia.org/wiki/Rich_Minerhttp://en.wikipedia.org/wiki/Danger_%28company%29http://en.wikipedia.org/wiki/Andy_Rubinhttp://en.wikipedia.org/wiki/Palo_Alto,_CAhttp://en.wikipedia.org/wiki/Palo_Alto,_CAhttp://en.wikipedia.org/wiki/Startup_companyhttp://en.wikipedia.org/wiki/List_of_Google_acquisitionshttp://en.wikipedia.org/wiki/Google
  • 7/31/2019 Mist Report Final Altered 2

    6/73

    Mobile Inbox Search Tool

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

    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

    http://en.wikipedia.org/wiki/Open_Handset_Alliancehttp://en.wikipedia.org/wiki/Consortiumhttp://en.wikipedia.org/wiki/Texas_Instrumentshttp://en.wikipedia.org/wiki/Texas_Instrumentshttp://en.wikipedia.org/wiki/Broadcom_Corporationhttp://en.wikipedia.org/wiki/Googlehttp://en.wikipedia.org/wiki/High_Tech_Computer_Corporationhttp://en.wikipedia.org/wiki/Intel_Corporationhttp://en.wikipedia.org/wiki/LG_Grouphttp://en.wikipedia.org/wiki/Marvell_Technology_Grouphttp://en.wikipedia.org/wiki/Motorolahttp://en.wikipedia.org/wiki/Nvidiahttp://en.wikipedia.org/wiki/Qualcommhttp://en.wikipedia.org/wiki/Samsung_Electronicshttp://en.wikipedia.org/wiki/Sprint_Nextelhttp://en.wikipedia.org/wiki/T-Mobilehttp://en.wikipedia.org/wiki/Open_standardhttp://en.wikipedia.org/wiki/Platform_%28computing%29http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/ARM_Holdingshttp://en.wikipedia.org/wiki/Atheros_Communicationshttp://en.wikipedia.org/wiki/Asustekhttp://en.wikipedia.org/wiki/Garminhttp://en.wikipedia.org/wiki/Softbankhttp://en.wikipedia.org/wiki/Sony_Ericssonhttp://en.wikipedia.org/wiki/Toshibahttp://en.wikipedia.org/wiki/Vodafonehttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/Googleplexhttp://en.wikipedia.org/wiki/File:Android_and_cupcake.jpghttp://en.wikipedia.org/wiki/Googleplexhttp://en.wikipedia.org/wiki/Apache_Licensehttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Vodafonehttp://en.wikipedia.org/wiki/Toshibahttp://en.wikipedia.org/wiki/Sony_Ericssonhttp://en.wikipedia.org/wiki/Softbankhttp://en.wikipedia.org/wiki/Garminhttp://en.wikipedia.org/wiki/Asustekhttp://en.wikipedia.org/wiki/Atheros_Communicationshttp://en.wikipedia.org/wiki/ARM_Holdingshttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Platform_%28computing%29http://en.wikipedia.org/wiki/Open_standardhttp://en.wikipedia.org/wiki/T-Mobilehttp://en.wikipedia.org/wiki/Sprint_Nextelhttp://en.wikipedia.org/wiki/Samsung_Electronicshttp://en.wikipedia.org/wiki/Qualcommhttp://en.wikipedia.org/wiki/Nvidiahttp://en.wikipedia.org/wiki/Motorolahttp://en.wikipedia.org/wiki/Marvell_Technology_Grouphttp://en.wikipedia.org/wiki/LG_Grouphttp://en.wikipedia.org/wiki/Intel_Corporationhttp://en.wikipedia.org/wiki/High_Tech_Computer_Corporationhttp://en.wikipedia.org/wiki/Googlehttp://en.wikipedia.org/wiki/Broadcom_Corporationhttp://en.wikipedia.org/wiki/Texas_Instrumentshttp://en.wikipedia.org/wiki/Texas_Instrumentshttp://en.wikipedia.org/wiki/Consortiumhttp://en.wikipedia.org/wiki/Open_Handset_Alliance
  • 7/31/2019 Mist Report Final Altered 2

    7/73

    Mobile Inbox Search Tool

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

    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 The Database Software SQLite is used for data storage purposes

    Connectivity 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 textmessaging.

    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,

    http://en.wikipedia.org/wiki/Video_Graphics_Arrayhttp://en.wikipedia.org/wiki/2D_computer_graphicshttp://en.wikipedia.org/wiki/3D_computer_graphicshttp://en.wikipedia.org/wiki/OpenGL_EShttp://en.wikipedia.org/wiki/SQLitehttp://en.wikipedia.org/wiki/GSMhttp://en.wikipedia.org/wiki/Enhanced_Data_Rates_for_GSM_Evolutionhttp://en.wikipedia.org/wiki/Integrated_Digital_Enhanced_Networkhttp://en.wikipedia.org/wiki/Code_division_multiple_accesshttp://en.wikipedia.org/wiki/EV-DOhttp://en.wikipedia.org/wiki/Universal_Mobile_Telecommunications_Systemhttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/Wi-Fihttp://en.wikipedia.org/wiki/WiMAXhttp://en.wikipedia.org/wiki/SMShttp://en.wikipedia.org/wiki/Multimedia_Messaging_Servicehttp://en.wikipedia.org/wiki/Text_messaginghttp://en.wikipedia.org/wiki/Text_messaginghttp://en.wikipedia.org/wiki/WebKithttp://en.wikipedia.org/wiki/Application_frameworkhttp://en.wikipedia.org/wiki/Acid3http://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Dalvik_virtual_machinehttp://en.wikipedia.org/wiki/Dalvik_virtual_machinehttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/J2MEhttp://en.wikipedia.org/wiki/H.263http://en.wikipedia.org/wiki/H.264http://en.wikipedia.org/wiki/3GPhttp://en.wikipedia.org/wiki/MP4http://en.wikipedia.org/wiki/Container_format_%28digital%29http://en.wikipedia.org/wiki/MPEG-4_Part_2http://en.wikipedia.org/wiki/Adaptive_multi-rate_compressionhttp://en.wikipedia.org/wiki/AMR-WBhttp://en.wikipedia.org/wiki/Advanced_Audio_Codinghttp://en.wikipedia.org/wiki/HE-AAChttp://en.wikipedia.org/wiki/MP3http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interfacehttp://en.wikipedia.org/wiki/Vorbishttp://en.wikipedia.org/wiki/Vorbishttp://en.wikipedia.org/wiki/WAVhttp://en.wikipedia.org/wiki/JPEGhttp://en.wikipedia.org/wiki/Portable_Network_Graphicshttp://en.wikipedia.org/wiki/Graphics_Interchange_Formathttp://en.wikipedia.org/wiki/BMPhttp://en.wikipedia.org/wiki/Touchscreenhttp://en.wikipedia.org/wiki/Global_Positioning_Systemhttp://en.wikipedia.org/wiki/Accelerometerhttp://en.wikipedia.org/wiki/Magnetometerhttp://en.wikipedia.org/wiki/Bit_blithttp://en.wikipedia.org/wiki/Bit_blithttp://en.wikipedia.org/wiki/Magnetometerhttp://en.wikipedia.org/wiki/Accelerometerhttp://en.wikipedia.org/wiki/Global_Positioning_Systemhttp://en.wikipedia.org/wiki/Touchscreenhttp://en.wikipedia.org/wiki/BMPhttp://en.wikipedia.org/wiki/Graphics_Interchange_Formathttp://en.wikipedia.org/wiki/Portable_Network_Graphicshttp://en.wikipedia.org/wiki/JPEGhttp://en.wikipedia.org/wiki/WAVhttp://en.wikipedia.org/wiki/Vorbishttp://en.wikipedia.org/wiki/Vorbishttp://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interfacehttp://en.wikipedia.org/wiki/MP3http://en.wikipedia.org/wiki/HE-AAChttp://en.wikipedia.org/wiki/Advanced_Audio_Codinghttp://en.wikipedia.org/wiki/AMR-WBhttp://en.wikipedia.org/wiki/Adaptive_multi-rate_compressionhttp://en.wikipedia.org/wiki/MPEG-4_Part_2http://en.wikipedia.org/wiki/Container_format_%28digital%29http://en.wikipedia.org/wiki/MP4http://en.wikipedia.org/wiki/3GPhttp://en.wikipedia.org/wiki/H.264http://en.wikipedia.org/wiki/H.263http://en.wikipedia.org/wiki/J2MEhttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/Java_Virtual_Machinehttp://en.wikipedia.org/wiki/Dalvik_virtual_machinehttp://en.wikipedia.org/wiki/Dalvik_virtual_machinehttp://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Acid3http://en.wikipedia.org/wiki/Application_frameworkhttp://en.wikipedia.org/wiki/WebKithttp://en.wikipedia.org/wiki/Text_messaginghttp://en.wikipedia.org/wiki/Text_messaginghttp://en.wikipedia.org/wiki/Multimedia_Messaging_Servicehttp://en.wikipedia.org/wiki/SMShttp://en.wikipedia.org/wiki/WiMAXhttp://en.wikipedia.org/wiki/Wi-Fihttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/Universal_Mobile_Telecommunications_Systemhttp://en.wikipedia.org/wiki/EV-DOhttp://en.wikipedia.org/wiki/Code_division_multiple_accesshttp://en.wikipedia.org/wiki/Integrated_Digital_Enhanced_Networkhttp://en.wikipedia.org/wiki/Enhanced_Data_Rates_for_GSM_Evolutionhttp://en.wikipedia.org/wiki/GSMhttp://en.wikipedia.org/wiki/SQLitehttp://en.wikipedia.org/wiki/OpenGL_EShttp://en.wikipedia.org/wiki/3D_computer_graphicshttp://en.wikipedia.org/wiki/2D_computer_graphicshttp://en.wikipedia.org/wiki/Video_Graphics_Array
  • 7/31/2019 Mist Report Final Altered 2

    8/73

    Mobile Inbox Search Tool

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

    support scaling, pixel format conversion) and accelerated 3D graphics.

    Development

    environment

    Includes a device emulator, tools for debugging, memory and performance

    profiling, and a plug-in for the Eclipse IDE.

    Market 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 Support for sending files over Bluetooth was added in version 2.0.

    Video calling Android does not support video calling. However, it is possible if thephone 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 issue-

    http://en.wikipedia.org/wiki/Debugginghttp://en.wikipedia.org/wiki/Software_performance_analysishttp://en.wikipedia.org/wiki/Software_performance_analysishttp://en.wikipedia.org/wiki/Pluginhttp://en.wikipedia.org/wiki/Eclipse_%28software%29http://en.wikipedia.org/wiki/Android_Markethttp://en.wikipedia.org/wiki/Multi-touchhttp://en.wikipedia.org/wiki/HTC_Herohttp://en.wikipedia.org/wiki/Nexus_Onehttp://en.wikipedia.org/wiki/Motorola_Droidhttp://en.wikipedia.org/wiki/HTC_Evo_4Ghttp://en.wikipedia.org/wiki/HTC_Dreamhttp://en.wikipedia.org/wiki/Hack_%28technology%29http://en.wikipedia.org/wiki/Hack_%28technology%29http://en.wikipedia.org/wiki/HTC_Dreamhttp://en.wikipedia.org/wiki/HTC_Evo_4Ghttp://en.wikipedia.org/wiki/Motorola_Droidhttp://en.wikipedia.org/wiki/Nexus_Onehttp://en.wikipedia.org/wiki/HTC_Herohttp://en.wikipedia.org/wiki/Multi-touchhttp://en.wikipedia.org/wiki/Android_Markethttp://en.wikipedia.org/wiki/Eclipse_%28software%29http://en.wikipedia.org/wiki/Pluginhttp://en.wikipedia.org/wiki/Software_performance_analysishttp://en.wikipedia.org/wiki/Software_performance_analysishttp://en.wikipedia.org/wiki/Debugging
  • 7/31/2019 Mist Report Final Altered 2

    9/73

    Mobile Inbox Search Tool

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

    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

    http://en.wikipedia.org/wiki/Snake_%28video_game%29http://en.wikipedia.org/wiki/Android_Dev_Phonehttp://en.wikipedia.org/wiki/Android_Dev_Phonehttp://en.wikipedia.org/wiki/Subscriber_Identity_Modulehttp://en.wikipedia.org/wiki/Debuggerhttp://en.wikipedia.org/wiki/Software_libraryhttp://en.wikipedia.org/wiki/Emulatorhttp://en.wikipedia.org/wiki/QEMUhttp://en.wikipedia.org/wiki/X86http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/List_of_Linux_distributionshttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/Windows_XPhttp://en.wikipedia.org/wiki/Windows_XPhttp://en.wikipedia.org/wiki/Windows_Vistahttp://en.wikipedia.org/wiki/Java_Development_Kithttp://en.wikipedia.org/wiki/Apache_Anthttp://en.wikipedia.org/wiki/Python_%28programming_language%29http://en.wikipedia.org/wiki/Integrated_development_environmenthttp://en.wikipedia.org/wiki/Eclipse_%28software%29http://en.wikipedia.org/wiki/Command_linehttp://en.wikipedia.org/wiki/File:Android_mobile_phone_platform_early_device.jpghttp://en.wikipedia.org/wiki/Command_linehttp://en.wikipedia.org/wiki/Eclipse_%28software%29http://en.wikipedia.org/wiki/Integrated_development_environmenthttp://en.wikipedia.org/wiki/Python_%28programming_language%29http://en.wikipedia.org/wiki/Apache_Anthttp://en.wikipedia.org/wiki/Java_Development_Kithttp://en.wikipedia.org/wiki/Windows_Vistahttp://en.wikipedia.org/wiki/Windows_XPhttp://en.wikipedia.org/wiki/Windows_XPhttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/List_of_Linux_distributionshttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/X86http://en.wikipedia.org/wiki/QEMUhttp://en.wikipedia.org/wiki/Emulatorhttp://en.wikipedia.org/wiki/Software_libraryhttp://en.wikipedia.org/wiki/Debuggerhttp://en.wikipedia.org/wiki/Subscriber_Identity_Modulehttp://en.wikipedia.org/wiki/Android_Dev_Phonehttp://en.wikipedia.org/wiki/Android_Dev_Phonehttp://en.wikipedia.org/wiki/Snake_%28video_game%29
  • 7/31/2019 Mist Report Final Altered 2

    10/73

    Mobile Inbox Search Tool

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

    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 .apkformat 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 mostpromising 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.

    http://en.wikipedia.org/wiki/Software_development_kithttp://en.wikipedia.org/wiki/APK_%28file_format%29http://en.wikipedia.org/wiki/Android_Developer_Challengehttp://en.wikipedia.org/wiki/US_dollarhttp://en.wikipedia.org/wiki/Google_Voicehttp://en.wikipedia.org/wiki/Google_Goggleshttp://en.wikipedia.org/wiki/Google_Goggleshttp://en.wikipedia.org/wiki/Google_Voicehttp://en.wikipedia.org/wiki/US_dollarhttp://en.wikipedia.org/wiki/Android_Developer_Challengehttp://en.wikipedia.org/wiki/APK_%28file_format%29http://en.wikipedia.org/wiki/Software_development_kit
  • 7/31/2019 Mist Report Final Altered 2

    11/73

    Mobile Inbox Search Tool

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

    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, conductedby 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

    http://en.wikipedia.org/wiki/Shazam_%28service%29http://en.wikipedia.org/wiki/WeatherBughttp://en.wikipedia.org/wiki/MySpacehttp://en.wikipedia.org/wiki/Facebookhttp://en.wikipedia.org/wiki/Mozilla_Firefoxhttp://en.wikipedia.org/wiki/Mozillahttp://en.wikipedia.org/w/index.php?title=Jay_Sullivan&action=edit&redlink=1http://en.wikipedia.org/wiki/TechRadarhttp://en.wikipedia.org/wiki/Firefox_Mobilehttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/Native_codehttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/Framebufferhttp://en.wikipedia.org/wiki/Skia_Graphics_Enginehttp://en.wikipedia.org/wiki/Win32http://en.wikipedia.org/wiki/Cairo_%28graphics%29http://en.wikipedia.org/wiki/Google_Chromehttp://en.wikipedia.org/wiki/FLAChttp://en.wikipedia.org/wiki/FLAChttp://en.wikipedia.org/wiki/Google_Chromehttp://en.wikipedia.org/wiki/Cairo_%28graphics%29http://en.wikipedia.org/wiki/Win32http://en.wikipedia.org/wiki/Skia_Graphics_Enginehttp://en.wikipedia.org/wiki/Framebufferhttp://en.wikipedia.org/wiki/GNU_Compiler_Collectionhttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/Native_codehttp://en.wikipedia.org/wiki/ARM_architecturehttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/Firefox_Mobilehttp://en.wikipedia.org/wiki/TechRadarhttp://en.wikipedia.org/w/index.php?title=Jay_Sullivan&action=edit&redlink=1http://en.wikipedia.org/wiki/Mozillahttp://en.wikipedia.org/wiki/Mozilla_Firefoxhttp://en.wikipedia.org/wiki/Facebookhttp://en.wikipedia.org/wiki/MySpacehttp://en.wikipedia.org/wiki/WeatherBughttp://en.wikipedia.org/wiki/Shazam_%28service%29
  • 7/31/2019 Mist Report Final Altered 2

    12/73

    Mobile Inbox Search Tool

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

    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

    http://en.wikipedia.org/wiki/MicroSDhttp://en.wikipedia.org/wiki/Root_userhttp://en.wikipedia.org/wiki/CyanogenModhttp://en.wikipedia.org/wiki/Droid_%28font%29http://en.wikipedia.org/wiki/Ascender_Corporationhttp://en.wikipedia.org/wiki/Ascender_Corporationhttp://en.wikipedia.org/wiki/Droid_%28font%29http://en.wikipedia.org/wiki/CyanogenModhttp://en.wikipedia.org/wiki/Root_userhttp://en.wikipedia.org/wiki/MicroSD
  • 7/31/2019 Mist Report Final Altered 2

    13/73

    Mobile Inbox Search Tool

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

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

    http://en.wikipedia.org/wiki/Linuxhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/GNUhttp://en.wikipedia.org/wiki/GNU_C_Libraryhttp://en.wikipedia.org/wiki/GNU_C_Libraryhttp://en.wikipedia.org/wiki/GNUhttp://en.wikipedia.org/wiki/X_Window_Systemhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Linux
  • 7/31/2019 Mist Report Final Altered 2

    14/73

    Mobile Inbox Search Tool

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

    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:

    http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Branching_%28software%29http://en.wikipedia.org/wiki/Codebasehttp://en.wikipedia.org/wiki/Java_SEhttp://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29http://en.wikipedia.org/wiki/Dalvik_Virtual_Machinehttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/Video_callhttp://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Symbian_OShttp://en.wikipedia.org/wiki/Windows_Mobilehttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/XMPPhttp://en.wikipedia.org/wiki/Jingle_%28protocol%29http://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Apple_Inc.http://en.wikipedia.org/wiki/IPhone_OShttp://en.wikipedia.org/wiki/Google_Codehttp://en.wikipedia.org/wiki/Google_Codehttp://en.wikipedia.org/wiki/IPhone_OShttp://en.wikipedia.org/wiki/Apple_Inc.http://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Jingle_%28protocol%29http://en.wikipedia.org/wiki/XMPPhttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/Windows_Mobilehttp://en.wikipedia.org/wiki/Symbian_OShttp://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Video_callhttp://en.wikipedia.org/wiki/Bluetoothhttp://en.wikipedia.org/wiki/Dalvik_Virtual_Machinehttp://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29http://en.wikipedia.org/wiki/Java_MEhttp://en.wikipedia.org/wiki/Java_SEhttp://en.wikipedia.org/wiki/Codebasehttp://en.wikipedia.org/wiki/Branching_%28software%29http://en.wikipedia.org/wiki/Linux_kernelhttp://en.wikipedia.org/wiki/Linux_kernel
  • 7/31/2019 Mist Report Final Altered 2

    15/73

    Mobile Inbox Search Tool

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

    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 Bi-

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

    http://en.wikipedia.org/wiki/ICalendarhttp://en.wikipedia.org/wiki/CalDAVhttp://en.wikipedia.org/wiki/Google_Calendarhttp://en.wikipedia.org/wiki/Bi-directional_texthttp://en.wikipedia.org/wiki/Bi-directional_texthttp://en.wikipedia.org/wiki/Arabic_languagehttp://en.wikipedia.org/wiki/Persian_languagehttp://en.wikipedia.org/wiki/Hebrewhttp://en.wikipedia.org/wiki/GIFhttp://en.wikipedia.org/wiki/Self-signed_certificateshttp://en.wikipedia.org/wiki/SD_cardhttp://en.wikipedia.org/wiki/SD_cardhttp://en.wikipedia.org/wiki/Self-signed_certificateshttp://en.wikipedia.org/wiki/GIFhttp://en.wikipedia.org/wiki/Hebrewhttp://en.wikipedia.org/wiki/Persian_languagehttp://en.wikipedia.org/wiki/Arabic_languagehttp://en.wikipedia.org/wiki/Bi-directional_texthttp://en.wikipedia.org/wiki/Bi-directional_texthttp://en.wikipedia.org/wiki/Google_Calendarhttp://en.wikipedia.org/wiki/CalDAVhttp://en.wikipedia.org/wiki/ICalendar
  • 7/31/2019 Mist Report Final Altered 2

    16/73

    Mobile Inbox Search Tool

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

    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 non-

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

  • 7/31/2019 Mist Report Final Altered 2

    17/73

    Mobile Inbox Search Tool

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

    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 usefor designing of graphical user interface are described here.

    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.

    Parameter Values

    Operating System Android OS

    Language Java

  • 7/31/2019 Mist Report Final Altered 2

    18/73

    Mobile Inbox Search Tool

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

    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 Approximate size

    SDK Tools 35 MB

    SDK Platform-tools 6 MB

    Android platform (each) 150 MB

    SDK Add-on (each) 100 MB

    USB Driver for Windows 10 MB

    Samples (per platform) 10M

    Offline documentation 250 MB

  • 7/31/2019 Mist Report Final Altered 2

    19/73

    Mobile Inbox Search Tool

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

    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 Requirement Priority

    1 The city guide canshow map of a city.

    H

    2 The map can bezoomed in and out

    H

    3 Users can movearound the map

    H

    4 The city guide canshow users current

    position on the map

    H

    5 The city guide canshow the routebetween differentlocations on the map

    M

    6 The city guide can seeother users positions

    in the same group onthe map

    L

    7 The map can showpoints of interest(POIs)

    H

    8 The map only shows M

  • 7/31/2019 Mist Report Final Altered 2

    20/73

    Mobile Inbox Search Tool

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

    the points of interestusers are interested in

    Information Retrieval

    ID Requirement Priority9 The city guide can

    retrieve informationof points of interest

    H

    10 The city guide canretrieve informationof events, which willhappen right now.

    M

    11 The city guide canretrieve information

    about reviews ofpoints of interest

    M

    12 Users can select whatkind of POIs to showon map (i.e. differentclassifications. e.g.hotels, museums,restaurants events,and so on).

    M

    Communication

    ID Requirement Priority

    13 The city guide cansupportcommunicationbetween users in thesame group throughtelephone or shortmessage.

    M

    Review

    ID Requirement Priority

    14 Users can add reviewabout points ofinterest.

    M

    ID Requirement Priority

    15 The city guide cansupport eventreminder like lunchtime

    H

    Fig 4.1 Functional requirements

  • 7/31/2019 Mist Report Final Altered 2

    21/73

    Mobile Inbox Search Tool

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

    4.2 Non-Functional Requirements

    Speed of access: Messaging and many app in the android device provides us to accessfaster.

    Performance on most machines: The application created can be used in any of theandroid based mobiles with particular version.

    Ease of use: The application can be created so that it will be easy to work by thenormal user also. And also Android applications are written in java, developers willbe 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 quitereasonable.

    Its free if it is to be published in India.

  • 7/31/2019 Mist Report Final Altered 2

    22/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    23/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    24/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    25/73

    Mobile Inbox Search Tool

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

    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.

    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.

    Figure 5.3 Expansion of MIST Tool

    Search

    criteria

    & data Result

    Search

    criteria

    & dataUser

    1.0

    Mobile Inbox

    search ToolUser

    USERUSER

    1.0.1

    InputProcessing

    1.0.3

    View

    Management

    Result

    1.0.2

    Database

  • 7/31/2019 Mist Report Final Altered 2

    26/73

    Mobile Inbox Search Tool

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

    DFD level 2

    Level 2 DFD as shown in below figure. Level 2 elaborates Level 1 DFD in more detail.

    Figure 5.4 Expansion of DFD1

    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

    1.0.2.2

    SQLite Database

    USER

    1.0.1.1

    Search By

    Sender

    1.0.1.2

    Search By

    1.0.1.3

    Search By

    Date

    1.0.1.4

    Display

    unread

    messa es

    1.0.2.1

    Query

    handler

    1.0.2.3

    Cursor

    management

    1.0.3.1

    Cursor

    1.0.3.2

    Accessing

    cursor data

    1.0.3.3

    Array

    adapter

    1.0.3.4

    List View

    USER

  • 7/31/2019 Mist Report Final Altered 2

    27/73

    Mobile Inbox Search Tool

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

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

  • 7/31/2019 Mist Report Final Altered 2

    28/73

    Mobile Inbox Search Tool

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

    4. Display Unread messages modules

    Flow Chart

    Populate List

    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

    i/p Query

    i/p Module

    Query Contacts

    Databases

    Query SMS Database

    Display Sub-Module

    Array Adapter

    Delete Module

  • 7/31/2019 Mist Report Final Altered 2

    29/73

  • 7/31/2019 Mist Report Final Altered 2

    30/73

    Mobile Inbox Search Tool

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

    1. Input Query

    2. Query SMS database

    3. Display sub-module

    4. Interface/Exports

    Interface/ExportsThis 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.

  • 7/31/2019 Mist Report Final Altered 2

    31/73

    Mobile Inbox Search Tool

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

    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.

    ResponsibilitiesThis module provides a edit text box with TextWatcherlistener attached to it which calls a

    callback whenever the input in the edit text box changes.

  • 7/31/2019 Mist Report Final Altered 2

    32/73

    Mobile Inbox Search Tool

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

    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.

    DefinitionIt is responsible for processing the user input and displaying the results in ListView.

    ResponsibilitiesExtracts the user input entered in the edit text box and generates a suitable query, queries

    the database and displays the result.

    CompositionThis consists of four sub-modules which are as follows1. Input Query

    2. Query SMS database

    3. Display sub-module

    4. Interface/Exports

    3. Delete Module

    ClassificationThis 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

  • 7/31/2019 Mist Report Final Altered 2

    33/73

    Mobile Inbox Search Tool

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

    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

  • 7/31/2019 Mist Report Final Altered 2

    34/73

    Mobile Inbox Search Tool

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

    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

    ClassificationThis is a module of the subsystem Search by Date.

    Definition

    It is responsible for taking input from the user.

    ResponsibilitiesThis 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/InteractionsAndroid 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

    ClassificationThis is a module of the subsystem Search by Date.

    Definition

    It is responsible for processing the user input and displaying the results in ListView.

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

  • 7/31/2019 Mist Report Final Altered 2

    35/73

    Mobile Inbox Search Tool

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

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

    DefinitionThis 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

  • 7/31/2019 Mist Report Final Altered 2

    36/73

    Mobile Inbox Search Tool

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

    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

    ClassificationThis is a module of the subsystem Display Unread messages.

    DefinitionIt is responsible for displaying all the Unread messages in a customized ListView.

    ResponsibilitiesThis module displays allthe Unread messages with the sender name and a part of the message

    content in a customized ListView.

  • 7/31/2019 Mist Report Final Altered 2

    37/73

    Mobile Inbox Search Tool

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

    CompositionThis 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

  • 7/31/2019 Mist Report Final Altered 2

    38/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    39/73

    Mobile Inbox Search Tool

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

    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

  • 7/31/2019 Mist Report Final Altered 2

    40/73

    Mobile Inbox Search Tool

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

    5.6.2 Sequence diagrams

    Figure 5.7 Main Sequence diagram

  • 7/31/2019 Mist Report Final Altered 2

    41/73

    Mobile Inbox Search Tool

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

    Fig 5.8 Sequence diagram for searching

  • 7/31/2019 Mist Report Final Altered 2

    42/73

    Mobile Inbox Search Tool

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

    5.6.3 Activity diagram

    Figure 5.9 Activity diagram

  • 7/31/2019 Mist Report Final Altered 2

    43/73

    Mobile Inbox Search Tool

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

    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 byte-

    codes 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

  • 7/31/2019 Mist Report Final Altered 2

    44/73

    Mobile Inbox Search Tool

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

    java.beans: A few classes and interfaces for JavaBeans property changes

    java.io: File and stream I/O and etc.

    Not Supported PackagesThese 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.

  • 7/31/2019 Mist Report Final Altered 2

    45/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    46/73

    Mobile Inbox Search Tool

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

    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.

  • 7/31/2019 Mist Report Final Altered 2

    47/73

    Mobile Inbox Search Tool

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

    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