Bluetooth Android Application To Chat With Multi Users
Bluetooth Android Application To Chat With Multi Users
ACKNOWLEDGEMENT
First and foremost, we record our sincere thanks to Almighty GOD and our
beloved parents who provided us this chance during our tenure in college. We are
grateful to our college & Dr.PRINCIPAL NAME M.E, PhD,our beloved
principal.
We are also thankful to Mrs.HOD NAME B.Tech , Head of the Department
of Computer Science And Engineering for providing the necessary facilities during
the execution of our project work. We also thank for her valuable suggestions,
advice, guidance and constructive ideas in each and every step, which was indeed a
great need towards the successful completion of the project.
This project would not have been a success without my Internal guide. So, I
would extend my deep sense of gratitude to my Internal guide Ms. GUIDE NAME
B.Tech., for the effort she took in guiding me in all the stages of completion of my
project work..
We are very much indebted to our external guide Mr.XXXX B.E, project
guide of COMPANY NAME for relentlessly supporting us with technical
guidance throughout our project work .
PROJECT MEMBER1
PROJECT MEMEBER2
ABSTRACT
Bluetooth chatting is an innovative approach to the mobile world. This application shows use of
Bluetooth in terms of chatting. Means persons can chat via Bluetooth. The main midlet has just a
list which has two values server and client. By selecting one of these two values, the
corresponding instance is created. Midlet is used to initialize the connection. It does following
thing at here. First, it starts the application and search the Bluetooth device. It sends the signal to
the server class. Second, it can run, pause and stop the application.
Third, it shows alert using setAlert function on every changing. Server class goes active when it
go signal from the midlet class. It sends the hello world string with the string to the other
devices. Client class works to respond the other Bluetooth device server.
Bluechat is a bluetooth messaging. Bluechat allows you to see other Bluechat users around, ping
anyone of them, and create either private chat sessions or public messaging rooms via Bluetooth.
This application allows two Android devices to carry out two-way text chat over Bluetooth. Start
the application from the first screen; go to My Profile and set nickname, age, gender and
hobbies. This is an optional step to provide additional information to other chat buddies. Next,
select Look for Friends' option which attempts to discover other users in the area. Detected userprofiles are listed as selectable boxes. While a profile is selected, Options menu can be used to
view profile details, initiate a file transfer or to refresh list of detected friends.
ORGANIZATION PROFILE
COMPANY PROFILE:
Abile Technologies is a Leading Software solution provider situated in Coimbatore, which has
its client network spread across the geographical area. Abile Technologies with its expertise
group of management team provides diversified services to its clients. The services include
Application Development, Software application Migration, Web application Development,
Mobile applications, Software/Web Designing and Software Training.
At Abile Technologies we focus on delivering client satisfaction based on high end solutions
with innovations. Within a short span of time Abile Technologies has become a demanding
software solution provider in the IT market.
Marching Towards Innovation: At Abile Technologies On Each and Every step of action we
try to deliver a creative and innovative solution to our customer. We make creativity as a Habit
and Innovation as a Product.
Abile Technologies focus on providing open source based software solutions. We have a
dedicated team to work on enhancing the open source software model and to provide a cost
effective solution to our customer with open source tools.
Abile Technologies vision always has been marching towards Innovation. Our mission is to give
our customers and clients complete satisfaction in what we deliver.
What We Do
At Abile we deliver software, Web solutions ranging from simple web application to complex
internet/ desktop applications. We learn the exact requirements of our clients and work towards
delivering a comprehensive solution that literally satisfies our clients on all aspects. We not only
work for fulfill the requirements we take a further step to bring a innovation solutions to our
client problems.
Our Team
Abile Technologies Consists of dedicated and young dynamic Software Professionals skill on
various technologies and has gained a vast experience on developing, customizing and delivering
cost effective solutions to our clients.
Our Business Strategy:
We at Abile are committed to delivering maximum value to our clients helping them succeed in a
constantly changing and challenging biz world. Our fundamental company values stem from
understanding that our success is tied with success of our clients. Our key business principles
are:
Understand Clients Needs
We carefully study each customer particular case to understand the clients needs and objectives
and deliver a dependable solution. We make you aware of all available options and provide you
with a competent advice enabling you to take an informed business decision.
Partner with Clients
We are committed to becoming your long-term, trusted partner. Our priority is not only providing
professional services and solutions but becoming your IT vendor dedicated to meeting your
needs today and support your growing business needs tomorrow.
Earn Clients Trust and Confidence
Our aim is to earn customers trust and confidence through personal attention, passion for what
we do and commitment to long-lasting relationship. We will go an extra mile to deliver you a
measurable business value and help you adopt and succeed in the internet.
Software Training:
With a motive to provide an opportunity to the young IT aspirants, to learn the software
technologies and tools from the experienced and expert group of software professionals, Abile
Technologies initiate to provide software training to the IT aspirants.
At Abile Technologies we provide Industrial experience oriented training to the IT aspirants,
where the trainees can get real industry exposure, which will help the trainees not only to learn
the technologies but also become the experts of the technologies and tools.
LIST OF ABBREVIATIONS
ADO - Active data Objects
SQL - Standard Query Language
ASP - Active Server Page
IIS - Internet Information Services
CLR - Common Language Runtime
IL - Intermediate Language
XML - Extended Markup Language
ISP - Internet Service Provider
VLSI - Very Large Scale Integration
MSIDE - Microsoft Integrated Development Environment
NGWS - Next Generation Window Service
CHAPTER 1- INTRODUCTION
1.1
Introduction
The Android platform support for the Bluetooth network stack. It allows a device to wirelessly
exchange data with other Bluetooth devices. The new vitality to the mobile space has injected
because of the release of Android smart platform. Android is an operating system based on Linux
kernel. It is designed for the touch screen mobile devices. The user interface of Android is based
on direct manipulation. The Android system provides many Bluetooth APIs for developers to
call.[1] Bluetooth technology allows users to exchange voice and data transmission between two
or more devices. It is basically a wireless communication technology. Bluetooth technology is
reflected in the low price, easy to control and non-visual distance limitations. Bluetooth is
integrated into the android platform as an android mobile network communication module. Chat
room is used to connect the Android phones into a local area network. It helps to communicate
with each other.
By the help of the Bluetooth module, the Android phones can be divided into client and server.
Chat can be accomplished only after the division of client and server. It is used to initialize the
connection.
Bluetooth does not need a license around the globe for the working frequency band. In the
connection initialization phase, firstly, it starts the application and search the Bluetooth devices.
Second, it sends the signals to the server class. After this it can run, pause and stop the
application. Third, it shows alert using setAlert function on every changing. Server goes active
and sends the signals to other devices. Client class works to respond the other Bluetooth device
server. This allows a two-way chat over Bluetooth. No GSM or Wi-Fi connection required. In
addition to the person-to-person chat, chat rooms can be used to gather more than two persons at
a time. Bluetooth does not need a license around the globe for the working frequency band. In
the connection initialization phase, firstly, it starts the application and search the Bluetooth
devices. Second, it sends the signals to the server class. After this it can run, pause and stop the
application. Third, it shows alert using setAlert function on every changing. Server goes active
and sends the signals to other devices. Client class works to respond the other Bluetooth device
server. This allows a two-way chat over Bluetooth. No GSM or Wi-Fi connection required. In
addition to the person-to-person chat, chat rooms can be used to gather more than two persons at
a time.
1.2
Features
It first checks whether the Bluetooth of the devices is in ON/OFF mode.
If the Bluetooth of the devices is in OFF mode then it makes the request to enable the
Bluetooth.
Perform scanning of the devices which are in their range. iv. Display the list of all the
devices in the range.
Select the device with which one wants to do the chat.
If the device connects then set up the chat session.
1.3
Organization of Chapters
In Chapter 1 we introduce about the project concept and give an overview
idea about the project. In Chapter 2, we discuss about the project domain and the
detailed description of existing systems by analysis the literature survey of the
existing techniques. We also then presented about the techniques and methods of
our proposed methods. In our proposed method we also listed out the advantages
of using our proposed method. Then we presented the differences between the
existing system and proposed system as a tabular representation stating the
advantages of our proposed system. In Chapter 3, we made a system analysis of the
methods we propose. In Chapter 4, we listed the Hardware requirements and
Software Requirements of our project. In Chapter 5, we presented the modules and
their description. Then we also depicted the Use-case diagram of our project, then
we depicted Class diagram of our project. In Chapter 6, we concluded our proposal
and then in Chapter 7 we list out our references made for our proposed method.
The name Bluetooth and its logo are trademarked by the privately held trade association
named the Bluetooth Special Interest Group (SIG). The name Bluetooth was a code name
used by developers of this wireless technology. But as the time past name Bluetooth Stuck.
10th Centurys Danish king Harald Bluetooth had been influential in uniting Scandinavian
tribes in single kingdom after the war when the region was turn into parts. Now these days
Bluetooth implication of Bluetooth does the same reunite different industries such as
Computers with cell phones with single low power globally available short range radio
frequencies named as Bluetooth .
The concept behind Bluetooth had its origins in 1994 when Ericsson began researching the
idea of replacing cables connecting accessories to mobile phones and computers with
wireless links.
The actual history of Android starts when Google has had purchased and Android inc. in
2005. But the development did not start immediately. The actual progress on android
platform starts when 2007 Open Handsets Alliance has announced the Android as Open
Source platform and year later the Android SDK 1.0. In the same 2008 the G1 phone was
produced by HTC and was retailed within the T-Mobile carrier. In the next two years came
out 4 versions of Android. In 2010 there were at least 60 devices running android and it
becomes second after Blackberry the best spread mobile platform. And hence developing the
research and design of chatting application based on android Bluetooth.
EXISTING SYSTEM:
Chatting has largely been a PC-based addiction. But when it comes to chatting over cell phones,
the alternatives are costly like GPRS-based IMs or SMS chat. More than one user cant
communicate at a time.
DISADVANTAGES OF EXISTING SYSTEM:
One-One chat.
Unable to chat with community
Costly chat and one way chat
PROPOSED SYSTEM:
This is a Bluetooth messaging app you can connect and send messages to other android devices
and see Bluetooth compatible devices around you. No GSM or Wifi connection required all you
need is two Bluetooth compatible android devices in range of each other and you can text away.
To chat with a user, select it from the list and press Ping' to send a welcome message. The other
user may do the same. As the welcome message is displayed, use right or left soft key to accept
or reject the chat session. Once the session is accepted, the chat starts with colourful text to
differentiate users. In addition to this person-to-person chat, chat rooms can be used to gather a
number of buddies.
Everytime a new comer peer does its first "Look for friends" operation, the operation will
reorganize all initial communication and profile sharing stuff.
Every peer will have an updated list of profiles around automatically and the profile list
will be displayed to warn everyone about the new comer
SYSTEM STUDY
FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business
proposal is put forth with a very general plan for the project and some cost
estimates. During system analysis the feasibility study of the proposed system is to
be carried out. This is to ensure that the proposed system is not a burden to the
company. For feasibility analysis, some understanding of the major requirements
for the system is essential.
Three key considerations involved in the feasibility analysis are
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
SYSTEM MODELS
HARDWARE REQUIREMENT
CPU type
Intel Pentium 4
Clock speed
3.0 GHz
Ram size
: 512 MB
40 GB
Monitor type
Keyboard type
Mobile
: ANDROID MOBILE
internet keyboard
SOFTWARE REQUIREMENT
O p e r a t i n g S y s t e m : A n dr o i d
Language
Documentation
Ms-Office
MODULES:
Scanning for other Bluetooth devices
Querying the local Bluetooth adapter for paired Bluetooth devices
Establishing RFCOMM channels/sockets
Connecting to a remote device
Transferring data over Bluetooth
MODULES DESCRIPTION:
Scanning for other Bluetooth devices
This application begins searching for devices as soon as it is opened. Options menu appear only
after a successful or unsuccessful search is complete. Other options are new message alert vibrate or sound, and refresh rate setting ranging from 30 seconds to three minutes. Users can
manually refresh the list of users as well. Select a user from the list and use Options.
Querying the local Bluetooth adapter for paired Bluetooth devices
The BluetoothAdapter is the entry-point for all Bluetooth interaction. Using this, you can
discover other Bluetooth devices, query a list of bonded (paired) devices, instantiate a
BluetoothDevice using a known MAC address, and create a BluetoothServerSocket to listen for
communications from other devices. Use this to request a connection with a remote device
through a BluetoothSocket or query information about the device such as its name, address,
class, and bonding state. Represents the interface for a Bluetooth socket (similar to a TCP
Socket). This is the connection point that allows an application to exchange data with another
Bluetooth device via InputStream and OutputStream.
INPUT DESIGN
The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and
those steps are necessary to put transaction data in to a usable form for processing
can be achieved by inspecting the computer to read data from a written or printed
document or it can occur by having people keying the data directly into the system.
The design of input focuses on controlling the amount of input required,
controlling the errors, avoiding delay, avoiding extra steps and keeping the process
simple. The input is designed in such a way so that it provides security and ease of
use with retaining the privacy. Input Design considered the following things:
What data should be given as input?
How the data should be arranged or coded?
The dialog to guide the operating personnel in providing input.
Methods for preparing input validations and steps to follow when error
occur.
OBJECTIVES
1.Input Design is the process of converting a user-oriented description of the input
into a computer-based system. This design is important to avoid errors in the data
input process and show the correct direction to the management for getting correct
information from the computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be
free from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.
3.When the data is entered it will check for its validity. Data can be entered with
the help of screens. Appropriate messages are provided as when needed so that the
user
will not be in maize of instant. Thus the objective of input design is to create an
input layout that is easy to follow
OUTPUT DESIGN
A quality output is one, which meets the requirements of the end user and presents
the information clearly. In any system results of processing are communicated to
the users and to other system through outputs. In output design it is determined
how the information is to be displaced for immediate need and also the hard copy
output. It is the most important and direct source information to the user. Efficient
and intelligent output design improves the systems relationship to help user
decision-making.
1. Designing computer output should proceed in an organized, well thought out
manner; the right output must be developed while ensuring that each output
element is designed so that people will find the system can use easily and
effectively. When analysis design computer output, they should Identify the
specific output that is needed to meet the requirements.
2.Select methods for presenting information.
3.Create document, report, or other formats that contain information produced by
the system.
The output form of an information system should accomplish one or more of the
following objectives.
Convey information about past activities, current status or projections of the
Future.
Signal important events, opportunities, problems, or warnings.
Trigger an action.
Confirm an action.
SOFTWARE ENVIRONMENT
Android is a software stack for mobile devices that includes an operating system,
middleware and key applications. Google Inc. purchased the initial developer of
the software, Android Inc., in 2005.
Android's mobile operating system is based on the Linux kernel. Google and other
members of the Open Handset Alliance collaborated on Android's development and
release.
The Android Open Source Project (AOSP) is tasked with the maintenance and
further development of Android. The Android operating system is the world's bestselling Smartphone platform.[
The Android SDK provides the tools and APIs necessary to begin developing
applications Android platform using the Java programming language. Android
has a large community of developers writing applications ("apps") that extend
the functionality of the devices. There are currently over 250,000 apps available
for Android.
.Features
Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics
based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Libraries
Android includes a set of C/C++ libraries used by various components of the
Android system. These capabilities are exposed to developers through the Android
application framework. Some of the core libraries are listed below:
System C library - a BSD-derived implementation of the standard C system
library (libc), tuned for embedded Linux-based devices
format which is optimized for minimal memory footprint. The VM is registerbased, and runs classes compiled by a Java language compiler that have been
transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as
threading and low-level memory management.
Linux Kernel
Android relies on Linux version 2.6 for core system services such as security,
memory management, process management, network stack, and driver model. The
kernel also acts as an abstraction layer between the hardware and the rest of the
software stack.
The Linux kernel is an operating system kernel used by the Linux family of Unixlike operating systems. It is one of the most prominent examples of free and open
source software.
The Linux kernel is released under the GNU General Public License version 2
(GPLv2), (plus some firmware images with various licenses), and is developed by
contributors worldwide. Day-to-day development takes place on the Linux kernel
mailing list.
The Linux kernel was initially conceived and created by Finnish computer science
student Linus Torvalds in 1991. Linux rapidly accumulated developers and users
who adapted code from other free software projects for use with the new operating
system.
programmers.[10] Many Linux distributions have been released based upon the
Linux kernel.
The Linux kernel has extensive support for and runs on many virtual machine
architectures both as the host operating system and as a guest operating system.
The virtual machines usually emulate Intel x86 family of processors, though in a
few cases PowerPC or ARM processors are also emulated.
At Google, the team led by Rubin developed a mobile device platform powered by
the Linux kernel. Google marketed the platform to handset makers and carriers on
the premise of providing a flexible, upgradable system. Google had 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.[28][29][30]
Speculation about Google's intention to enter the mobile communications market
continued to build through 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. Some
speculated that as Google was defining technical specifications, it was showing
prototypes to cell phone manufacturers and network operators.
collaborated with HTC to launch its flagship[71] Android device, the Nexus One.
This was followed later in 2010 with the Samsung-made Nexus S.
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-tracking system. (Google announced an issue
tracker on 18 January 2008.) In December 2007, MergeLab 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. 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.
register as a broadcast receiver for certain events and can be started if such
an event occurs.
A Java Virtual Machine (JVM) enables a set of computer software programs
and data structures to use a virtual machine model for the execution of other
computer programs and scripts. The model used by a JVM accepts a form of
computer intermediate language commonly referred to as Java bytecode.
This language conceptually represents the instruction set of a stack-oriented,
capability architecture. Sun Microsystems states there are over 4.5 billion
JVM-enabled devices
A JVM can also execute bytecode compiled from programming languages
other than Java. For example, Ada source code can be compiled to execute
on a JVM. JVMs can also be released by other companies besides Oracle
(the developer of Java) JVMs using the "Java" trademark may be
developed by other companies as long as they adhere to the JVM
specification published by Oracle and to related contractual obligations.
Java was conceived with the concept of WORA: "write once, run
anywhere". This is done using the Java Virtual Machine. The JVM is the
environment in which java programs execute. It is software that is
implemented on non-virtual hardware and on standard operating systems.
JVM is a crucial component of the Java platform, and because JVMs are
available for many hardware and software platforms, Java can be both
middleware and a platform in its own right, [clarification needed] hence the trademark
write once, run anywhere. The use of the same bytecode for all platforms
allows Java to be described as "compile once, run anywhere", as opposed to
"write once, compile anywhere", which describes cross-platform compiled
to a highly idiosyncratic[clarification
needed]
architecture.
Here an overview of the steps you must follow to set up the Android SDK:
1. Prepare your development computer and ensure it meets the system
requirements.
2. Install the SDK starter package from the table above. (If you're on Windows,
download the installer for help with the initial setup.)
3. Install the ADT Plugin for Eclipse (if you'll be developing in Eclipse).
4. Add Android platforms and other components to your SDK.
5. Explore the contents of the Android SDK (optional).
To get started, download the appropriate package from the table above, then read
the guide to Installing the SDK.
Installing the SDK
Step 1. Preparing Your Development Computer
Before getting started with the Android SDK, take a moment to confirm that your
development computer meets the System Requirements. In particular, you might
need to install the JDK, if you don't have it already.
If you will be developing in Eclipse with the Android Development Tools (ADT)
Pluginthe recommended path if you are new to Androidmake sure that you
have a suitable version of Eclipse installed on your computer as described in the
System Requirements document. If you need to install Eclipse, you can download
it from this location:
The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version
of Eclipse is recommended.
Use the Eclipse update manager to install all available plugins for the Android
Development
Tools
(ADT)
from
the
URL
https://dl-
ssl.google.com/android/eclipse/ .
4
Configuration
In Eclipse open the Preferences dialog via Windows -> Preferences. Select Android
and maintain the installation path of the Android SDK.
Select Window -> Android SDK and AVD Manager from the menu.
Select available packages and select the latest version of the SDK.
Step 2. Downloading the SDK Starter Package
The SDK starter package is not a full development environmentit includes only
the core SDK Tools, which you can use to download the rest of the SDK
components (such as the latest Android platform).
If you haven't already, get the latest version of the SDK starter package from the
SDK download page.
If you downloaded a .zip or .tgz package (instead of the SDK installer), unpack it
to a safe location on your machine. By default, the SDK files are unpacked into a
directory named android-sdk-<machine-platform>.
If you downloaded the Windows installer (.exe file), run it now and it will check
whether the proper Java SE Development Kit (JDK) is installed (installing it, if
necessary), then install the SDK Tools into a default location (which you can
modify).
Make a note of the name and location of the SDK directory on your systemyou
will need to refer to the SDK directory later, when setting up the ADT plugin and
when using the SDK tools from the command line.
Android offers a custom plugin for the Eclipse IDE, called Android Development
Tools (ADT), that is designed to give you a powerful, integrated environment in
which to build Android applications. It extends the capabilites of Eclipse to let you
quickly set up new Android projects, create an application UI, debug your
applications using the Android SDK tools, and even export signed (or unsigned)
APKs in order to distribute your application. In general, developing in Eclipse with
ADT is a highly recommended approach and is the fastest way to get started with
Android.
If you'd like to use ADT for developing Android applications, install it now. Read
Installing the ADT Plugin for step-by-step installation instructions, then return here
to continue the last step in setting up your Android SDK.
If you prefer to work in a different IDE, you do not need to install Eclipse or ADT.
Instead, you can directly use the SDK tools to build and debug your application.
The Introduction to Android application development outlines the major steps that
you need to complete when developing in Eclipse or other IDEs.
The last step in setting up your SDK is using the Android SDK and AVD Manager
(a tool included in the SDK starter package) to download essential SDK
components into your development environment.
The SDK uses a modular structure that separates the major parts of the SDK
Android platform versions, add-ons, tools, samples, and documentationinto a set
of separately installable components. The SDK starter package, which you've
already downloaded, includes only a single component: the latest version of the
SDK Tools. To develop an Android application, you also need to download at least
one Android platform and the associated platform tools. You can add other
components and platforms as well, which is highly recommended.
If you used the Windows installer, when you complete the installation wizard, it
will launch the Android SDK and AVD Manager with a default set of platforms and
other components selected for you to install. Simply click Install to accept the
recommended set of components and install them. You can then skip to Step 5, but
we recommend you first read the section about the Available Components to better
understand the components available from the Android SDK and AVD Manager.
You can launch the Android SDK and AVD Manager in one of the following ways:
From within Eclipse, select Window > Android SDK and AVD Manager.
On Windows, double-click the SDK Manager.exe file at the root of the
Android SDK directory.
On Mac or Linux, open a terminal and navigate to the tools/ directory in the
Android SDK, then execute:
To download components, use the graphical UI of the Android SDK and AVD
Manager to browse the SDK repository and select new or updated components (see
figure 1). The Android SDK and AVD Manager installs the selected components in
your SDK environment. For information about which components you should
download, see Recommended Components.
The Android Repository offers these types of components:
SDK Tools Contains tools for debugging and testing your application and
other utility tools. These tools are installed with the Android SDK starter
package and receive periodic updates. You can access these tools in the
<sdk>/tools/ directory of your SDK. To learn more about them, see SDK
Tools in the developer guide.
SDK Platform-tools Contains platform-dependent tools for developing
and debugging your application. These tools support the latest features of the
Android platform and are typically updated only when a new platform
becomes available. You can access these tools in the <sdk>/platform-tools/
directory. To learn more about them, see Platform Tools in the developer
guide.
Android platforms An SDK platform is available for every production
Android platform deployable to Android-powered devices. Each SDK
platform component includes a fully compliant Android library, system
image, sample code, and emulator skins. To learn more about a specific
platform, see the list of platforms that appears under the section
"Downloadable SDK Components" on the left part of this page.
USB Driver for Windows (Windows only) Contains driver files that you
can install on your Windows computer, so that you can run and debug your
applications on an actual device. You do not need the USB driver unless you
plan to debug your application on an actual Android-powered device. If you
develop on Mac OS X or Linux, you do not need a special driver to debug
your application on an Android-powered device. See Using Hardware
Devices for more information about developing on a real device.
Samples Contains the sample code and apps available for each Android
development platform. If you are just getting started with Android
development, make sure to download the samples to your SDK.
Documentation Contains a local copy of the latest multiversion
documentation for the Android framework API.
The Third party Add-ons provide components that allow you to create a
development environment using a specific Android external library (such as the
Google Maps library) or a customized (but fully compliant) Android system image.
You can add additional Add-on repositories by clicking Add Add-on Site.
ECLIPSE:
Eclipse is an open source community whose projects are focused on building an
extensible development platform, runtimes and application frameworks for
building, deploying and managing software across the entire software lifecycle.
Many people know us, and hopefully love us, as a Java IDE but Eclipse is much
written mostly in Java and can be used to develop applications in Java and, by
means of various plug-ins, other programming languages including Ada, C, C++,
COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala,
Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT
for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP.
ARCHITECTURE:
Eclipse employs plug-ins in order to provide all of its functionality on top of (and
including) the runtime system, in contrast to some other applications where
functionality is typically hard coded. The runtime system of Eclipse is based on
Equinox, an OSGi standard compliant implementation.
This plug-in mechanism is a lightweight software componentry framework. In
addition to allowing Eclipse to be extended using other programming languages
such as C and Python, the plug-in framework allows Eclipse to work with
typesetting languages like LaTeX,[2] networking applications such as telnet, and
database management systems. The plug-in architecture supports writing any
desired extension to the environment, such as for configuration management. Java
and CVS support is provided in the Eclipse SDK, with Subversion support
provided by third-party plug-ins.
With the exception of a small run-time kernel, everything in Eclipse is a plug-in.
This means that every plug-in developed integrates with Eclipse in exactly the
same way as other plug-ins; in this respect, all features are "created equal". Eclipse
provides plug-ins for a wide variety of features, some of which are through third
parties using both free and commercial models. Examples of plug-ins include a
UML plug-in for Sequence and other UML diagrams, a plug-in for DB Explorer,
and many others.
The Eclipse SDK includes the Eclipse Java Development Tools (JDT), offering an
IDE with a built-in incremental Java compiler and a full model of the Java source
files. This allows for advanced refactoring techniques and code analysis. The IDE
also makes use of a workspace, in this case a set of metadata over a flat filespace
allowing external file modifications as long as the corresponding workspace
"resource" is refreshed afterwards.
Eclipse implements widgets through a widget toolkit for Java called SWT, unlike
most Java applications, which use the Java standard Abstract Window Toolkit
(AWT) or Swing. Eclipse's user interface also uses an intermediate GUI layer
called JFace, which simplifies the construction of applications based on SWT.
3
History
Eclipse Platform
The Eclipse Platform provides the core frameworks and services upon which all
plug-in extensions are created. It also provides the runtime in which plug-ins are
loaded, integrated, and executed. The primary purpose of the Platform is to enable
other tool developers to easily build and deliver integrated tools.
Features include:
Supports the construction of a variety of tools for application development
both
GUI
and
non-GUI-based
application
development
environments
Java Development Tools (JDT)
The JDT project provides the tool plug-ins that implement a Java IDE supporting
the development of any Java application, including Eclipse plug-ins. It adds a Java
project nature and Java perspective to the Eclipse Workbench as well as a number
of views, editors, wizards, builders, and code merging and refactoring tools. The
JDT project allows Eclipse to be a development environment for itself.
Features include:
Java projects with source files arranged in package directories
Editing with keyword and syntax coloring, outline showing declaration
structure
Code formatter
Refactoring
Search
Compare
Compile - JCK-compliant Java compiler
Run Java programs in a separate target Java virtual machine
Debug programs with JPDA-compliant Java virtual machine
Android Source Code
The following step is optional.
During Android development it is very useful to have the Android source code
available as Android uses a lot of defaults.
Haris Peco maintains plugins with provides access to the Android Source code.
Use the Eclipse update manager to install two of his plugins.
5
The Android tools include an emulator. This emulator behaves like a real Android
device in most cases and allow you to test your application without having a real
device. You can emulate one or several devices with different configurations. Each
configuration is defined via an "Android Virtual Device" (AVD).
To define an AVD press the device manager button, press "New" and maintain the
following.
Press "Create AVD".This will create the device and display it under the "Virtual
devices". To test if your setup is correct, select your device and press "Start".
4. Error handling
Things are not always working as they should be. Several users report that get the
following errors:
1. Project ... is missing required source folder: 'gen'
2. The project could not be built until build path errors are resolved.
3. Unable to open class file R.java.
To solve this error select from the menu Project -> Clean.
If you having problems with your own code you can use the LogCat viewer as
described in LogCat Viewer .
SYSTEM DESIGN:
SYSTEM ARCHITECTURE:
by this system.
2. The data flow diagram (DFD) is one of the most important modeling tools. It
is used to model the system components. These components are the system
process, the data used by the process, an external entity that interacts with
the system and the information flows in the system.
3. DFD shows how the information moves through the system and how it is
modified by a series of transformations. It is a graphical technique that
depicts information flow and the transformations that are applied as data
moves from input to output.
4. DFD is also known as bubble chart. A DFD may be used to represent a
system at any level of abstraction. DFD may be partitioned into levels that
represent increasing information flow and functional detail.
Level 0:
UML DIAGRAMS
UML stands for Unified Modeling Language. UML is a standardized
general-purpose modeling language in the field of object-oriented software
engineering. The standard is managed, and was created by, the Object Management
Group.
The goal is for UML to become a common language for creating models of
object oriented computer software. In its current form UML is comprised of two
major components: a Meta-model and a notation. In the future, some form of
method or process may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying,
Visualization, Constructing and documenting the artifacts of software system, as
well as for business modeling and other non-software systems.
The UML represents a collection of best engineering practices that have
proven successful in the modeling of large and complex systems.
The UML is a very important part of developing objects oriented software
and the software development process. The UML uses mostly graphical notations
to express the design of software projects.
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that
they can develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core
concepts.
3. Be independent of particular programming languages and development
process.
4. Provide a formal basis for understanding the modeling language.
CLASS DIAGRAM:
In software engineering, a class diagram in the Unified Modeling Language
(UML) is a type of static structure diagram that describes the structure of a system
by showing the system's classes, their attributes, operations (or methods), and the
relationships among the classes. It explains which class contains information.
SEQUENCE DIAGRAM:
A sequence diagram in Unified Modeling Language (UML) is a kind of interaction
diagram that shows how processes operate with one another and in what order. It is
a construct of a Message Sequence Chart. Sequence diagrams are sometimes called
event diagrams, event scenarios, and timing diagrams.
SYSTEM TESTING
The purpose of testing is to discover errors. Testing is the process of trying
to discover every conceivable fault or weakness in a work product. It provides a
way to check the functionality of components, sub assemblies, assemblies and/or a
finished product It is the process of exercising software with the intent of ensuring
that the
Software system meets its requirements and user expectations and does not fail in
an unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.
TYPES OF TESTS
Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is the
testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing, that
relies on knowledge of its construction and is invasive. Unit tests perform basic
tests at component level and test a specific business process, application, and/or
system configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined
inputs and expected results.
Integration testing
Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system
documentation, and user manuals.
Functional testing is centered on the following items:
Valid Input
Invalid Input
Functions
Output
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.
White Box Testing
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least
its purpose. It is purpose. It is used to test areas that cannot be reached from a black
box level.
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document, such
as specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black
box .you cannot see into it. The test provides inputs and responds to outputs
without considering how the software works.
6.1 Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
Test objectives
All field entries must work properly.
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
Features to be tested
Verify that the entries are of the correct format
No duplicate entries should be allowed
All links should take the user to the correct page.
6.2 Integration Testing
Software integration testing is the incremental integration testing of two or
more integrated software components on a single platform to produce failures
caused by interface defects.
The task of the integration test is to check that components or software
applications, e.g. components in a software system or one step up software
applications at the company level interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
6.3 Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires
significant participation by the end user. It also ensures that the system meets the
functional requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
CHAPTER 6- CONCLUSION
Bluetooth chatting is an innovative approach to the mobile world and the project is
implemented successfully. A proper analysis of positive points and constraints of the
system it is inferred that the system is working as per the objectives of the project.
Installation is a hassle-free task. It requires internet connection for one time to install the
application and then it is on its own. The user interface is user friendly and does not
require specialized training or skills to operate it.
The methodology section of this technical report describes the implementation of this system
in detail. The data structures used in this system need to be tuned in to get a more efficient
system. We hope that the implementation algorithm and the data structure described here
will aid the developers' community in near future.
SCREEN SHOOTS:
CHAPTER 7- REFERENCES
[1]
Wikipedia,
Samsung
galaxy
s4
specifications,
[13] E. Trevisani and A. Vitaletti, Cell-id location technique, limits and benefits:
an experimental study, in Mobile Computing Systems and Applications, 2004.
WMCSA 2004. Sixth IEEE Workshop on, 2004, pp. 5160.
[14] J. LaMance, J. DeSalas, and J. Jarvinen, agps: A low-infrastructure
approach,
http://www.gpsworld.com/
innovation-assisted-gps-a-low-
14.
[46] W. Enck, Defending users against smartphone apps: techniques and future
directions, in Proceedings of the 7th international conference on Information
Systems Security, ser. ICISS11. Springer-Verlag, 2011, pp. 4970.
[47] W. Enck, D. Octeau, P. McDaniel, and S. Chaudhuri, A study of android
application security, in Proceedings of the 20th USENIX conference on Security,
ser. SEC11. Berkeley, CA, USA: USENIX Association, 2011, pp. 2121.
[48] J. Ligatti, B. Rickey, and N. Saigal, Lopsil: A location-based policyspecification language.
[49] M. Nauman, S. Khan, and X. Zhang, Apex: extending android permission
model and enforcement with user-defined runtime constraints, in Proceedings of
the 5th ACM Symposium on Information, Computer and Communications
Security, ser. ASIACCS 10. New York, NY, USA: ACM, 2010, pp. 328332.
[50] Y. Zhou, X. Zhang, X. Jiang, and V. W. Freeh, Taming information-stealing
smartphone applications (on android), in Proceedings of the 4th international
conference on Trust and trustworthy computing, ser. TRUST11. Berlin,
Heidelberg: Springer-Verlag, 2011, pp. 93107.
[51] S. Bugiel, S. Heuser, and A.-R. Sadeghi, Flexible and fine-grained mandatory
access control on android for diverse security and privacy policies, in 22nd
USENIX Security Symposium (USENIX Security 13). USENIX, Aug. 2013.