Java Uygulama ve Oyun Yazmak İstiyor musunuz ? buyrun

Sponsorlu Bağlantılar

iskenlii

iskenlii

Üye
    Konu Sahibi
Java Uygulama ve Oyun Yazmak İstiyor musunuz ? buyrun
Nedir bu J2ME?
ÖZET
Bu projenin amacı J2ME(Java 2, Micro Edition) MIDP profili ve Java Servlet teknolojileri kullanarak öğrencilerin J2ME MIDP profilini destekleyen kablosuz cihazlarından sunucuya bağlanarak çeşitli bilgileri sorgulamalarını sağlayan bir sistem geliştirmektir.
TERİMLER
J2ME
Java 2 Micro Edition küçük cihazlar için tanımlanmış bir grup belirtim ve teknolojidir. J2ME belli sınıflardaki cihazlar için bir grup konfigürasyon ve profillere bölünmüştür
CLDC
CLDC(Connected, Limited Device Configuration) J2ME nın 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 J2ME 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. Servlet : Java nın sunucu tarafında çalışan bir teknolojisidir.
GİRİŞ
Projenin bir ayağında bir MIDlet uygulaması geliştirilecek ve bu uygulama kablosuz cihaza yüklendikten sonra sunucu üzerinde bulunan Servlet ile iletişime geçerek yapılan sorgulamalara göre kullanıcıya bilgi sunacaktır. İlk olarak öğrenciler, midlet olarak geliştirilmiş uygulamayı Bilişim Enstitüsünün sanaldoku yöresinden kablosuz cihazlarına yüklerler. Daha sonra bu uygulama üzerinden yapılan sorgulamalar ile servletle iletişime geçilir ve gerekli bilgiler kablosuz cihazlarında gösterime sunulur.
TEKNOLOJİ – NEDİR BU J2ME?
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, J2ME ile çıkış günlerindeki amacına geri dönmektedir. Günümüzde Java platformu 3 ana kategoriye ayrılır:
Standard Edition (J2SE): Daha çok kişisel bilgisayarlara yönelik bir takım standartları içerir.
Java 2 SDK (J2SE)
Java 2 Runtime Environment
Java Plug-in
Java Web Start
Java HotSpot Server Virtual Machine
Collections Framework
Java Foundation Classes (JFC)
Swing Components
Pluggable Look & Feel
Accessibility
Drag and Drop
Security
Java IDL
JDBC
JavaBeans
Remote Method Invocation (RMI)
Java 2D
Enterprise Edition (J2EE): Sunuculara yönelik geliştirilen bir takım standartları içerir.
Enterprise JavaBeans (EJB) Architecture
JavaServer Pages (JSP)
Java Servlet
Java Naming and Directory Interface (JNDI)
Java IDL
JDBC
Java Message Service (JMS)
Java Transaction (JTA)
Java Transaction Service (JTS)
JavaMail
RMI-IIOP
Software Development Kit & Application Model
Java 2 SDK, Enterprise Edition (J2EE)
Sun BluePrints Design Guidelines for J2EE
Micro Edition (J2ME): Cep telefonları, kablosuz el cihazları, kişisel dijital asistanlar ve benzeri kaynakları kısıtlı cihazlar için geliştirilen standartları içerir.
Java 2 Platform, Micro Edition (J2ME technology)
Connected Device Configuration (CDC)
Connected Limited Device Configuration (CLDC)
C Virtual Machine (CVM)
K Virtual Machine (KVM)
PersonalJava
JavaPhone API
Java TV API
Jini Network Technology
Mobile Information Device Profile (MIDP)
J2ME sadece bir bir belirtim değildir. J2ME, kablosuz cihaz pazarının farklı bölümleri için geliştirilmiş belirtim ve teknolojilerin toplamıdır. Kablosuz cihaz pazarının çeşitliliğinden dolayı herşeye uyacak standart bir çözüm getirilemediğinden dolayı böyle bir çözüm üretilmiştir.
JAVA Kavram Haritası


KONFİGÜRASYON VE PROFİLLER
J2ME ç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.
JAVA Kavram Haritası


