Mobil Bileşenler Topluluğu    

Geri git   Mobil Bileşenler Topluluğu > Programlama Dilleri Symbian İçin > Mobile Java

Java Yazmak İstiyormusunuz?

Mobile Java içinde Java Yazmak İstiyormusunuz? konusu , 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 ç...

Cevapla
 
LinkBack Seçenekler Stil
Alt 21-09-07, 23:12   #1
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart Java Yazmak İstiyormusunuz?



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
  Alıntı ile Cevapla
Alt 21-09-07, 23:12   #2
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



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ı http://java.sun.com/products/sjwtool...nload-2_3.html 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.
  Alıntı ile Cevapla
Alt 21-09-07, 23:12   #3
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



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 SE - Overview - at a Glance
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.
Sun Java Wireless Toolkit for CLDC (formerly known as Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit) 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
  Alıntı ile Cevapla
Alt 21-09-07, 23:13   #4
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



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 API Specifications 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): Eclipse Downloads
J2ME Wireless Toolkit (j2me_wireless_toolkit-2_2-linux-i386.bin): http://java.sun.com/products/j2mewto...nload-2_2.html
Eclipse J2ME Plugin (eclipseme.feature_0.7.0_site.zip): EclipseME J2ME Plugin
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 Download Java 2 Platform, Standard Edition, v 1.4.2 (J2SE) 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.
  Alıntı ile Cevapla
Alt 21-09-07, 23:13   #5
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



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

1. Eclipse Eclipse.org home
2. J2ME Wireless Toolkit Java Technology
3. Eclipse J2ME Plugin (eclipseme.feature_0.7.0_site.zip): EclipseME J2ME Plugin
  Alıntı ile Cevapla
Alt 21-09-07, 23:14   #6
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



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
  Alıntı ile Cevapla
Alt 21-09-07, 23:15   #7
NIGRA
Guest
 
NIGRA - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



Arkadaşlar bu da java türkçe kitabı
Eklenmiş Dosya
Dosya tipi: zip Javascript Notları (Türkçe).zip (112,1 KB (Kilobyte), 8x kez indirilmiştir)
  Alıntı ile Cevapla
Alt 22-09-07, 01:58   #8
Forum Bağımlısı
 
SAMET04106 - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Apr 2007
Mesajlar: 2.295
Telefonum: Wii
Standart



Çok güzel bi paylaşım çalışmakta yarar var
__________________
Nintendo Wii Kullanıcısı!
SAMET04106 isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 22-09-07, 05:13   #9
Tecrübeli Üye
 
DarkFasT - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Jul 2007
Mesajlar: 731
Telefonum: |3100|
Standart



Çok zahmetli birşey

Ama imkansız değil, sadece zaman alır
__________________


RocK
DarkFasT isimli üye çevrimiçidir (Online)   Alıntı ile Cevapla
Alt 22-09-07, 05:16   #10
Forum Bağımlısı
 
sercan_hawk - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Feb 2007
Nerden: BuRSa
Yaş: 18
Mesajlar: 1.411
Telefonum: 6600
Standart



çok güzel bir çalışma ilk boş zamaımda okuyacağım...
sercan_hawk isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 26-09-07, 04:35   #11
erjunt
Guest
 
erjunt - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



Ellerina sağlık.Çok iyi olmuş bunu vermen.En kısa zamanda okuyup öğrenmeye çalışcam...

Bilmemek ayıp deil öğrenmemek ayıp
  Alıntı ile Cevapla
Alt 01-11-07, 02:47   #12
нуρησтιχ®
Guest
 
нуρησтιχ® - ait Kullanıcı Resmi (Avatar)
 
Mesajlar: n/a
Standart



Alıntı:
erjunt´isimli üyeden Alıntı Mesajı göster
Ellerina sağlık.Çok iyi olmuş bunu vermen.En kısa zamanda okuyup öğrenmeye çalışcam...

Bilmemek ayıp deil öğrenmemek ayıp
emegine saglIK.. Kafa bırakmıyor adamda Wallahi. (=
  Alıntı ile Cevapla
Alt 18-11-07, 14:13   #13
Üye
 
kensai - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Nov 2007
Mesajlar: 80
Telefonum: w810i
Standart



çok uzun ama yararlı bir döküman teşekkürler paylaşım için
__________________
мσвιℓ-ƒσяυм'ѕ ฬαℓкмαηια ! gяσυρ !

SonyEricsson w810i

R4EA031
R3A005
acoustic WOW ll LIVE
Camera Driver 8.52

TRap / Hip hop
kensai isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 01-01-08, 22:41   #14
Yeni Üye
 
sem1heser - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Nov 2007
Mesajlar: 3
Telefonum: SE W810i
Standart



ya helal olsun diyoruz teşekkür ediyoruz
sem1heser isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 01-01-08, 23:57   #15
Forum Bağımlısı
 
buraoca2 - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Aug 2007
Nerden: Eskişehir
Mesajlar: 2.050
Telefonum: Ngage-7260-V3
buraoca2 - MSN üzeri Mesaj gönder
Standart



Teşekkürler emeğinize sağlık. Çok yararlı bir çalışma yapmışsınız. Bende en kısa zamanda okuyup uygulamaya çalışıcam Ama ne kadar başarılı olabilirim, orası meçgul
__________________
Intel Quad Core Q6600 G0(Vid 1.2500) 2.4@3.2 Ghz(1.35v) | MSI P35 Platinum | Artic Cooling Freezer Pro 7 | 4*1 Gb Kingston HyperX CL5 1066 Mhz DDR2 | Sapphire HD4850 Dual Slot Fan | Seagate 320 Gb Sata2 16 Mb NCQ + Samsung 500 Gb Sata2 16 Mb NCQ | Tagan 480 Watt | Thermaltake VA9003BWS Kandalf | Samsung SyncMaster 940BW | A4-Tech X750BF | Nec DVD-RW | Minton HTS-8200 Home Theatre 5+1 | Dexter UPS | Canon Pixma IP4300 | HP Scanjet G3010 | Ps2 GamePad | Speedlink SL-6612 JoyStick | Creative Sound Blaster Live 24-Bit EAX 5.1
buraoca2 isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Cevapla

Bookmarks



Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Saat: 20:48


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.1.0 ©2007, Crawlability, Inc.