Burak Dede – Read Once Do Everytime

Archive for the ‘api’ tag

Introduction To J2ME Platform

10 comments

J2ME isn’t a specific piece of software or specification. All it means is Java for small devices. Small devices range in size from pagers, mobile phones, and personal digital assistants (PDAs) all the way up to things like set-top boxes.

J2ME is divided into configurations, profiles, and optional APIs, which provide specific information about APIs and different families of devices. A configuration is designed for a specific kind of device based on memory constraints and processor power. It specifies a Java Virtual Machine (JVM) that can be easily ported to devices supporting the configuration. It also specifies a strict subset of the Java 2 Platform, Standard Edition (J2SE) APIs that will be used on the platform, as well as additional APIs that may be necessary. Device manufacturers are responsible for porting a specific configuration to their devices.

Profiles are more specific than configurations. A profile is based on a configuration and provides additional APIs, such as user interface, persistent storage, and whatever else is necessary to develop running applications for the device.

Optional APIs define specific additional functionality that may be included in a particular configuration (or profile). The whole caboodle—configuration, profile, and optional APIs— that is implemented on a device is called a stack. For example, a possible future device stack might be CLDC/MIDP + Mobile Media API. See the section “Platform Standardization” later in this chapter for information on JSR 185, which defines a standard J2ME stack.

J2ME configuration divided into 2 categories according to device specifications.First one is Connected Device Configuration called CDC which sits on top of the J2ME.These devices have to meet the requirements specified by JSR community process.CDC devices target especially high end PDA’s , navigation systems , settop boxes.Therse devices has ,at a minimum, 512KB of read-only memory (ROM), 256KB of random access memory (RAM), and some kind of network connection.And also CDC devices gives full JVM support.

Other type of configuration is Connected Limited Device Configuration which is called CLDC.This configuration category include devices like mobile phones,pagers,PDA’s…As you see these devices smaller than the devices listed on CDC.CDC devices have limited memory , limited processor power ,limited screen size,limited battery life because of these developing applications for these devices is a important process.The CLDC is designed for devices with 160KB to 512KB of total memory, including a minimum of 160KB of ROM and 32KB of RAM available for the Java platform.For note connected means here network connection that is not very fast and intermitted.These devices support specific implementation of JVM which is KVM.K means here as far as i know “it is a JVM whose size is measured in kilobytes rather than megabytes”.

Other important part of J2ME is profiles.I am not going to dive into other profiles just MIDP which is the important and known one  in J2ME development.MIDP stands for Mobile Information Device Profile and have also JSR process and specifications.Here is the MIDP 2.0 specifications.

  • A minimum of 256KB of ROM for the MIDP implementation (this is in addition to the requirements of the CLDC)
  • A minimum of 128KB of RAM for the Java runtime heap
  • A minimum of 8KB of nonvolatile writable memory for persistent data
  • A screen of at least 96×54 pixels • Some capacity for input, either by keypad, keyboard, or touch screen
  • Two-way network connection, possibly intermittent

Most of the latest devices support MIDP 2.0 specification but older ones user MIDP 1.0.

Structure of MIDP Application

MIDP application has a API which comes from both CLDC and also MIDP 2.0 .CLCD api comes from core api defined in Java SE and MIDP api comes with java micro edition packages.Here is a list of avaliable packages.

For CLDC

  • java.lang
  • java.lang.ref
  • java.io
  • java.util
  • javax.microedition.io

For MIDP

  • javax.microedition.lcdui
  • javax.microedition.lcdui.game
  • javax.microedition.media
  • javax.microedition.media.control
  • javax.microedition.midlet
  • javax.microedition.pki
  • javax.microedition.rms

Also device vendors supply their own API’s specific to their device.These are different API’s from MIDP and as i said specific to that device not platform independent and make developers to reach device specific features.MIDP applications sits on top of the device specific OS , and use only api provided by MIDP and CLDC.Device specific java application use API provided by device vendor.(Device Specific API’s).

Advantages of MIDP

Portability

The advantage of using Java over using other tools for small device application development is portability. You could write device applications with C or C++, but the result would be specific to a single platform. An application written using the MIDP APIs will be directly portable to any MIDP device.

Security

A second compelling reason for using Java for small device development is security. Java is well known for its ability to safely run downloaded code like applets. This is a perfect fit—it’s easy to imagine nifty applications dynamically downloading to your mobile phone.

Written by burakdede

June 14th, 2010 at 12:18 am

Posted in java,mobile development

Tagged with , , , , , ,

Introduction to Google’s Android Platform

12 comments

As the title says Android is a platform that include operation system,middleware and also application programming interface(api) which is create by Google.It is a solution for developers to create rich mobile applications easily with the power and easiness of Java programming language .Why it is a solution cause mobile systems like symbian and java midlets didnt gave so much flexibility that Android platform gave to developers.

By using Symbian platform you can write applications that access the hardware of the device but it require so much complex c/c++ code.This is kind of tiresome for developers using symbian platform.After symbian platform Java MIDlets have evolved and MIDlets fix the difficult hardware access in mobile platforms by abstracting the underlying hardware platform and giving developers ability to create applications that run on wide variety of platforms that support java run time.Cost of this platform independence is restricted access to hardware.Cause native and third party application doesnt have the same priority.Third party application recieve restricted access to hardware platform.This cant be good for the third party application especially developers who create application for that platform.And

What makes Google Android Different?

Developers can use Java to create applications for the Android platform.This is a big advantage cause Java accepted by developers all over the world and has great support  and most important it is open source like Android platform itself.But what known wrong here that you can not use Java classes directly and write application for the Android platform you have to make your classes and strcutre of your application specific to Android platform.

Antoher difference is that all applications at Android platform whether its a native application or third party they have the same priority.This gives huge flexibility to third party applications , as other platforms do opposite.They gave restricted access to third party application and also restricted resource.

Android platform built on linux kernel and it is a open source platform.You can even write low level code for platform.Also Android is a member of Open Mobile Alliance and Linux Phone Standarts Forum(LiPS).There is  wrong belief that  Android platform is fully open source, well it is not true right now but it is expected to be fully open source.

At this stage, not all of the Android stack has been released as open source, although this is expected to happen by the time phones are released to market. It’s also worth noting that the applications you develop for Android do not have to be open source.

And also your application doesnt have to be open source , you can make money from it, it is a developers choice to make it open source or not.There is a  market that has the same functionality like Apple’s app strore named Android market.You can look at android applications from Android Market.

As a general belief it is not a competitor to Apples İphone.Cause iphone is fully hardware and software platform but Android only offers a general software stack that can run on every hardware platform that meet Android requirements.Unlike Apple’s iphone there is not one Android Mobile Phone.You can check latest Android supported mobile phones here.

Android also has a rich api and great documentation.Also you can download latest SDK from here.What makes Android so attractive is that its open philosophy,you can create or even change applications like you imagine them.

Written by burakdede

October 24th, 2009 at 7:30 pm