İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Onder Teker
on_der_tek_er@yahoo.com

Java 2 Micro Edition'un Temel Kavramları

J2ME (Java 2 Micro Edition)

Java'nın 3 versiyonu var :

Bu versiyonlar, değişik bilgisayar ve bilişim aygıtı barındıran ortamlar için tanımlanmıştır. J2ME, tüketici elektroniği ve gömülü aygıtlarda kullanılmak üzere ortaya çıkarılmıştır. Cep telefonları, televizyonlar ve arabalar dahil bir çok aygıtta Java'nın J2ME versiyonu yüklü olabilmektedir. J2ME yüklü cihazlar iki katagoriye ayrılır :

J2ME'nın amacı bütün bu sayılan, değişik yeteneklere ve olanaklara sahip aygıt türlerinde ortak işlevler sağlamaktır. Bunun için modüler bir yapı kurulmuş, çeşitli configuration'lar ve profilelar belirlenmiştir.

Configuration'lar ve Profile'lar

J2ME configuration'u bir aygıt ailesi için minimum Java platformunu tanımlar. Bu aileye ait aygıtlar benzer bellek ve işlemci yeteneklerine sahiptir. Bir Configuration, sistem düzeyinde programcının o aygıtın desteklediğini bildiği bazı dil ve platform özelliklerinin tanımlamasıdır. Belli bir configuration'a giren aygıtlarda hangi Java kütüphanelerinin olduğunu bilir ve ona göre program yazabilir. Özetlersek, bir configuration şu maddreleri içerir :

J2ME profile'ı uygulama düzeyinde verilen servislerden oluşur. Verilen servis herhangi bir konuda olabilir. Ancak belli konulardaki profile'lar standarttır, o profile'ı destekleyen bütn aygıtlarda aynı servis aynı şekilde bulunur. Profile'ler bir configuration üzerinde çalışırlar. Ayrıca bir profile bir başka profile üzerinde çalışabilir. Bir aygıta birden çok profile'ı destekleyebilri anca sadece tek bir configuration'a sahip olur. Örenğin SMS Mesajlaşması bir profile konusudur. Bu, mobil telefon configurasyon'u için çok yaygın bir profile'dır

J2ME'de Tanımlanmış Configuration'lar

Configuration'lar Java Standart Edition (J2SE)'daki bazı classları içerebilirler. Ancak hepsini içermeleri, bu cihazların bilgisayar göre daha az teknik özellik içermesi nedeniyle mümkün değildir. J2SE'deki bir class belli bir configuration'da tanımlıysa mutlaka aynı şekilde tanımlı olmak zorundadır. Farklı bir method ekleyemez. Buna karşın, depracated (eski) methodları tanımlamak zorunda değildirler.

J2ME iki configuration tanımlar :

CDC daha gelişmiş (örneğin 2 MB'tan fazla belleğe sahip aygıtlar) için tanımlanmışken CLDC daha az gelişmiş (örneğin 160 KB kadar düşük bellekli) aygıtlar için tanımlanmıştır. CDC tanımlaması CLDC'yi tümüyle kapsar. Yani CLDC tanımlanmış bütün servis ve kütüphanler CDC'de de bulunur.

CDC (Connected Device Configuration)

CDC, J2SE'de bulunan bir çok özelliği barındırmaktadır. CDC için CVM (Compact Virtual Machine) sanal makinesi geliştirilmiştir. JVM (Java Virtual Machine) olan hemen hemen bütün özellikleri içermektedir. Ancak sınrılı kaynağa sahip aygıtlar için tasarlanmıştır.

CDC'de tanımlanmış paketler :

CDC' configuration'u çeşitli pofile'larla tamamlanmıştır. İlk olarak tanımlanan profile Foundation Profile'dır. Bu profile java.lang, java.util, java.net, java.io ve java.security'deki eksiklikleri (J2SE'da bulunup, CDC'de bulunmayan nesneleri) eklemektedir. Bu profile'le birlikte CDC bir programlama ortamı sağlamış olmaktadırlar. Ancak bu ortamda AWR veya Swing gibi bir arayüz yoktur. Bir programda arayüz kullanmak için Personal Profile gibi bir profile'ı desteklemelidir. Personal Profilei bütün AWT paketlerini desteklemektedir. Ayrıca java.beans ve jabcax.microedition.xlet paketleri bulunaktadır. Personal Profile'la birlikte Personal Java adlı Java sisteminde J2ME'a bir geçiş yolu sağlamış olur. Bir başka profile da RMI Profile'dır. Bir nesnenin networkte başka bir ayagıtta çalışan bir nesnenin herhangi bir metodunu doğürudan çağırmasını sağlayan RMI (Remote Method Invocation - Uzaktan Yöntem Çağırma) nesnelerinin hemem hemen tamamını desteklemektedir.

CLDC (Connected, Limited Device Configuration)

Java Micro Edition'da tanımlanmış ikinci configuration CLDC (Connected, Limited Device Configuration) düşük bellekli, şarj gibi zayıf güç kaynakları olan, telssiz bağlantılı aygıtlar için tanımlanmıştır.

CLDC'de Java dili desteği olarak bazı özellikler eksik bırakılmıştır : Float (kesirli) tipi Object Serialization ve Error class'ı gibi. Float'ı desteklememsinin nedeni sözkonusu düşük yetenekli aygıtların kesirli sayılkarı destekleye donanım birimlerinin olmamasıdır.

CLDC'yi destekelyen KVM (Kilobyte Virtual Machine) adlı bir VM bulunmaktadır. (Bir kaç KB'lik hafızaya sığdığı için bu ismi almıştır.) Bu configuation şu paketler'den class'lar içerir :

CLDC'nin üzerinde çalışan en önemli profile MIDP (Mobile Information Device Profile)'dır. Bu profile 96x54 ekrani 1 bit display derinliği,bir beya iki el için klavyesi olan, dokunmalı ekrana sahip, çift taraflı telsiz bağlantı sağlayabilen aygıtlar için tanımlanmıştır. Bu profile şu paketleri içerir

Midlet, CLDC'üzerinde MIDP'le çalışan Java uygulamasıdır. Yaygın bir şekilde desteklene bir profile olduğunda J2ME uygulaması ve bir mobil aygıtta Java denildiğinde kasıt muhtemelen bir Midlet'tir. Midlet, aygıt değişiki yollarla indirilir ve çalıştırılır. LCD UI (Limited Conntected Device User) arayüz için kullanılan sistemdir. RMS (Record Management System) veri saklama ve erişim için kullanılır.

CLDC üzerinde çalışması için tasarlanıan bir başka profile da PDA Profile'ıdır.

Sonuç : Java

J2ME karmaşık confiugration ve profile sistemine, sınırlı kütüphanelerine rağmen geliştirme açısından standart Java'yla programlamadan çok farklı değildir. Örnek :


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyMIDLet extends MIDlet {

	public void startApp(){
		TextBox box=new TextBox("Selam","Merhaba Dünya",100,TextField.ANY);
		Display.getDisplay(this).setCurrent(box);
	}    
	public void pauseApp(){
	}    
	public void destroyApp(boolean unconditional){
	}

}

Görüldüğü gibi, Java'yı bilen bir programcı pek rahat J2ME için program yazabilir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır