Java Micro Edition Java ME



Benzer belgeler
Java 2 Micro Edition (J2ME)

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

JAVA MOBIL UYGULAMALAR

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Android Ders Notları

Java JDK (Java Development Kit) Kurulumu:

Java Programlama Giriş

CLDC Konfigürasyonuna Sahip Mobil Cihazlarda 3B Grafiklerin Görselleştirilmesi

Java Temel Özellikleri

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Üç Boyutlu Grafik Teknolojilerinin Mobil Öğrenme Alanı ile Bütünleştirilmesi

Programlama Dillerinde Kullanılan Veri Tipleri

// hataları işaret eden referans

Java Programlamada Paket Yapısı Ve Import

Swing ve JDBC ile Database Erişimi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MOB L ARAÇLAR Ç N ETMEN TABANLI B R ANLAMSAL WEB SERV S SUNUM PLATFORMU GEL T RME

MOBİL İMZADA GÜVENLİĞİN ARTIRILMASI İÇİN FARKLI YÖNTEMLERİN GELİŞTİRİLMESİ

MOBİL UYGULAMA GELİŞTİRME

Açıköğretimde Mobil Öğrenme Açıköğretim e-öğrenme hizmetlerinden mobil bilişim aygıtlarıyla yararlanma olanaklarının değerlendirilmesi

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

C# nedir,.net Framework nedir?

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Üst Düzey Programlama

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

MOBİL İŞLETİM SİSTEMLERİ (MOBILE OPERATING SYSTEMS)

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

Java Class Yapısında Finalize Metotunun Kullanımı

Symbian İşletim Sistemi

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

SQL SERVER 2005 ENTEGRE SQL (VTY) VERİ TABANI YÖNETİM KURULUMU RESİMLİ ANLATIMI. Entegre SQL kurmadan önce SQLSERVER 2005,i kuralım öncelikle.

4. Bölüm Programlamaya Giriş

Spring Giriş Eğitimi

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Mobil Cihazlardan Web Servis Sunumu


Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

Sanallaştırma Nedir? Bahadır Demircioğlu. Şubat, 2013

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

public static int Toplam int x, int y

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Erişim konusunda iki taraf vardır:

knfbreader Mobile kreader Mobile

Disk tabanlı bir çözümdür ve bu yapısından dolayı kullanılması kolaydır. Ayrıca hızlı bir şekilde yedekleme ve geri dönüş sağlar.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Spectro LED Bluetooth Hoparlör

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

LabVIEW Ders Notları-1

Açık Kaynak Öğrenme Yönetim Sistemleri (Learning Management Systems) Ceren Çalıcı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

BEUN VPN Hizmeti. VPN Nedir?

AKINSOFT WOLVOX Mobil Satış PDA

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

V Daq Kurulum adımları

Windows 7 Format Atma ve Kurulumu (Resimli Anlatım)

NESNEYE DAYALI YAKLAŞIMLA MOBİL CİHAZLAR ÜZERİNDE ÜÇ BOYUTLU OYUN MOTORU TASARIMI ve

Java Dersi. Altuğ Bilgin Altıntaş

JAVA API v2.0 Belge sürümü: 2.0.2

U SB M I N I ADAPTE R BLUETOOTH

PORT HABERLEŞME SERİ PORT FARUK BOZAN

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Duygusal ve sosyal becerilere sahip Genç profesyoneller

7. HAFTA. Erişim Belirleyiciler

T.C. KAHRAMANMARAŞ SÜTÇÜ İMAM ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ELEKTRİK-ELEKRONİK MÜHENDİSLİĞİ ANABİLİM DALI

Client Server Database

Java ile OpenGL e Giriş. NetBeans IDE si üzerinden kurulum

Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü. 13 Kasım 2010

MİKROİŞLEMCİLER. Mikroişlemcilerin Tarihsel Gelişimi

e-imzatr Kurulum Klavuzu

MOBİL UYGULAMA GELİŞTİRME

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU

POZITRON. Geleneksel kanallardan yeni metodlara: Mobil Bankacılık.

YZM 2105 Nesneye Yönelik Programlama

Bilgi Teknolojisinin Temel Kavramları

Sunum İçeriği. Programlamaya Giriş

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

2000 li yıllardan itibaren teknolojinin hızlı gelişiminden belki de en büyük payı alan akıllı telefon ve tabletler gibi kablosuz iletişim olanağı

5. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

e-imzatr Kurulum Klavuzu

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

e-yazışma Projesi TBD Kamu-BİB Aylık Bilgilendirme Toplantısı

