MOBiL CiHAZLAR iÇiN PROGRAMLAMA YÖNTEMLERi
Mobil cihazlardaki kısıtlılıklar, uygulama geliştirme yöntemlerinizi değiştirmenizi gerektirir. Burada kullanılabilecek genel programlama yaklaşımları vardır.
Uygun Programlama Dili
Burada yapacağınız seçim hedefinize yönelik olarak Java, C/C++ gibi dillerden biri olabilir. İşlemci hızı ve bellek kapasitesi gibi etkenler bu şeçimde belirleyici olabilir.
İşlem Yükünü Sunucu Tarafına Kaydırın
Zayıf istemci Web uygulaması geliştirme sürecine benzer olarak uygulamanın ana elemanları ve işlem yükü sunucu tarafında olacak şekilde bir tasarım gerçekleştirilmeyi tercih edin.
Uygulamayı Basitleştirin
Mümkün olan tüm yükü sunucu tarafına taşıdıktan sonraki adım uygulamanın basitleştirilmesidir. Bu adım en iyi uygulama tasarımı sırasında yapılır ve geliştirme sırasında zaman açısından büyük kazanç sağlar. En kolay ve açık basitleştirme gereksiz özelliklerin uygulamada bulundurulmamasıdır.
Daha Küçük Uygulamalar Geliştirin
Yapılabilecek bir sonraki adım daha küçük uygulamalar geliştirmektir. Daha küçük bir uygulama, cihaz üzerinde daha az bellek alanı kaplayacaktır, kurulması ve başlatılması da daha az vakit alacaktır. Kablosuz ağlar üzerinden indirilip çalıştırılan uygulamalar için de boyutun küçük olması olumlu olacaktır.
Çalışma Zamanında Daha Az Bellek Kullanın
Küçük cihazların çalışma zamanı bellek kapasiteleri çok kısıtlı olabilir; bazen bu kısıtlar açık da olmayabilir. Örneğin Palm işletim sistemi iki tür bellek tanımlar: dinamik ve depo. Dinamik bellek uygulama uygulamanın çalışma zamanı verisini saklar. Depo bellek ise yazmaya karşı korumalıdır ve kalıcıdır.
Nesnel Olmayan Tipler Kullanın
Kullanılan her nesneye çalışma zamanı belleğinden yeterli alan ayrılır. Bu nedenle tanımlanan her nesne uygulamanın performansını etkileyeceği gibi gereksinim duyduğu bellek alanını da belirleyen bir etken olacaktır. Bu nedenle mümkün olan yerlerden int ve bool gibi nesnel olmayan tipler kullanılması daha iyi olacaktır.
Bellek Temizleyiciye (Garbage Collector) Güvenmeyin
Geliştirme yaparken kullandığınız değişkenleri, işleri bittiğinde boşaltın ve serbest bırakın. Programlama dillerinin getirdiği “garbage collection” özelliği bu işi belli aralıklarla sizin için yapacak olsa da, en iyi sonuç kendi yazdığınız kodun içerisinde kendi değişkenlerinizi kendinizin boşaltması ile alınacaktır.
“Lazy Instantiation” Kullanın
Nesneleri sadece ihtiyacınız olduğu zaman yaratıp işiniz bittiğinde serbest bırakırsanız, bellekten kullanacağınız alan daha verimli kullanılmış olacaktır; bu teknik "lazy instantiation" olarak bilinir. Örneğin:
public class LazyClass {
private Vector v;
public Vector getVector(){
if( v == null ) v = new Vector();
return v;
}
}
Kaynakları Bırakın
Küçük cihazlar veya masaüstü sistemleri için geliştirilen uygulamalarda, kullanılan veritabanı bağlantıları, ağ bağlantıları, dosyalar gibi kaynakların serbest bırakılması verimli kullanımı arttıracaktır.
Nesneleri Tekrar Kullanın
Nesneleri tekrar tekrar yaratmak yerine tekrar kullanmak da bir başka yöntem olabilir. Kullanacağınız nesneleri ilklemek ve sonlandırmak için metodlar yaratın ve bu metodları kullanarak bellek kontrolünü sağlayın.
public class ObjHolder
{
private Object _value;
public ObjHolder( Object value )
{
_value = value;
}
public Object getValue()
{
return _value;
}
}
Bu koda ilkleme ve sonlandırma metodlarını eklersek:
private void initialize( Object value )
{
_value = value;
}
private void deinitialize()
{
_value = null;
}
İlkleme metodunu da sınıfın oluşturucu metodu içerisinde çağırabiliriz:
private ObjHolder( Object value )
{
initialize( value );
}
Gereksiz Hata Yakalama Kontrollerini Kaldırın
Hata (Exception) yakalama kontrolleri bazen gereksiz kullanılır ve bu kontroller koda ve derleyiciye ek iş yükü getirir. Uygulamaların bu tür kontrollerden mümkün olduğunca arındırılması daha iyi olacaktır.
Kodlarken Performans Kriterini Gözönünde Bulundurun
Programınızı geliştirirken performans arttırma düşüncesini her zaman gözönünde bulundurun. Bunun için kodlama pratiklerini anlatan kitaplar okuyabilir, veya derleyicinin sunduğu iyileştirme seçeneklerinden faydalanabilirsiniz.
Yerel Değişkenler Kullanın
Sınıflara ulaşmak, yerel değişkenlere ulaşmaktan genellikle daha zordur. Örneğin aynı sınıfı bir döngü içerisinde kullanmak yerine yerel bir değişken tanımlamak daha uygun olacaktır.
İş Parçacıkları Kullanın
Kullanabileceğiniz yerlerde iş parçacıkları kullanarak getirilerinden yararlanmaya çalışın.
Kaynaklar
-Programming Strategies for Small Devices
Hiç yorum yok:
Yorum Gönder