Şimdi bu konfigürasyon ve profillerden bazılarını inceleyelim:
CLDC Konfigürasyonu
CLCD(Connected, Limited Device Configuration) daha kısıtlı kaynaklara sahip cihazlara yönelik bir J2ME konfigürasyonudur. Bu profilin çekirdeğinde bir java sanal makinesi olan KVM yatmaktadır. KVM, JVM in bazı kısımlarının çıkartılarak daha önemli ve gerekli parçalarını içerecek şekilde tasarlanmış halidir. KVM ismindeki K harfi bu sanal makinenin Megabyte boyutunda hafızayla değil Kilobyte boyutunda hafıza ile çalışabilmesinden gelmektedir. Bu konfigürasyon 512 KB tan ufak hafızası ve sınırlı ağ bağlantısı olan cihazlar için tasarlanmıştır.
Bu konfigürasyonun ait Java paketleri:
java.io
java.lang
java.lang.ref
java.util
javax.microedition.io
CDC Konfigürasyonu
CLCD(Connected Device Configuration) daha az kısıtlı kaynaklara sahip cihazlara yönelik bir J2ME konfigürasyonudur. Bu profilin çekirdeğinde de CVM(Compact Virtual Machine) sanal makinesi bulunmaktadır. Genellikle CLDC den daha fazla hafıza ve işlemci gücüne sahip cihazlarda kullanılır. Ayrıca bu cihazlar sürekli ağ bağlantısına sahiptirler.
Bu konfigürasyonun ait Java paketleri:
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
MIDP Profili
MIDP(Mobile Information Device Profile) mevcut profiller arasında ilk ve en yaygın olanıdır ve uygulamanın yaşam döngüsü, kullanıcı grafik arabirimleri, iletişim ağı ve kalıcı depolama ile ilgili kütüphanelerini içerir. MIDP CLDC konfigürasyonunun üzerine oturur ve günümüzde Motorola, Nokia, Ericsson ve RIM(Blackburry) gibi sector devleri tarafından desteklenmektedir.
MIDP 1.0 ın desteklediği paketler:
java.io
java.lang,java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.midlet
javax.microedition.rms
MIDP 2.0 ın desteklediği paketler:
java.io
java.lang
java.util
javax.microedition.io
javax.microedition.lcdui.game
javax.microedition.media
javax.microedition.media.control
javax.microedition.midlet, javax.microedition.pki
javax.microedition.rms
Günümüzde J2ME özelliğine sahip cep telefonlarının büyük bir çoğunluğu aşağıdaki özellikleri içermektedir

MIDP kapasiteli cihaz mimarisi


CDC Tabanlı Bazı Profiller
CDC konfigürasyonu üzerindeki bazı profiller şunlardır: Foundation Profil, Personal Basis Profil ve Personal Profil.
Basit olarak tanımlamak gerekirse Foundation Profil CDC nin üzerine ektradan J2SE nesneleri ekler. Bu profile sahip cihazların en onemli özelliği sürekli ağ bağlantısı olmasına karşılık kullanıcı arabirimine sahip olmamasıdır. Ayrıca ekstra güvenlik nesneleri kullanır. Daha çok diğer profillere temel oluşturur.
Personal Profil Foundation Profil üzerinde AWT kullanıcı arabirimi nesnelerinin bir alt kümesini içerir.
Personal Profil ise PersonalJava uygulama çevresini J2ME profile olarak yeniden tanımlar. Bu profil AWT kullanıcı arabirimi nesnelerini daha fazla kapsayacak şekilde tanımlanmıştır.
CDC tabanlı bazı profiler ve ilişkileri


MIDP PROGRAMMING, MIDLETLER
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ü
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. AMS Java Uygulama Yöneticisi (Java Application Manager) olarak da bilinir. 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.

Bir MIDlet yazılımcısı yazılımını etkin modda çalıştırır ve gerektiği zaman diğer durumlar arasında geçişleri sağlar.
MIDP Kullanıcı Arabirimi
MIDP kullanıcı arabirimi düşük ve ve yüksek düzey olmak üzere iki ana kategoriye ayrılır. Düşük düzey kullanıcı arabirimi Canvas isimli nesneye dayanır. Yüksek düzey kullanıcı arabirim nesneleri ise Alert, Form, List ve TextBox olarak sıralanabilir. Bu nesnelerin görünüş biçimleri profilin gerçekleştirildiği cihazların kullanıcı arabirimlerine göre değişebilir.
Canvas nesnesi ile kullanıcı arabirimine daha direk kontrol sağlanır. Mesela ekranda nelerin çizileceği ve klavye olayları hakkında daha geniş bir kontrol sağlanır. Kullanıcı arabirimlerini kullanırken en önemli, dikkat edilmesi gereken nokta yazacağımız MIDletlerin değişik kapasiteli cihazlarda çalışabiliyor olmasıdır. Dolayısı ile ekran genişliği, ekranın renkli veya siyaz-beyaz oluşuna göre bir takım kontroller yaptırarak MIDletlerimizi bu değişik ortamlara uyum sağlayabilecek şekilde yazmalıyız.

