j2me melih sakarya java teknolojileri derneği. jvm java kullanılan yerler ...

35

Click here to load reader

Upload: rowan-izard

Post on 31-Mar-2015

238 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

J2MEJ2ME

Melih SakaryaMelih Sakarya

Java Teknolojileri DerneğiJava Teknolojileri Derneği

Page 2: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

JVMJVM

JAVA Kullanılan yerlerJAVA Kullanılan yerler Windows-Linux-Unix-SolarisWindows-Linux-Unix-Solaris PDA larPDA lar Smart CardlarSmart Cardlar Cep TelefonlarıCep Telefonları AppletlerAppletler Local ApplicationlarLocal Applicationlar LEGOLEGO Java TvJava Tv

Page 3: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

KONFİGÜRASYON VE PROFİLLERKONFİGÜRASYON VE PROFİLLER

CLDC (Connected Limited Device Configuration) CLDC (Connected Limited Device Configuration) CDC (Connected Device Configuration) CDC (Connected Device Configuration)

Page 4: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

CLCD KonfigirasyonuCLCD Konfigirasyonu

KVM 512 KB tan ufak hafızası ve sınırlı ağ KVM 512 KB tan ufak hafızası ve sınırlı ağ

bağlantısı olan cihazlar için tasarlanmıştır bağlantısı olan cihazlar için tasarlanmıştır

java.io java.io java.lang java.lang java.lang.ref java.lang.ref java.util java.util javax.microedition.io javax.microedition.io

Page 5: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

CDC Konfigürasyonu CDC Konfigürasyonu CVM (Compact Virtual Machine) CVM (Compact Virtual Machine) CLDC den daha fazla hafıza ve işlemci gücüne sahipCLDC den daha fazla hafıza ve işlemci gücüne sahip

cihazlarda kullanılırcihazlarda kullanılır

java.io java.io java.lang java.lang java.lang.ref java.lang.ref java.lang.reflect java.lang.reflect java.mathjava.math java.net java.net java.security java.security java.security.cert java.security.cert java.textjava.text java.util java.util java.util.jarjava.util.jar java.util.zip java.util.zip javax.microedition.io javax.microedition.io

Page 6: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

(MIDP)(MIDP)Mobile Information Device Profile Mobile Information Device Profile

MIDP 1.0 MIDP 1.0 MIDP 2.0 MIDP 2.0

Page 7: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

MIDP 1.0MIDP 1.0 java.io java.io java.langjava.lang java.util java.util javax.microedition.io javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui javax.microedition.midlet javax.microedition.midlet javax.microedition.rms javax.microedition.rms

Page 8: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

MIDP 2.0MIDP 2.0 java.io java.io java.lang java.lang java.util java.util javax.microedition.io javax.microedition.io javax.microedition.lcdui.game javax.microedition.lcdui.game javax.microedition.media javax.microedition.media javax.microedition.media.control javax.microedition.media.control javax.microedition.midletjavax.microedition.midlet javax.microedition.pki javax.microedition.pki javax.microedition.rms javax.microedition.rms

Page 9: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

J2ME ve IDE ler J2ME ve IDE ler

http://java.sun.com/j2me/http://java.sun.com/j2me/

http://www.netbeans.orghttp://www.netbeans.org

http://wwws.sun.com/software/sundev/previous/studhttp://wwws.sun.com/software/sundev/previous/studio4u1/buy/io4u1/buy/

http://www.eclipse.org/http://www.eclipse.org/

http://http://eclipseme.sourceforge.neteclipseme.sourceforge.net//

Page 10: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

J2WTK KurulumuJ2WTK Kurulumu

http://java.sun.com/products/j2mewtoolkit/download-2_2.htmlhttp://java.sun.com/products/j2mewtoolkit/download-2_2.html

Page 11: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Midlet YapısıMidlet Yapısı

public void startApp(){public void startApp(){

} }

protected void pauseApp(){protected void pauseApp(){

} }

protected void destroyApp(boolean boolean0){protected void destroyApp(boolean boolean0){

} }

Page 12: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Örnek MidletÖrnek Midlet