Vodafone Telekomünikasyon A.Ş.

AB AKILLI BİNA SİSTEMİ İÇİN TÜRK TEKNOLOJİ FİRMALARI DEVREDE!

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

WOLVOX Mobil Satış PDA

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

1.1.1 Network Konfigürasyonu

Transkript:

Java ME (Java Micro Edition) Java ME Yapısı Java ME (Eski adıyla J2ME) yani Java Micro Edition, Java nın belirli kütüphanelerinin alınması ve bulunduğu ortama göre ek kütüphanelerin eklenmesi ile oluşturulmuş bir ortamdır. Bu sayede farklı yapılara ve güce sahip cihazlar arasında değişik Java versiyonları kullanılabilir. Bu ortam cihazlar arasında da belirli konfigirasyonlara göre farklılık gösterebilir. Örnek olaran bir PDA üzerindeki JAVA ME ile bir cep telefonundaki JAVA ME özellikleri aynı olmayabilir. Bunlara kofigirasyonlar diyoruz. JAVA ME içerisinde cep telefonu üzerinde gerekli bir çok kütüphane mevcuttur sadece belirli ek özellikleri kullanamayacağımız kısıtlamalar yapılmıştır. Bunun nedeni zaten kısıtlı belleğe sahip cihazların Java nın standart versiyonunu destekleyecek kapasiteye sahip olmamasıdır. JAVA ME nin çıkış amacı da budur. Standart Java bilgisine sahip olan bir yazılımcının JAVA ME öğrenmesi zor olmayacaktır. Basit bir kaç kütüphaneye sahip bu platformda Nokia, Sony-Ericsson gibi şirketler olaya esneklik ve kolaylık katacak bir çok ek kütüphane geliştirmişlerdir. Bu kütüphanelere üreticilerin developer sayfalarından ulaşabilirsiniz. Bunların popülerleri arasında aşağıdaki siteler sayılabilir. http://developer.sonyericsson.com/site/global/home/p_home.jsp http://forum.nokia.com http://www.benqmobile.com/developer http://developer.motorola.com Konfigirasyonlar Cihazlar arasında bağlantı, bellek ve işlemci kapasiteleri konusunda farklılıklar vardır. Bu ufak cihazlar arasında daha büyük farklar demektir. Örnek olarak bir akıllı kart (Smart Card) çok düşük bir konfigirasyona sahipken PDA ler bunun binlerce katı belleğe sahip olabilirler. Mobil aygıtlarda iki tip konfigirasyon vardır. Bunlar CLDC (Connected Limited Device Configiration) ve CDC (Connected Device Configiration). CLDC belli bir bağlantı yeteneğine sahip bellek ve işlemci kapasitesi daha düşük cihazlardır. Cep telefonları bunu sınıfa girer. CDC ise daha yüksek bağlantı kapasitesine sahip işlemci ve bellek durumu daha yüksek cihazlardır. Günümüz JAVA ME dünyasında popüler olan konu CLDC yani cep telefonlarınun bulunduğu konfigirasyondur. Sonuç olarak bir kaç sene içerisinde 1 milyar gibi bir rakama ulaşacak ve bu pazar yazılım şirketlerinin iştahanı kabartıyor. Kitap üzerinde genel olarak CLDC üzerinde çalışacağız. www.melihsakarya.com Sayfa 1

Yukarıdaki resimde görüldüğü gibi CDC daha kapsamlı kütüphane mimarisine sahiptir. Ancak CLDC içerisinde CDC den bağımsız kütüphanelerde bulunmaktadır bunları ileriki adımlarda göreceğiz. CDC (Connected Device Configiration) Yüksek bellekli normal pc mimarisine yakın cihazlardır. Bu cihazlar üzerinde uygulama geliştirme imkanı daha genişleyebilir olup bellek kullanımı daha yüksektir. Bu yüzden standart Java ya yakın bir kütüphane zenginliği vardır. Şu anda palm tarzı cihazlarda kullanılan bu mimari cep telefonu gibi cihazların daha da gelişmesiyle CLDC nin yerini alacaktır. Bunun dışında pocket pc yada terminal tarzı cihazlarda da bu tarz bir yapı kullanılabilir. CDC yapısının kullanılacağı mimarilarde JVM (Java Virtual Machine Java Sanal Makinesi) yerine CVM yani Compact Virtual Machine kullanılır. Bu sanal makineyi yüklediğimiz her ortamda CDC tabanlı J2ME uygulamaları geliştirebiliriz. Buna örnek olarak son zamanlarda popüler olan smartphone ların (Akıllı Telefonlar) gelişmiş hallerini gösterebiliriz. CDC üzerinde kullanılan kütüphanelerın bazıları aşağıdaki gibidir. java.io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cert java.text java.util java.util.jar java.util.zip javax.microedition.io CLDC (Connected Limited Device Configiration) Bu kitapta daha çok işleyeceğimiz mimari CLDC yani Connected Limited Device Configiration dır. Şu anın popüler konusu olan cep telefonu uygulamalarında kullanılan konfigirasyon genellikle budur. Ancak CDC konusunda da belittiğimiz gibi cep telefonlarının kapasiteleri git gide artıyor ve gelecek bir kaç sene içerisinde çok www.melihsakarya.com Sayfa 2

