Java Destekli Cep Telefonları

____________________________________________________________________

Java Destekli Cep Telefonları başlığı sitemin ziyaretçi kayıtlarında farkettiğim bir Google arama terimi. Bunu farkedince bu konuda kısa bir yazı yazayım dedim.

Öncelikle Java Sun Microsystems taradından geliştirilmiş bir programlama dilidir ve Java Platform da bu dilde yazılmış uygulamaları çalıştırmak için Sun’ın hazırladığı bir platformdur.

Java platformu kendi içinde , J2EE, gibi alt alanlara ayrılır. Burada benim bahsedeceğim Cep Telefonları için olan versiyonu ’dir.

J2ME’nin açılımı Java 2 Micro Edition. Yani Java 2 platformunun düşük bellek ve işlemci gicine sahip aygıtlar için hazırlanmış bir mini sürümü. J2ME mobil cihazların çeşitli uygulamalar çalıştırmasını sağlayarak aygıtların yeteneklerini arttıran bir yapıdır. Telefona yüklenen J2ME uygulamaları telefonda önceden yüklü bulunan bir Java Sanal Makinesi (JVM) tarafından çalıştırılır. Bu sanal makineye KVM Kilobayt Virtual Machine (Kilobayt Sanal Makinesi) de denir. Bu sanal makine telefon üreticileri tarafından telefon yazılımına eklenir ve son kullanıcı tarafından değiştirilmesi neredeyse imkansızdır.

J2ME

Java Sanal Makinesi çeşitli özellikleri nedeniyle cep telefonları için çok uygun bir uygulama çalıştırma ortamıdır. Bu sebeple çoğu cep telefonu üreticisi bu sanal makineyi yazılımlarına ekleyerek telefonlarının çeşitli özelliklerle donatılmasına izin verirler. Aslında buna bir olmazsa olmaz da diyebiliriz. J2ME o kadar yaygındır ki, piyasada bulunan cep telefonlarının çoğunda bu sanal makine yani J2ME Java uygulamaları için destek vardır. Sadece bazı modellerde üretici kaynaklı sebeplerle telefonun Java uygulamalarını çalıştırması istenmemektedir. Örneğin; Apple’ın Iphone telefonu Java uygulamalarını desteklemeyen bir telefondur. Bunun dışında neredeyse diğer tüm telefonlarda Java Desteği vardır. Yani piyasada bulabileceğiniz çoğu telefonda Java desteklidir.

Burada bence asıl önemli olan telefonların Java desteği değil, Java yazılım sürümleri ve performanslarıdır. Tüm telefonlar Java desteğine sahip olsalar da çoğunun işlemci hızı, bellek miktarı, ekran renkleri gibi farklılıklar yüzünden özellikleri arasında fark vardır. Nasıl 1.5 GHz bir PC işlemcisi ile 3.0 GHz hızında çift çekirdekli bir işlemci arasında performans açısından fark varsa telefonlar arasında da bu tür farklar vardır.

Ayrıca J2ME farklı konfigürasyon ve profiller halindedir. Şu anki yaygın konfigürasyonlar; CDC, CLDC 1.0, CLDC 1.1. Bunlar hakkında ayrıntılı bilgi vermeyeceğim ama CDC cep telefonlarında pek kullanılmayan bir konfigürasyondur, sistem gereksinimleri CLDC konfigürasyonundan yüksektir. Yaygın profiller de MIDP 1.0, MIDP 2.0, MIDP 2.1 ve şu an üzerinde çalışılmakta olan MIDP 3.0. Konfigürasyon ve profiller cep telefonundaki Java yazılımının dolayısıyla Java uygulamalarının kabiliyetlerini belirler. Telefon seçiminde de önemli olan nokta budur. Çünkü konfigürasyon ve profiller cep telefonunuzun kullanım alanlarını belirleyen özelliklerdir. Örneğin; MIDP 2.0 önceki sürümü MIDP 1.0’a göre çeşitli multimedya kabiliyetleri, kabiliyeti, güvenli ağ bağlantısı, gelişmiş bir oyun programlama arayüzü gibi özellikler içermektedir. MIDP 2.1’de de GPS, OpenGL ES desteği gibi özellikleri ile öne çıkmaktadır.

