This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Abstract- Mobile devices and embedded devices need more processing power but energy consumption should be less to save battery power. There are many ways to send sms (short messaging service) from gmail inbox to the mobile phone. This project is about sending sms from mobile to the gmail inbox. Suppose a person has left his mobile in home while going to the office. Whenever sms comes to the mobile it is sent to his gmail inbox. One of the advantage of this is all sms can be saved in the gmail inbox, so that sms present in the mobile phone can be deleted after reading. All the messages which comes to mobile will be stord in the gmail inbox. Whenever a call comes to mobile, it checks whether anyone is picking the call. If no one picks then sms is sent to gmail inbox saying you have a missed call (along with the number).
Keywords-sms(short messaging service),J2ME, iphone, android, sms etc.
Today's mobile devices are multi-functional devices capable of hosting a broad range of applications for both business and consumer use. PDAs and the ever-growing category of smart phones allow people to access the Internet for e-mail, instant messaging, text messaging and Web browsing, as well as work documents, contact lists and more. Mobile devices are often seen as an extension to our own PC.Â
Android has emerged as a new mobile development platform, building on past successes while avoiding past failures of other platforms. Designed to empower mobile software developers to write innovative mobile applications, Android is open source platform, with no up-front fees, and developers enjoy many benefits over other competing platforms. Touted as an innovative and open platform, Android is being positioned to address the growing needs of the mobile marketplace. To understand what makes Android so compelling, we must examine how mobile software development has evolved over time.
OVERVIEW OF J2ME
Sun Microsystems announced a new edition of the Java 2 platform: Java 2 Micro Edition (J2ME). The purpose of Micro Edition is to enable java applications to run on the small computing devices. Java virtual machine could run simple java programs on palm devices.
J2ME is comprised of a set of configurations, profiles, and standard extensions that can be used to build complete Java runtime environments that meet the requirements of a broad range of devices on the market. Connected Limited Device Configuration (CLDC) outlines the most basic set of libraries and virtual machine features that must be present in each implementation of a Java 2 Platform, Micro Edition.
Sun provides the CLDC reference implementation (RI), which includes the K virtual machine (KVM) via the Sun Community Source License (SCSL) program. Sun also offers the CLDC HotSpot Implementation.
In order to provide a complete runtime environment targeted at specific device categories, configurations must be combined with a set of higher level APIs, or profiles. The Mobile Information Device Profile (MIDP), which is designed for mobile phones is an example of a profile for CLDC. A virtual machine requires a set of core libraries to run applications.
Since J2ME is used as the core language to develop the project, a review of J2ME is required. The Micro edition has limited API than the standard edition with some optional and extra packages that could work only on such a limited resource handheld device.
J2ME is Sun's version of Java aimed at machines with limited hardware resources such as PDA's, cell phones, and other consumer electronic and embedded devices. J2ME is aimed at machines with as little as 128KB of RAM and with processors a lot less powerful than those used on typical desktop and server machines.
J2ME actually consists of a set of profiles. Each profile is defined for a particular type of devices like cell phones, PDA's, microwave ovens, etc and consists of a minimum set of a class libraries required for the particular type of device and a specification of a java virtual machine required to support the device.
JAVA VIRTUAL MACHINE
The Java 2 Standard Edition (J2SE) platform currently supports two different virtual machines: classic virtual machine and newer hotspot virtual machine. Swapping out the classic virtual machine and replacing it with a hotspot virtual machine gives J2SE programs an immediate and measurable performance boost without making any changes to the runtime environment.
If a new virtual machine can be designed from the ground up in order to boost the performance, why not design a virtual machine to run in a constrained environment. That is exactly what j2me does with the KVM. The KVM is completely new implementation of java virtual machine. Micro Edition is more than KVM.
The virtual machine specified in any profile is not necessarily the same as the virtual machine used in Java 2 Standard Edition (J2SE) and Java 2 Enterprise Edition (J2EE). For instance, the virtual machine used on java enabled mobile phones is the K - Virtual machine(VM).
The modular design of the j2me architecture enables an application to be scaled based on constraints of small computing device. J2ME architecture consists of layers located above the native operating system, collectively referred to as the Connected Limited Device Configuration (CLDC). The CLDC which is installed on the top of the operating system, forms the run time environment for small computing devices.
The j2me architecture comprises three software layers. The first layer is the configuration layer that includes the Java Virtual Machine (JVM), which directly interacts with the native operating system. The configuration layer also handles the interaction between the profile and the JVM.
The second layer is the profile layer, which consists of minimum set of application programming interfaces (APIs) for the small computing devices. The third layer is the mobile information device profile (MIDP). The MIDP layer contains java APIs for user network connections, persistence storage, and the user interface. It also has access to CLDC libraries and MIDP libraries.
An iPhone can function as a video camera, camera phone with text messaging and visual voicemail, a portable media player, and an Internet client with e-mail, web browsing, and both Wi-Fi and 3G connectivity.
iPhone created a big buzz in the mobile phone and its application space with the first fully touch screen enabled mobile phone.Â Touch-screen of iPhone and accelerometer provide you the fascinating experience when you hold the phone.Â Again iPhone also started a revolutionary approach by introducing its SDK development in open market and suppressed its hackersÂ and make it available across many iPhone users though a common platform called "App Store".
At a high level, the process for creating an iPhone mobile application OR iPhone web apps is similar to that for creating a Mac OS X application. Both use the same tools and many of the same basic libraries. Despite the similarities, there are also significant differences.
Unlike desktop computer; iPhone has a different purpose therefore, it requires a very different design approach. The iPhone mobile application developers at IndiaNIC takes an approach that needs to take advantage of the strengths of iPhone OS and forego features that might be irrelevant or impractical in a mobile environment. We consider the smaller size of the iPhone and iPod touch screens therefore your application's user interface managed in well organized manners and always focused on the information you need the most .
ANDROID APPLICATION DEVELOPMENT
Android is predicted to be the up-coming technology in the mobile based web world. Today, Android Application Development is making it's place as a competitor in the mobile application technology. Features of Android include easy to use, it is open source and has great visibility for the developers. Android is the name for Google's new Linux based mobile platform which includes software stack for mobile devices. The beta version of Android SDK provides tools and APIs necessary to begin developing custom applications using JAVA Programming language (J2ME).
Android is a Linux based open source operating system which has JAVA library (similar to SE). And it is a robot or synthetic organism. There is a general thought that Google owns Android. But not just Google, there is Open Handset Allianceâ„¢, a group of 65 technology and mobile companies including mobile operators, semiconductor companies, handset manufacturers; software companies commercialization companies who own Android.
OpenXcell offers Android Application development for Android Platform. Android provides Java Language support for developers so that mobile application developers can build third party applications on Java which can run on Android Platform. Openxcell approaches Android Application Development in a proactive, high-caliber manner. Utilizing the complex Android SDK platform, our highly qualified Android application developers explore the unlimited possibilities of Android through its comprehensive set of Android Phone Applications Development tools.
Openxcell technolabs has been into mobile application development for all major platforms and hence it led us into the development of Android Application Development since the day the SDK was launched. We have a dedicated Android application developers team who has the expertise on Android and they cater to clients for building custom application on Android. We have vast experience in creating android application / mobile applications, testing in a simulator and porting to mobile devices.
Android is one of the most useful device for the Android Application Developers to create powerful and innovative android applications very easily and quickly. OpenXcell also offers you android developers on hire and also Professional Android Application Development team who will offer cost effective solution for making better Android application development and Android game development.
MIDP (Mobile Information Device Profile) applications are called MIDlets, this naming is given by applets and servlets. Writing MIDlets is relatively easy for a moderately experienced Java programmer. The programming language is still Java. Furthermore, many of the fundamental APIs from java.lang and java.io are basically the same in the MIDP as they are in J2SE. We need to learn new APIs (in the javax.microedition hierarchy).
A MIDlet device needs to be able to control an application:start it,stop it, and let it run at appropriate times. In practice, this means that a MIDlet is created as a subclass of the MIDlet base class so that it can be controlled by the application manager.
The actual development process, however, is a little more complicated for MIDlets than it is for J2SE applications. Beyond a basic compile-and-run cycle, MIDlets require some additional tweaking and packaging. The complete build cycle goes like this: edit, source code, compile, preverify, package, test or deploy [ref 1].
MIDlets are developed on regular desktop computers, although the MIDlet itself is designed to run on a small device. To develop MIDlets, you'll need some kind of development kit, either from Sun Microsystems or another vendor. Remember, MIDP is only a specification; vendors are free to develop their own implementations. The world is full of MIDlet development tools if you know where to look. Furthermore, many of these tools are freely available[ref 2 ]. The J2ME Wireless Toolkit (or J2MEWTK) includes a GUI tool that automates some of the tedious details of building and packaging MIDlets, providing a simple path feom source code to running MIDlets.
CREATING SOURCE CODE
COMPILING A MIDlet
Writing MIDlets is an example of cross-compiling, where you compile code on one platform and run it on another. In this case, you'll be compiling a MIDlet using J2SE on your desktop computer. The MIDlet itself will run on a mobile phone, pager, or other mobile information device that supports MIDP.
The J2ME Wireless Toolkit takes care of the details as long as you put the source code in the right directory.
Start the toolkit, called KToolbar
Choose New Project from the toolbar to create a new project
When the J2ME Wireless Toolkit asks you for the name of the project and the MIDlet class name, use "Jargoneer" for both
Click the Create Project button and then the OK button to dismiss the project settings window
The J2ME Wireless Toolkit represents projects as subdirectories of its apps directory. The following shows the contents of the MIDlet directory after the new project is created:
<J2ME Wireless Toolkit directory>
Save the source code as MIDlet.java in the project's src directory. You can simply click the Build button in the J2ME Wireless Toolkit toolbar to compile the open project.
Behind the scenes, the J2ME Wireless Toolkit uses J2SE's compiler. Normally, when you're compiling J2SE source code, the CLASSPATH environment variable points to all the classes that your source code needs to know about. When you use javac to compile a file, there are some implied APIs that get included, like the classes in java.lang.
2). PREVERIFYING CLASS FILES
Now comes an entirely new step in building your program, preverifying. Because the memory on small devices is so scarce, MIDP (actually, CLDC, or Connected Limited Device Configuration) specifies that bytecode verification be split into two pieces. Somewhere off the device, a preverify step is performed. The device itself is only required to do a lightweight second verification step before loading classes.
If you are using the J2ME Wireless Toolkit, you don't have to worry about preverifying classfiles, and you may not even notice that it's happening when you click the Build button.
SUN'S J2ME WIRELESS TOOLKIT EMULATORS
The J2ME Wireless Toolkit includes several different emulators that you can use to test your applications. When you click the Run button in the J2ME Wireless Toolkit, your application is launched in the currently selected emulator .
4). RUNNING MIDlets
Sun's MIDP reference implementation includes an emulator named midp. It emulates an imaginary MID, a mobile telephone with some standard keys and a 182-by-210-pixel screen. The J2ME Wireless Toolkit includes a similar emulator, as well as several others.
MIDlets move from state to state in the lifecycle. First one is Start -acquire resources and start executing, second one is Pause- release resources and wait, third one is Destroyed- release all resources and end all activities.
Once you've got a preverified classfile, you can use the midp emulator to run it. The emulator is an application that runs under J2SE and acts just like a MIDP device. It shows itself on your screen as a representative device, a generic mobile phone.
If you're using the J2ME Wireless Toolkit, you can simply choose an emulator from the Device combo box and click the Run button to fire up your application.
5). USING EMULATOR CONTROLS
The J2ME Wireless Toolkit emulator appears as a generic mobile phone. Sun's J2ME Wireless emulator exhibits several qualities that we are likely to find in real devices.
The device has a small screen size and limited input capabilities.
Navigation buttons are provided to allow the user to browse through lists or other sets of choices.
A select button allows the user to make a choice after moving to it with the navigation buttons.
6). THE WIRELESS TOOLKIT DEVICES
The J2ME Wireless Toolkit 2.2 contains four main device emulators:
DefaultColorPhone is a device with a 240-by-320-pixel color screen. This is the device shown later in Figure 2.
DefaultGrayPhone has a 108-by-208-pixel grayscale screen.
MediaControlSkin is similar to the default phone emulator and has a color screen of 108-by-208 pixels, but its buttons are labeled with controls like a music player: a square for stop, a triangle for play, volume control buttons, etc.
QwertyDevice is a smartphone with a 636-by-235 color screen and a miniature QWERTY keyboard.
Fig. 2 Example of ClamshellCldcPhone
First we have to authenticate to gmail account. So we need to follow some of the steps. Find OAuth Token and Token Secret for a Google Mail account. So need to install Python version 2.4 or greater in our system.
The first step is to create and authorize an OAuth token. On typing required command it leads to one URL. We need to Visit the URL in browser, and click the "Grant Access" button.
The next page will provide a verification code. Copy and paste the verification code in the xoauth.py script window, and hit <Enter>. xoauth.py will respond with an oauth_token and oauth_token_secret. oauth_token and oauth_token_secret
Will be used for testing purpose.
We can also generate a new set of oauth_token and oauth_token_secret at any time by repeating the above steps. We have to use xoauth.py to generate a XOAUTH authentication string using the oauth_token and oauth_token_secret. The base64-encoded string will be generated. Connecting to Google Mail's IMAP server and attempting to authenticate is to be done. The debug protocol dump shows that xoauth.py successfully authenticated to IMAP.
Now oauth_token and oauth_token_secret are generated. Open the file build.properties text document in a text editor and modify following properties:
email: The email address of a Google Mail account to which you want to authenticate.
Oauth_Token: An OAuth_token for the Google Mail account.
Oauth_Token_Secret:The OAuth_token_secret corresponding to oauthToken.
Save build.properties and close the editor. Execute ant run to run the sample application with the parameters specified in build.properties. At the end we get the message- Successfully authenticated to IMAP.
Project is about sending sms from mobile to the gmail inbox. Suppose a person has left his mobile in home while going to the office. Whenever sms comes to the mobile it is sent to his gmail inbox. One of the advantage of this is all sms can be saved in the gmail inbox, so that sms present in the mobile phone can be deleted after reading. All the messages which comes to mobile will be stored in the gmail inbox. Whenever a call comes to mobile, it checks whether anyone is picking the call. If no one picks then sms is sent to gmail inbox saying you have a missed call (along with the number).
Today's mobile devices are multi-functional devices capable of hosting a broad range of applications for both business and consumer use. PDAs and the ever-growing category of smart phones allow people to access the Internet for e-mail, instant messaging, text messaging etc. All the messages which comes to mobile will be stored in the gmail inbox. Whenever a call comes to mobile, it checks whether anyone is picking the call. If no one picks then sms is sent to gmail inbox saying you have a missed call (along with the number).