JavaME/Java ME ile Yazılım Geliştirme

Giriş değiştir

Java ME ile Yazılım Geliştirme kitabına hoşgeldiniz. Bu kitap Java ME teknolojisini tanıtmayı ve bu teknoloji ile nasıl yazılım geliştireceğimizi açıklamayı amaçlamaktadır. Java ME ile yazı geliştirmek için temel Java yazılım bilgisinin olması gerekmektedir.

Java ME Mimarisinin Tanıtımı değiştir

Terimler değiştir

Java ME
Java Micro Edition çeşitli cihazlar için tanımlanmış bir grup belirtim ve teknolojidir. Java ME belli sınıflardaki cihazlar için bir grup konfigürasyon ve profillere bölünmüştür. J2ME olan eski ismi Java ME olarak değiştirilmiştir.
CLDC(Connected, Limited Device Configuration)
Java ME nin en yaygın konfigürasyonudur. CLDC 512 KB tan ufak hafızası ve sınırlı ağ bağlantısı olan aletler için tasarlanmıştır. CLDC KVM olarak adlandırılan JVM(Java Virtual Machine) i ve uygulamalar için temel olan bir takım kütüphaneleri belirler.
MIDP
Mobile Information Device Profile Java ME nin bir profilidir. CLDC nin üstündeki bir profil olarak yer alır ve uygulamanın yaşam döngüsü, kullanıcı grafik arabirimleri, iletişim ağı ve kalıcı depolama ile ilgili kütüphaneleri içerir.
Midlet
Midlet MIDP profili için yazılmış uygulamalara verilen isimdir.
Midlet suite
Midletler Midlet Suite'ler olarak paketlenir ve dağıtılır. Bir Midlet Suite bir veya daha fazla Midlet ten oluşabilir. Midlet Suite .jar ve.jad olarak 2 dosyadan meydana gelir. .jad uzantılı dosya tanımlayıcı dosya, .jar uzantılı dosya Midlet, kullanılan kütüphaneler, kaynak dosyaları gibi dosyaları içeren arşiv dosyasıdır.

=== Java Platformları ===ESES Java ilk olarak avuçiçi ve taşınabilir cihazlar için tasarlanmış fakat sonraları çeşitli sebeplerden dolayı çıkış amacından uzaklaşmıştır. Java, Java ME ile çıkış günlerindeki amacına geri dönmektedir. Günümüzde Java platformu 3 ana kategoriye ayrılır:

Standard Edition (Java SE)
Daha çok kişisel bilgisayarlara ve temel sunuculara yönelik bir takım standartları içerir.
Enterprise Edition (Java EE)
Sunuculara yönelik geliştirilen bir takım standartları içerir.
Micro Edition (Java ME)
Cep telefonları, kablosuz el cihazları, kişisel dijital asistanlar ve benzeri kaynakları kısıtlı cihazlar için geliştirilen standartları içerir.

Konfigürasyon ve Profiller değiştir

Jave ME çeşitli konfigürasyon ve profillere bölünmüştür. Konfigürasyonlar JVM(Java Virtual Machine) detaylarını ve belli sınıftaki cihazlarla kullanılabilecek temel kütüphaneleri tanımlayan belirtimlerdir. Mesela 512KB bellekten az hafıza alanı ve sınırlı bir ağ bağlantısı olan cihazların konfigürasyonu CLDC olarak adlandırılır. CLDC lere örnek olarak bazı cep telefonları ve avuç içi bilgisayarlar(PDAs) verilebilir. Daha fazla belleğe ve işlemci gücüne sahip, sürekli ağ bağlantısı olan diğer konfigürasyon ise CDC olarak adlandırılır (Connected Device Configuration). Bunlara örnek olarak ise Sharp Zaurus avuç içi bilgisayarları verilebilir.

Profiller uygulama geliştirmeye daha yetkin bir ortam sunabilmek için konfigürasyonun üzerine tanımlanan kütüphanelerdir. Konfigürasyon java sanal makinesi (JVM) ve temel kütüphaneleri tanımlarken, bir uygulama geliştirilirken ihtiyaç duyulabilecek yetkinlikte kütüphaneleri tanımlamaz. Profiller bu alanda uygulamanın yaşam döngüsü, kullanıcı arabirimi ve kalıcı bellek kütüphanelerini içerirler.

MIDP Programlama, MIDletler değiştir

MIDP profili için yazılan uygulamalar Midlet olarak tanımlanır.

Bir MIDP uygulaması geliştirmek için bazı temel bilgileri edinmek gerekir. Bunlardan bazıları: midletlerin yaşam döngüsü, kullanıcı arabirimleri, komut işleme, konuşlandırma ve uygulama yönetimi olarak sayılabilir.

MIDlet Yaşam Döngüsü değiştir

Midletler 3 durumda bulunabilir: durağan (paused), etkin (active), ölü(destroy).

Bir midlet yaratıldığı ve başlatıldığı zaman durağan moddadır. Eğer MIDlet yapılandırıcısında(constructor) kural dışı bir durum oluşursa(exception) MIDlet ölü durumuna geçer. MIDlet ler etkin durumdan durağan durumuna pauseApp() methodunu tamamladıktan sonra geçebilirler. Veya etkin konumdan durağan duruma startApp() methodunu tamamladıktan sonra geçebilirler. MIDletler ölü konumuna destroyApp(boolean unconditional) methodunun tamamlanmasından sonra geçerler.Bu method MIDlet kullandığı kaynakları serbest bırakır ve gerekli temizleme işlemlerini yapar.