import javax.microedition.midlet.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.*; public class OrnekMidlet extends MIDlet{ public class OrnekMidlet extends MIDlet{

protected void startApp(){} protected void startApp(){} protected void pauseApp(){} protected void pauseApp(){} protected void destroyApp(boolean boolean0){} protected void destroyApp(boolean boolean0){}

} }

Page 13: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Örnek MidletÖrnek Midletimport javax.microedition.midlet.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.*; public class MerhabaDunya extends MIDlet{ public class MerhabaDunya extends MIDlet{

protected void startApp(){ protected void startApp(){ TextBox box=new TextBox("Merhaba","MerhabaDünya",100,TextField.ANY); TextBox box=new TextBox("Merhaba","MerhabaDünya",100,TextField.ANY); Display.getDisplay(this).setCurrent(box); Display.getDisplay(this).setCurrent(box); }} protected void pauseApp(){} protected void pauseApp(){} protected void destroyApp(boolean boolean0){} protected void destroyApp(boolean boolean0){}

} }

Page 14: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface

Display.getDisplay(this) Display.getDisplay(this)

Page 15: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface

Display.getDisplay(this).setCurrent(nesne) Display.getDisplay(this).setCurrent(nesne)

Page 16: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface TextBox box=new TextBox("hello","Hello MIDlet",100,TextField.ANY);TextBox box=new TextBox("hello","Hello MIDlet",100,TextField.ANY);

Display.getDisplay(this).setCurrent(box); Display.getDisplay(this).setCurrent(box);

Page 17: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Form NesneleriForm Nesneleri

Form form= new Form("Giris");Form form= new Form("Giris");TextField user= new TextField("Username:","",20,TextField.ANY);TextField user= new TextField("Username:","",20,TextField.ANY);TextField pass= new TextField("Password:","",20,TextField.PASSWORD);TextField pass= new TextField("Password:","",20,TextField.PASSWORD);ChoiceGroup cinsiyet=new ChoiceGroup("Cinsiyet", ChoiceGroup.EXCLUSIVE);ChoiceGroup cinsiyet=new ChoiceGroup("Cinsiyet", ChoiceGroup.EXCLUSIVE);cinsiyet.append("Bay",null);cinsiyet.append("Bay",null);cinsiyet.append("Bayan",null);cinsiyet.append("Bayan",null);DateField tarih=new DateField("Dogum Tarihi",DateField.DATE);DateField tarih=new DateField("Dogum Tarihi",DateField.DATE);

form.append(tarih);form.append(tarih);form.append(cinsiyet);form.append(cinsiyet);form.append(user);form.append(user);form.append(pass);form.append(pass);display.setCurrent(form);display.setCurrent(form);

Page 18: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Command Command import javax.microedition.midlet.*;import javax.microedition.midlet.*;

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

public class formUygulamasi extends MIDlet implements CommandListener{public class formUygulamasi extends MIDlet implements CommandListener{

Form form;Form form;

Command cikis;Command cikis;

Command kaydet;Command kaydet;

public void startApp() {public void startApp() {

form= new Form("Kayit Formu");form= new Form("Kayit Formu");

TextField ad= new TextField("Adiniz:","",20,TextField.ANY);TextField ad= new TextField("Adiniz:","",20,TextField.ANY);

cikis= new Command ("Cikis",Command.EXIT,2);cikis= new Command ("Cikis",Command.EXIT,2);

kaydet= new Command("Kaydet",Command.OK,1);kaydet= new Command("Kaydet",Command.OK,1);

form.addCommand(cikis);form.addCommand(cikis);

form.addCommand(kaydet);form.addCommand(kaydet);

form.append(ad);form.append(ad);

Display.getDisplay(this).setCurrent(form);Display.getDisplay(this).setCurrent(form);

}}

public void pauseApp() {public void pauseApp() {

}}

public void destroyApp(boolean unconditional) {public void destroyApp(boolean unconditional) {

}}

public void commandAction(Command c, Displayable s) {public void commandAction(Command c, Displayable s) {

if (c == kaydet) {if (c == kaydet) {

//islemler//islemler

}}

}}

}}

Page 19: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

AlertAlert

Alert uyari = new Alert("Uyari", "Bos Alan Birakmayiniz", null, null);Alert uyari = new Alert("Uyari", "Bos Alan Birakmayiniz", null, null);

uyari.setTimeout(Alert.FOREVER);uyari.setTimeout(Alert.FOREVER);