daha iyi seviyelere gelecek bu durumda bellek ve bağlantı sorunları da yaşanmayacaktır ve artık uygulamalarımıza zenginlik katmak için bu tarz yüksek konfigirasyonlara ihtiyaç duyacağımız kesindir. Zaten şu anda Nokia ve Sony- Ercisson tarafında CDC konfigirasyonuna sahip cihazlar üretilmeye başladı zamanla bunlar artacak ve yerlerini artık smartphone tarzı cihazlara birakacaktır. CLDC konfigirasyonunda Java nın temel kütüphanelerinden çok azı alınmıştır. Baştanda belirttiğimiz gibi bunlar sınırlı kapasite sahip cihazlar için JVM den özel olark alınmış kütüphanelerdir. Bunlardan bazıları aşağıdaki gibidir. java.io java.lang java.util Ancak buradaki kütüphanelerde JVM de bulunan tüm sınıflar bulunmamaktadır. Örnek olarak standart Java da java.util paketi içerisinde Currency adında bir sınıf varken CLDC içerisinde böyle bir sınıf bulunmamaktadır. Bunun gibi onlarca sınıf CLDC java.util paketinde yok. Bunlar dışında microedition la gelen bazı kütüphanelerde mevcut. Bunlardan bazıları javax.microedition.io yada javax.microedition gibi kütüphanelerdir. Bu kütüphanler standart Java da bulunmayan ancak J2ME ortamında gerekli olan sınıfları içerir. Örnek olarak javax.microedition.io standart Java da olan fakat J2ME ortamında kullanamadığımız bazı sınıfları içerir. CLDC adındanda anlaşılacağı gibi limitli bir bağlantıya sahip bir configirasyon buna uygun olarak düzenlenmis bazı giriş çıkış sınıfları düzenlenmiştir. Buna daha bir çok örnek verebiliriz ileriki bölümlerde bunların neden böyle kullanıldığını daha iyi anlamış olacağız. MIDP (Mobile Information Device Profile) CLDC kendi içerisinde profile lara ayrılır. Bunlar birinci nesil MIDP 1.0 ve daha sonradan çıkarılmış biraz daha gelişmiş versiyonu olan MIDP 2.0 dır. MIDP 2.0, 1.0 versiyonuna göre bir çok gelişmiş özelliğe sahiptir. Hala 1.0 destekli bir çok telefon satılmaktadır bu yüzden J2ME destekli telefon alırken 2.0 destekli olmasına dikkat etmenizi öneririm. Peki MIDP nedir? Tam olarak açılımı Mobile Information Device Profile yani mobil cihazınızın versiyonudur diyebiliriz. Bu versiyon ile her üretici kendi mimarisine uygun birer profile seçiyor ve bunun için gerekli ortamı sağlıyor. Siz uygulamanızı geliştirirken cihazın bulunduğu ortama uygun profile a göre geliştirme yapıyorsunuz. Uygulama yüklenirkende ilgili ortama bakıyor ve tüm konfigirasyonlar ve profile lar uygunsa uygulamanızın sistem üzerinde kurulumunu tamamlıyor. Peki MIDlet ne demektir? Aslında MIDlet J2ME ortamında çalıştırılabilir her bir uygulamaya verilen isimdir. Bu isim her MIDlet in bir MIDlet sınıfından türemesi dolayısıyla birer MIDlet sınıfı olmasından kaynaklanıyor. Ileriki konularda uygulamalarımızdan MIDlet olarak bahsedeceğiz gerçek anlamdada bu isme alışırsak iyi olur. MIDlet 1.0 versiyonunda bulunan kütüphaneler aşağıdaki gibidir. www.melihsakarya.com Sayfa 3