MIDlet Suites ve Uygulama Tanımlayıcıları
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 Yazilim
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 gore ilgili MIDlet sisteme yüklenerek çalıştırılacaktır.
MIDlet Örneği
MerhabaDunya.javaIndir Göster Gizle Kopar Satır Gizle Satır Göster

1 import javax.microedition.midlet.*;
2 import javax.microedition.lcdui.*;
3 public class MerhabaDunya extends MIDlet implements CommandListener {
4 // çıkış komutu
5 private Command exitCommand;
6 // display nesnesi
7 private Display display;
8 // ticker yarat
9 private Ticker hi = new Ticker("J2ME ornegi");
10 public MerhabaDunya() {
11 display = Display.getDisplay(this);
12 exitCommand = new Command("Cikis", Command.SCREEN, 2);
13 }
14 public void startApp() {
15 TextBox t = new TextBox("Merhaba Dunya", "Ilk yazim", 256, 0);
16
17 t.addCommand(exitCommand);
18 t.setCommandListener(this);
19 t.setTicker(hi);
20 display.setCurrent(t);
21 }
22 public void pauseApp() { }
23
24 public void destroyApp(boolean unconditional) { }
25 public void commandAction(Command c, Displayable s) {
26 if (c == exitCommand) {
27 destroyApp(false);
28 notifyDestroyed();
29 }
30 }
31 }


*alıntıdır


--------------- Ekleme ---------------

Java Kodları Derleyip Jar Yapmak?

j2me ile yaptığın programları sun ın wireless toolkit programı sayesinde derleyebilir ve sonuçlarını emülatörde görebilirsin. Ayrıca bu program ile yaptığın programı .jar dosyası haline dönüştürebilirsin.
Java Wireless Toolkit 2.3 Beta ile midlet'ler hazırlayabilir ve bu midletteri emulator'de görebilirsiniz. Daha sonra gerçek telefonlarda (veya Palm gibi cihazlarda) deneyebilirsiniz. Bu programın kendisi kod yazmak için değildir. Başka bir editorde yazdığınız kodu derleyip küçük cihazlara kurulacak hale getirmektedir.

Java Wireless Toolkit 2.3 Beta programını
sayfasından download edebilirsiniz.

Bu programın kullanımı;
1. İlk olarak Sun Java Wireless Toolkit programı açılır ve New Project denildikten sonra açılan pencereye Project Name ve MIDlet Class Name yazılır.( MIDlet Class Name yazdığımız java programının adı ile aynı olmalıdır. Classımızın adı “YILAN.class” , MIDlet Class Name yerine “YILAN” yazıyoruz.) Create Project dedikten sonra j2me nin kurulu olduğu yere verdiğimiz proje isminde yeni bir klasör oluşturulur.

2. Yazdığımız java uzantılı programımızı oluşan yeni klasörün içindeki src adlı klasöre koyuyoruz.

3. Programımızı build ediyoruz. Hata varsa alt satırlarda gösterir yoksa Build complete mesajını alırız. Daha sonra Run ederek programın emülatörde nasıl çalıştığını görebiliriz.

-----------------

Programı .jar haline getirmek için ikinci yol ise şöyle;

Programımız derlendi, hata vermedi ve çalışıyor ise .jar ı şu şekilde oluşturabiliriz.

a) classes klasörünün içindeki YILAN.class ve Field.class dosyalarını bin klasörüne kopyalıyoruz.

b) bin klasörünün içinde bulunan MANIFEST.mf dosyasının adını manifest.txt olarak değiştiriyoruz ve .jad uzantılı olan dosyayı not defterinde açtıktan sonra dosyadaki içeriği manifest.txt dosyasına kopyalıyoruz.

c)bu durumda bin klasörünün içinde .jad uzantılı bir dosya, manifest.txt, YILAN.class ve Field.class olarak 4 dosyamız bulunuyor.

d) Komut istemini açıyoruz ve bin klasörünün olduğu yere geliyoruz.

e) Şu ifadeyi yazıyoruz ve enter a basıyoruz. “ jar cvfm YILAN.jar manifest.txt YILAN.class Field.class ”

f) bin klasörünün içine deneme.jar dosyası oluşmuş oldu.