Display.getDisplay(this).setCurrent(uyari); Display.getDisplay(this).setCurrent(uyari);

Page 20: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

RMS (Record Management System)RMS (Record Management System) ////YaziyoruzYaziyoruz

RecordStore rs=RecordStore.openRecordStore("telefon", true);RecordStore rs=RecordStore.openRecordStore("telefon", true);

String[] liste={"Melih","Altug","Murat","Burak","Ozan","Mustafa"};String[] liste={"Melih","Altug","Murat","Burak","Ozan","Mustafa"};

byte[] record;byte[] record;

for (int i=0;i<liste.length;i++){for (int i=0;i<liste.length;i++){

record=liste[i].getBytes();record=liste[i].getBytes();

rs.addRecord(record,0, record.length);rs.addRecord(record,0, record.length);

}}

Page 21: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

RMS (Record Management System)RMS (Record Management System)

//okuyoruz//okuyoruz

byte[] recData= new byte[100];byte[] recData= new byte[100];

int dataLen;int dataLen;

for(int i=1;i<rs.getNumRecords();i++){for(int i=1;i<rs.getNumRecords();i++){

rs.getRecord(i,recData,0);rs.getRecord(i,recData,0);

dataLen = rs.getRecord(i,recData,0);dataLen = rs.getRecord(i,recData,0);

String str=new String(recData,0,dataLen);String str=new String(recData,0,dataLen);

try{try{

System.out.println("icerik "+i+":"+str); System.out.println("icerik "+i+":"+str);

}}

catch(Exception e){catch(Exception e){

System.out.println(e.toString());System.out.println(e.toString());

}}

Page 22: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

RMS (Record Management System)RMS (Record Management System)

//kapatiyoruz//kapatiyoruz

rs.closeRecordStore();rs.closeRecordStore();

Page 23: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

RMS (Record Management System)RMS (Record Management System)

try{try{

RecordStore.deleteRecordStore("telefon");RecordStore.deleteRecordStore("telefon");

}}

catch(Exception e){catch(Exception e){

}}

Page 24: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Sunucuya BaglanmaSunucuya Baglanma

Socket BaglantısıSocket Baglantısı Http BaglantisiHttp Baglantisi

InputConnectionInputConnection OutputConnectionOutputConnection DatagramConnectionDatagramConnection StreamConnectionStreamConnection HttpConnectionHttpConnection

Page 25: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

HttpConnectionHttpConnection

HttpConnection baglanti= (HttpConnection)Connector.open("http://localhost:8080/test/index.jsp");HttpConnection baglanti= (HttpConnection)Connector.open("http://localhost:8080/test/index.jsp");

InputStream is=baglanti.openInputStream();InputStream is=baglanti.openInputStream();

int ch;int ch;

StringBuffer haber= new StringBuffer();StringBuffer haber= new StringBuffer();

while((ch=is.read())!=-1){while((ch=is.read())!=-1){

haber.append( (char)ch ); haber.append( (char)ch );

}}

is.close();is.close();

baglanti.close();baglanti.close();

Page 26: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

CanvasCanvasimport javax.microedition.midlet.*;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.lcdui.*;public class CanvasTest extends MIDlet{public class CanvasTest extends MIDlet{ public void startApp(){public void startApp(){ TestCanvas canvas=new TestCanvas();TestCanvas canvas=new TestCanvas(); Display.getDisplay(this).setCurrent(canvas);Display.getDisplay(this).setCurrent(canvas); }} public void pauseApp(){}public void pauseApp(){} public void destroyApp(boolean unconditional){}public void destroyApp(boolean unconditional){} public class TestCanvas extends Canvas{public class TestCanvas extends Canvas{ public void paint(Graphics g){public void paint(Graphics g){ g.setColor(255,255,255);g.setColor(255,255,255); g.fillRect(0,0,getWidth(),getHeight());g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0,0,0);g.setColor(0,0,0); g.drawRect(10,10,50,50);g.drawRect(10,10,50,50); }} }}}}

Page 27: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Media ApiMedia Api

InputStream is =getClass().getResourceAsStram(“/audio.wav”);InputStream is =getClass().getResourceAsStram(“/audio.wav”);

Player player= Manager.createPlayer(is, “audio/X-wav”);Player player= Manager.createPlayer(is, “audio/X-wav”);

player.start();player.start();

Page 28: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Game ApiGame Api

javax.microedition.lcdui.game javax.microedition.lcdui.game GameCanvasGameCanvas : Canvas class'ından extend olan bir oyun canvası. : Canvas class'ından extend olan bir oyun canvası. LayerLayer: Bir orjini birde genişlik ve yüksekliği olan dikdörtgensel bir bölge : Bir orjini birde genişlik ve yüksekliği olan dikdörtgensel bir bölge

tanımlamak için kullanılan bir class. tanımlamak için kullanılan bir class. LayerManagerLayerManager: Birden fazla Layer nesnelerini yönetmek için kullanılan bir : Birden fazla Layer nesnelerini yönetmek için kullanılan bir

class class SpriteSprite: Bir image'ı olan oyun nesneleri için kullanılan class. Animasyon, : Bir image'ı olan oyun nesneleri için kullanılan class. Animasyon,

Döndürme gibi özellikleri bulunmakta . Döndürme gibi özellikleri bulunmakta . TiledLayerTiledLayer: Birden fazla hücresi olan bir layer nesnesi. Bu hücrelere image : Birden fazla hücresi olan bir layer nesnesi. Bu hücrelere image

koyulabiliyor. Bu şeklilde aynı image'lardan bir çok TiledLayer nesnesi koyulabiliyor. Bu şeklilde aynı image'lardan bir çok TiledLayer nesnesi yaratılabiliyor. yaratılabiliyor.

Page 29: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler
Page 30: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler
Page 31: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Game ApiGame Apiif((getKeyStates()&LEFT_PRESSED)!=0){ if((getKeyStates()&LEFT_PRESSED)!=0){

x--; x--; }}else if((getKeyStates()&RIGHT_PRESSED)!=0)else if((getKeyStates()&RIGHT_PRESSED)!=0){ {

x++; x++; }else if((getKeyStates()&UP_PRESSED)!=0){ }else if((getKeyStates()&UP_PRESSED)!=0){

y--; y--; }else if((getKeyStates()&DOWN_PRESSED)!=0){ }else if((getKeyStates()&DOWN_PRESSED)!=0){

y++; y++; } } Graphics g=getGraphics(); Graphics g=getGraphics(); clear(g); clear(g); g.drawImage(image,x,y,Graphics.LEFT|Graphics.TOP); g.drawImage(image,x,y,Graphics.LEFT|Graphics.TOP); flushGraphics(); flushGraphics();

Page 32: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

JAD DosyasıJAD Dosyası

MIDlet-1: HelloMIDlet, , hello.HelloMIDletMIDlet-1: HelloMIDlet, , hello.HelloMIDletMIDlet-2: Seminer, , hello.SeminerMIDlet-2: Seminer, , hello.SeminerMIDlet-Jar-Size: 4484MIDlet-Jar-Size: 4484MIDlet-Jar-URL: Melih.jarMIDlet-Jar-URL: Melih.jarMIDlet-Name: MelihMIDlet-Name: MelihMIDlet-Vendor: VendorMIDlet-Vendor: VendorMIDlet-Version: 1.0MIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.0MicroEdition-Configuration: CLDC-1.0MicroEdition-Profile: MIDP-1.0MicroEdition-Profile: MIDP-1.0

Page 33: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Örnek Wap SayfasıÖrnek Wap Sayfası

<?xml version="1.0" encoding="iso-8859-1"> <?xml version="1.0" encoding="iso-8859-1"> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML

1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd">1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"><wml> <wml>

<card title="main"> <card title="main"> <a href="Test.jad"><a href="Test.jad">

Midlet Download EtMidlet Download Et</a> </a>

</card> </card> </wml> </wml>

Page 34: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

Mimetype TanımlarıMimetype Tanımları

.jar application/java-archive .jar application/java-archive

.jad text/vnd.sun.j2me.app-descriptor .jad text/vnd.sun.j2me.app-descriptor

Page 35: J2ME Melih Sakarya Java Teknolojileri Derneği. JVM JAVA Kullanılan yerler  Windows-Linux-Unix-Solaris  PDA lar  Smart Cardlar  Cep Telefonları  Appletler

SORULAR ???SORULAR ???