java.io java.lang java.util javax.microedition.io javax.microedition.lcdui MIDlet 2.0 da ise durum aşağıdaki gibi java.io java.lang java.util javax.microedition.io javax.microedition.lcdui.game javax.microedition.media javax.microedition.media.control javax.microedition.pki Göründüğü gibi 2.0 versiyonunda kütüphane sayısında bazı değişiklikler gelmiştir. Ancak bu versiyon geçişi sadece yeni gelen kütüphaneler le değil var olan kütüphaneler içerisinde de değişikliğe neden olmuştur. MIDlet 2.0 da gelen en büyük yenilikler media ve game tarafında olmuştur. Bunlar özellikle oyun yazımı ve cihazların media aygıtlarının kontrolü konusunda bir çok yenilik ve kolaylık getirmiştir. Örnek olarak javax.microedition.lcdui.game içerisinde oyun yazmamızı kolaylaştıran bir çok kütüphane bulunuyor. Uygulamarımızda kullanacağımız NetBeans gibi geliştirme ortamları sayesinde bu tarz konfigirasyon ve versiyon farklılıklarından kaynaklanan sınıf değişimlerini rahatlıkla görebiliriz. MIDlet 2.0 ile gelen bir çok yenilikle birlikte örnek olarak media aygıtları yönetimi gibi şeylerin kolaylaştığını söylemiştik. Peki MIDlet 2.0 dan önce yada 1.0 destekli cihazlarda bu tarz kamera yada ses kontrolü gibi işlemler yapılamıyormuydu? Aslında yapılabiliyordu ancak her üretici hatta her üretici her serisi yada modeli için ayrı kütüphaneler üretmek ve bunları yayınlamak zorundaydı. Đşte bu durum bizim platform bağımsızlığımıza engel teşkiş edecek bir ortam yaratıyordu. Eğer kamera kontrolü yapacağımız bir uygulamamız varsa farklı telefonlar için versiyonlar çıkarmak zorunda kalıyorduk. Ancak MIDlet 2.0 tüm bunlar için ortak bir kütüphane yaratıp üreticilerin bu standarta uymalarını sağlamıştır. Tüm bunlar dışında ekstra kütüphaneler için Nokia, Sony-Ericsson, Motorola ve Siemens gibi üreticilerin sitelerinde ilginç örnekler bulabilirsiniz. JSR (Java Specification Requests) Tüm bu versiyonların ve standartların dışında versiyonların ayı olmasına karşın bazı farklı kütüphane destekleri vardır. Örnek olarak bazı telefonlar bluetooth desteklerken www.melihsakarya.com Sayfa 4

bazıları aynı konfigirasyona sahip olmasına karşın böyle bir özelliğe sahip olamayabilirler. Đşte bu tarz durumlarda cihazın belirli JSR lara sahip olası gerekliliği yatar. Peki JSR yani Java Specification Requests nedir? JSR Java yı destekleyen belirli gruplarca oluşturulmuş Java nın ortaklaşa, ortak kararlarla geliştirilebilmesi için oluştulumuş bir oluşumdur. Bu oluşumun adıda JCP yani Java Community Process tir. JCP içerisinde Sun, IBM, Nokia, Ericsson, Siemens, HP gibi bir çok güçlü grup vardır ve üretilecek olan ürünlerde ihtiyaçlara göre standartları belirlerler. Örnek olarak JSR-82 bluetooth paketi olarak çıkarılmıştır. Bluetooth desteği verecek her üreti vu pakete uymak zorundadır. Bunlar dışında geliştirilen ve çıkarılmaya hazırlanan bir çok JSR standartı bulunmaktadır. Örnek olarak JSR-30 standartında yani CLDC üzerinde çalışan bazı şirketler. 3COM Bull Ericsson Matsushita Mitsubishi Electric Motorola Nokia NTT DoCoMo Siemens Bunlar dışında çıkarılan bazı JSR ların listesi aşağıdaki gibidir. JSR Name Package Name 1 Realtime javax.realtime 30 CLDC 1.0 javax.microedition.io 36 CDC 1.0 javax.microedition.io 37 MIDP 1.0 javax.microedition.io javax.microedition.lcdui 62 Personal Profile javax.microedition.xlet javax.microedition.xlet.ixc 75 PDA Optional javax.microedition.pim javax.microedition.file 80¹ USB API java.usb 82 Bluetooth javax.bluetooth javax.obex 113² Speech API javax.speech 118 MIDP 2.0 javax.microedition.io javax.microedition.lcdui javax.microedition.game javax.microedition.media javax.microedition.media.control www.melihsakarya.com Sayfa 5