Bir telefon alırken dikkat etmemiz gereken şey MIDP sürümünün olabildiğince yüksek olması veya en azından MIDP 2.0 olmasıdır. Zira MIDP 1.0 için yazılmış uygulamalar MIDP 2.0 ve 2.1’de çalışabilirken son sürümler için yazılmış bir uygulama MIDP 1.0’da çalışmayacaktır. Bu sebeple yeni bir telefon seçiminde önemli olan MIDP profilinin olabildiğince yüksek olmasıdır. MIDP 1.0 yıllar önce çıkarılmış ve sadece basit HTTP bağlantı, kullanıcı arayüzü ve kalıcı veri saklama gibi özelliklere sahiptir. Günümüzde artık çoğu programcı kabiliyetlerinin fazlalığından ve program yazmanın daha kolay olmasından dolayı uygulamalarını MIDP 2.0 için yazmaktadırlar. Bu durumda sadece MIDP 1.0 destekleyen bir telefon almak pek mantıklı olmaz. MIDP 2.1 sürümü de oldukça yeni olduğu için piyasada bu profile yönelik fazla uygulama bulmak pek mümkün değildir. Bu nedenle alacağınız telefonun MIDP 2.0 olması oldukça yeterli olacaktır.

Bunun dışında telefonlarda birbirinden farklı olarak destekleyebilecekleri uygulama boyutları da sınırlı olabilmektedir. Örneğin 5 MB boyutunda bir uygulamayı her telefon çalıştırmayabilmektedir. Bu da telefon alımında dikkat edilmesi gereken bir başka husustur. Öyleki Samsung’un eski model MIDP 1.0 telefonlarında uygulama boyutu sadece 60 KB idi. MIDP 2.1 destekli 5220 gibi telefonlarda bile en büyük uygulama boyutu 1 MB’tır. Eğer alacağınız telefon Symbian işletim sistemine sahip bir aygıt değilse bu daha da önemli bir hal almaktadır, çünkü uygulama çeşitliliğiniz azalmaktadır.

İşlemci performansı da Java uygulamalarının çalışmasında doğrudan etkili olduğundan en az 9 serisi bir işlemciye sahip olmasına dikkat edin. Eğer işlemci Jazelle teknolojisini destekliyorsa bu çok daha iyidir. Jazelle Java bayt kodunun işlemci tarafından sanal makinenin kontrolünde doğrudan işlemci üzerinde çalışmasını sağlayan bir teknolojidir. Bu sebeple diğerlerine göre oldukça hızlıdır. Tabi her modelde bu desteğe sahip işlemci bulunmayabilir. Bunun yanında farklı hızlandırma teknolojileri (JIT, AOT …) de vardır ve yeni telefonların çoğunda bunlardan birine destek vardır bu sebeple Jazelle desteği bir olmazsa olmaz değildir.

Eğer cep telefonu alırken Java desteğinin (iyi) olmasına önem veriyorsanız almayı düşündüğünüz modeller ile ilgili internette biraz araştırma yapmalısınız. Java konfigürasyonlarına ve profillerine ve yüklenebilir uygulama boyutlarına dikkat etmelisiniz. Ayrıca işlemcilerin de unutulmaması gerekir. Bunların tümüne bakabileceğiniz, içerisinde neredeyse her telefon markası ve modeli ile ilgili performans bilgileri bulabileceğiniz Jbenchmark sitesi telefonların Java performanslarıyla ilgili çok iyi bilgiler içeriyor, alacağınız telefon modellerini buradan inceleyebilirsiniz. Ayrıca Telefonunuzun Java Performansını Test Edin yazımda da Jbenchmark’taki testler hakkında bilgi bulabilirsiniz.

Sonuç: Java’nın cep telefonları için sürümü J2ME neredeyse her cep telefonunda bulunan bir sanal makinedir. Çok azında bu yazılım, dolayısıyla Java desteği yoktur. Destekleyen modeller de kendi aralarında konfigürasyon, profil ve işlemci güçleri gibi farklılıklar içerir. Telefon alırken en önemli nokta Java sürümünün olabildiğince en son konfigürasyon ve profillere sahip olması ve işlemci performansının iyi olmasıdır. Ayrıca yüklenebilir uygulama boyutları da farklılık göstermektedir. Bu sebeple telefon seçiminde dikkat edilmesi gereklidir. Tabi Java desteğine önem vermiyorsanız, kullanmam diyorsanız o da size kalmış. Günümüz telefonları eski bilgisayar işlemcileri ile aynı frekansta çalışan işlemcilere ve bir o kadarda yararlı uygulama çeşitliliğine sahip. Durum böyle iken o bilgisayar fiyatına aldığınız telefonları sadece müzik dinlemek ve bulanık fotoğraflar çekmek için kullanmak pek mantıklı gelmiyor bana. 😀