MIDlet Suiteler ve Uygulama Tanımlayıcıları değiştir

Uygulama Yönetim Yazılımı(Application Management Software, AMS) MIDlet in kurulumu, başlaması, durdurulması ve kaldırılması ile ilgili işlemlerin yapıldığı ortamdır. Bir veya daha fazla MIDlet ‘MIDlet Suite’ denen JAR uzantılı dosyalara paketlenir. Her JAR dosyasının içeriğini tanımlayan JAD uzantılı uygulama tanımlayıcı dosyası vardır. Bu dosyalar Uygulama Yönetim Yazılımları tarafından kullanılır. JAR ve JAD uzantılı dosyaların cep telefonlarına indirilebilmesi için bu dosyaların indirileceği web sunucuları üzerinde aşağıdaki MIME tiplerinin tanımlanması gerekmektedir:

.jar application/java-archive
.jad text/vnd.sun.j2me.app-descriptor

Ayrıca uygulama tanımlayıcısından dinamik olarak değer almak için MIDlet içinden getAppPropoerty (String key) methodu da kullanılabilir. Böylece JAR dosyasını değiştirmeye gerek kalmadan JAD dosyası üzerinden bazı değişiklikler ile MIDlet imizin çeşitli işlevlerini değiştirebiliriz.

Örnek bir JAD dosyası:

MIDlet-1: MerhabaDunya, , example.hello.HelloWorldMIDlet
MIDlet-2: ZiplayanYazi, , example.hello.BouncingTextMIDlet
MIDlet-Jar-Size: 7822
MIDlet-Jar-URL: HelloExamples.jar
MIDlet-Name: HelloExamples
MIDlet-Vendor: Ozgur Yazılım
MIDlet-Version: 1.0.1
ZiplayanYazi-BaslangicYazisi: MIDlet ler eğlenceli!

Yukarıdaki MIDlet Suite, Uygulama Yönetim Yazılımı tarafından yüklendiğinde hangi MIDlet in başlatılmak istendiği sorulacak, seçime göre ilgili MIDlet sisteme yüklenerek çalıştırılacaktır.

MIDP Uygulama Geliştirme değiştir

Bu bölümde MIDlet geliştirmeye başlayabilmek için gerekli araçların kurulumu ve yapılandırılmasını gerçekleyerek kod yazmaya başlayacağız. Hızlı bir şekilde kod yazabilmek için birçok Tümleşik Geliştirme Ortamları bulabilirsiniz.

Bunlardan bazıları:

  • JBuilder
  • NetBeans Mobility Pack
  • Metrowerks CodeWarrior Wireless Studio
  • Eclipse + Eclipse ME
  • Sun Java Wireless Toolkit

Uygulama Geliştirme Ortamı Olarak “Sun Wireless Toolkit” değiştir

MIDlet uygulamalarımızı geliştirmeye başlamadan önce ihtiyacımız olan araçlar:

Java Platform, Standard Edition (Java SE) SDK
İhtiyaç duyulan minimum versiyonu Java ME Wireless Toolkit gereksinimlerinden bakarak bulmanız gerekir.
Sun Java Wireless Toolkit
Bu toolkit yazdığımız kodu derlemek ve test etmek gibi bir takım işlere yarar.
Metin editor
Kodumuzu yazmak için kullandığımız metin editörü.

Java Platform, Standard Edition (Java SE) Kurulumu değiştir

İlk olarak ihtiyaç duyduğumuz Java Standart Edition SDK sını http://java.sun.com/j2se/ adresinden indirerek bilgisayarımıza kurmamız gerekir. Bu SDK bize Java Wireless Toolkit in çalışması için gerekli Java ortamını hazırlar. Java Wireless Toolkit yazdığımız kodu derlerken bu SDK daki derleyicileri kullanır. Kurulum bittikten sonra kurulumun olduğu dizinin altındaki “bin” dizinini path değişkeninize eklemeniz gerekiyor. Eğer buraya kadar olan adımları doğru olarak gerçekleştirdiyseniz işletim sisteminizin konsolunu açarak

java –version

yazınız. Aşağıdaki gibi bir sonuç çıkıyorsa herşey yolunda demektir.

gunebakan@efeLaptop:~$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

Java Wireless Toolkit Kurulumu değiştir

Şimdi sıra Java Wireless Toolkit’in kurulumunda. Bu toolkit yazdığınız kodların derlenmesi, test edilmesi, uygulamanız çalışırken bazı değerlerin gözlenmesi gibi bir takım işlere yaramaktadır.

http://java.sun.com/products/j2mewtoolkit/ adresinden en güncel Java Wireless Toolkit programını indirmemiz gerekir. Kurulum dosyasını çalıştırdıktan sonra toolkit sisteminizdeki Java SE ı otomatik olarak bulacak veya size Java SE nin kurulu olduğu dizini soracaktır. Kurulum işlemleri kurduğunuz işletim sistemine göre değişir. GNU/Linux işletim sistemi üzerinde indirdiğiniz dosyayı çalıştırılabilir(executable) yaptıktan sonra ismini yazarak kuruluma başlayabilir, windows işletim sistemleri üzerinde ise exe uzantılı dosyaya tıklayarak kuruluma başlayabilirsiniz. Detaylı kurulum bilgilerini indirdiğiniz dosyada veya web sitesinde bulabilirsiniz.