g) YILAN.jar dosyamızın boyutuna bakıyoruz. Örneğin Boyut: 1,09 KB(1126 bayt) yazıyor olsun. .jad uzantılı dosyamızı not defterinde açıyoruz ve MIDlet-Jar-Size: 100 olan satırda midletimizin uzunluğunu bayt cinsinden yazıyoruz ve dosyayı kaydedip çıkıyoruz. MIDlet-Jar-Size: 1126 gibi.

g) Artık .jad dosyasına çift tıklayarak emülatörde programımızın çalışmasını görebiliriz. YILAN.jar dosyasını telefona atıp çalıştırabiliriz.


--------------- Ekleme ---------------

Java ME ile Yazılım Geliştirme
Giriş
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.

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

[değiştir] Terimler
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.

[değiştir] Konfigürasyon ve Profiller
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.

[değiştir] MIDP Programlama, MIDletler
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.

[değiştir] MIDlet Yaşam Döngüsü
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.

[değiştir] MIDlet Suiteler ve Uygulama Tanımlayıcıları
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.

[değiştir] MIDP Uygulama Geliştirme
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

[değiştir] Uygulama Geliştirme Ortamı Olarak “Sun Wireless Toolkit”
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ü.

[değiştir] Java Platform, Standard Edition (Java SE) Kurulumu
İlk olarak ihtiyaç duyduğumuz Java Standart Edition SDK sını

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)

[değiştir] Java Wireless Toolkit Kurulumu
Ş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.
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.
"http://tr.wikibooks.org/wiki/Java_ME_ile_Yaz%C4%B1l%C4%B1m_Geli%C5%9Ftirme"'dan alındı
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

--------------- Ekleme ---------------

J2ME nedir, bu doküman neye yarar?
J2ME (Java 2 Micro Edition) Sun Microsystems'in Java platformunun gömülü cihazlar için kırpılmış, değiştirilmiş sürümüne verdiği addır. Eğer ki cep telefonunuzun özellikleri arasında Java, J2ME gibi terimler varsa, yazdığınız uygulamaları kendi cep telefonunuzda kullanabileceksiniz.
Bu doküman, üzerinde J2ME yazılımları geliştirip, çalıştırabileceğiniz bir IDE kurmanızda size yardımcı olacaktır. Bu eğitimin ardından, varolan java bilginiz ile
adresindeki API dokümanları ile J2ME uygulama geliştirebileceksiniz.
Gerekli Yazılımlar
Aşağıda adı geçen 3 dosyayı ya da varsa daha yeni versiyonlarını çekin.
Eclipse (eclipse-SDK-3.1M4-linux-gtk.zip):

J2ME Wireless Toolkit (j2me_wireless_toolkit-2_2-linux-i386.bin):

Eclipse J2ME Plugin (eclipseme.feature_0.7.0_site.zip):