javax.microedition.pki 120 WMA 1.0 javax.microedition.io javax.wireless.messaging 129 Personal Basis Profile javax.microedition.xlet javax.microedition.xlet.ixc 135 MMAPI 1.0 javax.microedition.media javax.microedition.media.control javax.microedition.media.protocol 139 CLDC 1.1 javax.microedition.io 177 Security and Trust Services API javax.microedition.apdu javax.microedition.jcrmi javax.microedition.pki javax.microedition.securityservice javax.microedition.io javacard.framework javacard.framework.service javacard.security 179 Location API javax.microedition.location 180 SIP API javax.microedition.sip 184 Mobile 3D Graphics API javax.microedtion.m3g 195 Information Module Profile javax.microedition.io 205 WMA 2.0 javax.microedition.io javax.wireless.messaging 211³ Content handler API javax.microedition.content 226¹ Scalable 2D Vector Graphics javax.microedition.m2d API 234¹ Advanced Multimedia Supplements javax.microedition.media javax.microedition.media.control javax.microedition.media.control.audio3d javax.microedition.media.control.audioeffect javax.microedition.media.control.camera javax.microedition.media.control.imageeffect javax.microedition.media.control.tuner MIDlet Sınıf Mimarisi MIDlet lerimiz çalışan uygulamalarımızdır diye belirtmiştik. Bizim her MIDlet imiz MIDlet sınıfında türeme birer sınıftır. MIDlet sınıfı abstract bir sınıf olup üç adet abstract metodu ezmek zorundadır. Abstract sınıflar içerisinde abstract sınıflar barındırır ve tekbaşlarına nesneleri yaratılamaz. Yani MIDlet m= new MIDlet() diye bir nesne oluşturamayız. www.melihsakarya.com Sayfa 6

MIDlet sınıf yapısındaki abstract sınıflar aşağıdaki gibidir. public void startapp() { public void pauseapp() { public void destroyapp(boolean unconditional) { startapp uygulamamız başlatıldığı anda çalışan metodumuzdur. Bu kod bloğu içerisine MIDlet açıldığı anda neler yapmak istediğimizi yazabiliriz. Buna örnek olarak formumuzun oluşturulması ve gösterilmesi diyebiliriz. pauseapp uygulamamız durdurulduğunda çalışan metodumuzdur. Bunları birer blok olarak düşünebiliriz. destroyapp(boolean unconditional) ise uygulamamız sonlandırıldığında çalışır. Örnek olarak oyundan çıktığım anda verilerimi kaydet diyebiliriz. Örneğimizi bir sınıf olarak nitelendirecek olursak aşağıda Test adında bir adet MIDletimiz bulunmaktadır. Göründüğü gibi bu sınıf bir MIDlet sınıfını miras almıştır ve üç adet metodu bulunmaktadır. import.*; public class Test extends MIDlet { public void startapp() { public void pauseapp() { public void destroyapp(boolean unconditional) { Bunun dışında kütüphanesi uygulamamıza import edilmiştir. Bu sayede MIDlet sınıflarımızı bu kütüphane içerisindeki sınıflardan yaratabiliriz. Peki abstract metodlarımızdan herhangi birini kullanmadığımızda ne olur? Aslında mantık olarakta uygulama yöneticisinin uygulamanın çalıştığı anda ne yapacağın bilmesi gerekmektedir. Standart Java da bunlar için main metodlarını kullanabiliriz ancak MIDlet mimarisinda bu biraz daha basitleştirilmiş. Peki şimdi startapp metodumuzu kadırıp uygulamamızı çalıştırmayı deneyelim. Bir hata alduk ve hatamız aşağıdaki gibi. www.melihsakarya.com Sayfa 7

C:\Kitap\DemoKitap\src\Test.java:3: Test is not abstract and does not override abstract method startapp() in.midlet public class Test extends MIDlet { 1 error C:\Sabanci\DemoKitap\nbproject\build-impl.xml:183: Compile failed; see the compiler error output for details. BUILD FAILED (total time: 0 seconds) Burada şu notaya dikkat edelim Test is not abstract and does not override abstract method startapp() in.midlet burada sınıfımızın bir MIDlet abstact sınıfından türemiş olduğunu ve startapp metodunun kullanılmadığını söylüyor. Bu durumda bizim her şekilde bu üç metodu kullanmamız gerektiği net bir şekilde çıkıyor. www.melihsakarya.com Sayfa 8