Kurulum Adımları
Eclipse
Eclipse kurulumu sadece eclipse-SDK-3.1M4-linux-gtk.zip dosyasını açmaktan ibaret. Konsoldan "unzip eclipse-SDK-3.1M4-linux-gtk.zip" yazarak arşivi açın. eclipse adında bir klasör yaratılacak.
J2ME Wireless Toolkit
J2ME Wireless Toolkit kurmak için sisteminizde J2SE SDK kurulu olmalıdır. Bu yüzden
adresinden çekip basitçe kurabilirsiniz. J2SE SDK kurduktan hemen sonra konsoldan "sh j2me_wireless_toolkit-2_2-linux-i386.bin" yazıp çıkacak 1-2 yönlendirmeyi geçerek kurulumu tamamlayın.
Eclipse J2ME Plugin
Az önce eclipse arşivini açtığımızda ortaya çıkan klasörün içinden eclipse'i çalıştırın. İlk çalıştırma olduğundan çalışma alanı için bir dizin soracaktır. Varsayılan dizini kabul edip geçin, ardından "Workbench"e basın.
Help menüsündeki Software Updates altındaki Find and Install'u seçin, Search for new features to install deyip New Archived Site butonuna basın. Dosya seçin arabiriminde eclipseme.feature_0.7.0_site.zip'i bulun ve kabul edin. Listeye yeni eklenen seçeneği seçip bir sonraki adıma geçip EclipseME'nin önündeki kutucuğu tıklayıp bir adım daha ilerleyin. Lisansı okuyup kabul ediyorsanız bunu belirtip sonraki adımları da tamamlayıp kurulum işlemini bitirin.
Son olarak J2ME eklentisine J2MEWTK'yı göstermelisiniz. Bunun için Window menüsünden Preferences'ı seçin. J2ME/Platform Components/Wireless Toolkits'e sağ tıklayıp Add Wireless Toolkit ile J2MEWTK'yı kurmuş olduğunuz dizini bulun. Çalışma ortamına dönene kadar açık olan pencereleri onaylayıp kapatın.
Proje
File/New/Project altından J2ME/J2ME Midlet Suite seçin, projenize ad verip uygulamanızın çalıştırılacağı ortamı belirleyin (MIDP 1.0) ve sihirbazı sonlandırın.
Şimdi de çok kısa bir merhaba dünya uygulaması bulalım. Google'a "j2me hello world" yazarak bulabilir ya da aşağıdaki örneği kullanabilirsiniz:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Main extends MIDlet implements CommandListener
{

private Command exitCommand;

private TextBox tbox;

public Main()
{
this.exitCommand = new Command("Exit", Command.EXIT, 1);
this.tbox = new TextBox("Hello world MIDlet", "Hello World!",
25, 0);
this.tbox.addCommand(this.exitCommand);
this.tbox.setCommandListener(this);
}

protected void startApp() throws MIDletStateChangeException
{
Display.getDisplay(this).setCurrent(this.tbox);
}

protected void pauseApp()
{

}

protected void destroyApp(boolean arg0)
throws MIDletStateChangeException
{

}

public void commandAction(Command arg0, Displayable arg1)
{

}

}
File/New/Other'dan J2ME Midlet seçip eğer yukarıdaki merhaba dünya uygulamasını kullanacaksanız "Main", değilse kullanmak istediğiniz örnek ile aynı adda bir sınıf yaratın.
Uygulamayı çalıştırmak için Run menüsünden Run... seçin. Wireless Toolkit Emulator'a tıklayıp, "New" deyin. Executable'da Midlet'i seçi az önce yarattığımız sınıfı bulun. Apply ve Run dediğinizde emulatör içinde uygulamanız çalışacaktır.
Uygulamayı telefona yollamak için ise emulatörü kapatıp, sol taraftaki Navigator içinden projenize sağ tıklayıp J2ME menüsünden Create Package deyin ve [Workspace dizini]/[Proje adı]/deployed dizinindeki jar dosyasını telefonunuza yükleyebilirsiniz.


--------------- Ekleme ---------------

Java yazmaya başlamak isteyenler için gerekli yazılımlar

1. Eclipse

2. J2ME Wireless Toolkit
3. Eclipse J2ME Plugin (eclipseme.feature_0.7.0_site.zip):

--------------- Ekleme ---------------

basit bir java midlet jem2 midp2.0 uygulaması

kodlar

(hello adında java class dosyası oluşturun src klasörüne) Hello.java:
package net.frog_parrot.hello;

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

/**
* This is the main class of the hello world demo.
*
* @author Carol Hamer
*/
public class Hello extends MIDlet implements CommandListener {

/**
* The canvas is the region of the screen that has been allotted
* to the game.
*/
HelloCanvas myCanvas;

/**
* The Command objects appear as buttons.
*/
private Command exitCommand = new Command("Exit", Command.EXIT, 99);

/**
* The Command objects appear as buttons.
*/
private Command newCommand = new Command("Toggle Msg", Command.SCREEN, 1);

/**
* Initialize the canvas and the commands.
*/
public Hello() {
myCanvas = new HelloCanvas(Display.getDisplay(this));
myCanvas.addCommand(exitCommand);
myCanvas.addCommand(newCommand);
myCanvas.setCommandListener(this);
}

//----------------------------------------------------------------
// implementation of MIDlet

/**
* Start the application.
*/
public void startApp() throws MIDletStateChangeException {
myCanvas.start();
}

/**
* If the MIDlet was using resources, it should release
* them in this method.
*/
public void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
}

/**
* This method is called to notify the MIDlet to enter a paused
* state. The MIDlet should use this opportunity to release
* shared resources.
*/
public void pauseApp() {
}

//----------------------------------------------------------------
// implementation of CommandListener

/*
* Respond to a command issued on the Canvas.
* (either reset or exit).
*/
public void commandAction(Command c, Displayable s) {
if(c == newCommand) {
myCanvas.newHello();
} else if(c == exitCommand) {
try {
destroyApp(false);
notifyDestroyed();
} catch (MIDletStateChangeException ex) {
}
}
}

}
(hellocanvas adında java class dosyası oluşturun src klasörüne)Here's the code for HelloCanvas.java:

package net.frog_parrot.hello;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

/**
* This class represents the region of the screen that has been allotted
* to the game.
*
* @author Carol Hamer
*/
public class HelloCanvas extends javax.microedition.lcdui.game.GameCanvas {

//---------------------------------------------------------
// fields

/**
* A handle to the screen of the device.
*/
Display myDisplay;

/**
* whether or not the screen should currently display the
* "hello world" message.
*/
boolean mySayHello = true;

//-----------------------------------------------------
// initialization and game state changes

/**
* Constructor merely sets the display.
*/
public HelloCanvas(Display d) {
super(false);
myDisplay = d;
}

/**
* This is called as soon as the application begins.
*/
void start() {
myDisplay.setCurrent(this);
repaint();
}

/**
* toggle the hello message.
*/
void newHello() {
mySayHello = !mySayHello;
// paint the display
repaint();
}

//-------------------------------------------------------
// graphics methods

/**
* clear the screen and display the hello world message if appropriate.
*/
public void paint(Graphics g) {
// x and y are the coordinates of the top corner of the
// game's display area:
int x = g.getClipX();
int y = g.getClipY();
// w and h are the width and height of the display area:
int w = g.getClipWidth();
int h = g.getClipHeight();
// clear the screen (paint it white):
g.setColor(0xffffff);
g.fillRect(x, y, w, h);
// display the hello world message if appropriate:.
if(mySayHello) {
Font font = g.getFont();
int fontHeight = font.getHeight();
int fontWidth = font.stringWidth("Hello World!");
// set the text color to red:
g.setColor(0x00ff0000);
g.setFont(font);
// write the string in the center of the screen
g.drawString("Hello World!", (w - fontWidth)/2,
(h - fontHeight)/2,
g.TOP|g.LEFT);
}
}

}

son olarak eclipsenin kendi emülatörü sayesinde programızı test ediyoruz hata yoksa ve programın son haline getirdiysek jara çevirip jad maker ile yada jad wizard ile (internette bulabilirsiniz bu programı) jad dosyasını da oluşturduktan sonra telefona gönderip çalıştırabiliriz
 
  • Beğen
Tepkiler: fllover ve celik5800


akula

akula

Üye
emegine saglık
 
  • Beğen
Tepkiler: iskenlii
Ozan

Ozan

Admin
Tesekkurler ummarım meraklılarına faydalı olur
 
  • Beğen
Tepkiler: iskenlii
ycg35

ycg35

Üye
helal olsun beee!!! şu anlatıma bak muhtemelen kopyala yapıştır yaptın ama nerden bulduysan helal olsun keşke vaktim olsada kendime bi java uygulama yapabilsem :) ancak içlerini açıp tr leştirme yapabiliyorum şimdilik :D
 
  • Beğen
Tepkiler: iskenlii
msdony

msdony

Üye
allah bunları yapanlara yardım etsin bune böyle roman gibi
 
degerli43

degerli43

Üye
helal olsun beee!!! şu anlatıma bak muhtemelen kopyala yapıştır yaptın ama nerden bulduysan helal olsun keşke vaktim olsada kendime bi java uygulama yapabilsem :) ancak içlerini açıp tr leştirme yapabiliyorum şimdilik :D

ben de aynen isim değiştirme türkçeleştirme yapabiliyorum:)
 
iskenlii

iskenlii

Üye
    Konu Sahibi
Arkaşlar abim yazdı bunları
 

oya123

Üye
bence üst konu olsun bence :D
 
mrat52

mrat52

Üye
harbıden allah bunları yapanlara kolaylık versın:) bu ne bole yaa bıras okudum ama hıc bısı anlamadım :D:d
 
iskenlii

iskenlii

Üye
    Konu Sahibi
Valla Kendi Java nı Yapmak İStiyorsan Buyur yani :D
 

By.pxakadz3

Üye
bunu sonuna kadar okyuan varsa helal olsun derim :) bilgi için saol ;)
 
iskenlii

iskenlii

Üye
    Konu Sahibi
Bişe değil
 
dada21

dada21

Üye
ben de sadece türkçeleştirme yapabiliyorum bide örn real footballdaki oyuncuların güçlerini fln değiştirebilsem daha iyi olacak
 
Romantik Prens

Romantik Prens

Üye
teşekkürler
 


Üst Alt