Sevgiler, saygılar sevgili ShiftDelete.net dostları..
Açıkçası gecenin bu saatinde eksiksiz satır satır yazılanları okudum. Dikkat ettiğim bir kaç nokta var. İzninizle burnumu sokup ortalığı karıştırmak istiyorum (mecazen)
1- Java Android'de SDK yapısının da etkisi ile VM ile çalışıyor demek yüzde dosan doğru. Yüzde on yanlış olur.
Şöyle ki; Java Android 'de sanal makine ile çalışmıyor gerçekte. Bir altyapı ve mimari birlikteliği içinde Dalvik'e gömülü bir arabirimi var. Buna aslında Java Pool diyorlar. Eski zamanlarda assembler ile kök kodlama yapılırken pool açılıp orada bellek devinimi sağlanır ve olmadık exception (hata) nedeniyle aksamalar engellenirdi.
Hatta bunu C++ ile yazılan Windows'un kendi alt yapısında özellikle de XP de mavi ekran aldığınızda çıkan 'undefined address pool range' saçma sapan hatalarının altındakileri incelerken de defalarca görebilirsiniz. Vista da toparlayıp Windows 7 de adam gibi handle etmeyi öğrendiler :)
2 - Java aslında zaten Android yapısına girerken daha çok object oriented olmuştur. Ancak dediğim gibi bu havuzlama ortamından dolayı kendi Java Environmentinde çalıştığından (denenmiştir) %8 - %11 arası (bileşene göre) hızından kaybetmektedir. Ayrıca Android cihazların bellek kapasitesine bağlı olarak adresleme tekniği değişmektedir. Aynı durum Android'e C++ ile kod yazacaksanız eğer aşırı sık bir derleme ve test betiği üzerinde uğraşacağınız anlamına gelir ki bu yalayıp yutmayı geçtim ileri seviyede C'nin piri olmayı gerektirir.
3 - C++ ile Android'e program yazmak niyetiniz varsa kendinize yapacağınız işe uygun bir çekirdek oluşturup bu çekrdekten pek çıkmadan ve fazla sağa sola bulaşmadan fonksiyonlarınızı oturtun ve her işlediğiniz kısımı (tamamlanan her özelliği) tam olarak compile edip Android üzerinde hem bir kaç farklı özellikle sanal makinalarda hem de doğrudan cihazlarda deneyin.
Bunun nedenlerini üstte aslında anlattım. Ancak Android için kodlamanın en kolay yollarından birisi Java üzerinde çalışan ve bir çok Java eklentisi ve özelliğini yanında hazır getiren App Inventor (Mit tarafından sağlanan çok kapsamlı olduğunu iddia edemeyeceğim ama çok rahat kullanımlı bir Java altyapı sunumu)
Adres olarak
http://beta.appinventor.mit.edu/about/moreinfo/ adresini verebilirim. Bir inceleyip değerlendirin hatta bir şeyler yapıp deneyin derim.
Ben C#, VB.NET, C++ gibi dillerle yaptığım farklı farklı ve veritabanı kullanan programların verilerini değerlendiren ve raporlayan ufak tefek aracıları bununla yapıyorum ama yazdığım saate bakarsanız anlayabileceğiniz gibi çok geniş zamanlar bulup burada detaylı anlatma olanağı bulabileceğimi sanmıyorum.
Özellikle söyleyeyim, eğerki bu işi ciddiye almak niyetindeyseniz ve başlangıçtaysanız daha Android'e fazla bulaşmayın. Masa üstü yazılımda iyice gelişip sonra Android kısmına gelin derim. Çünkü Android her yeni SDK ile ciddi şekilde değişmekte ve gelişmekte. Başlamak için değil uzmanlığını pekiştirip olmadık işlere girmek için iyi bir ortam.
Buna illa gireceğim diyorsanız çok iyi ingilizce, sağlam altyapısı olan birilerinin yazdığı kitaplar, etkin bir internet araştırması ve çook çok vakit gerekli olduğunu kafanıza yazın. C++ ile başlamak en doğru yoldur. Java da C++ mantığıyla kodlama yapıldığı için onu öğrenirken daha az inlersiniz.. Yoksa Java macera değil kâbus olacaktır.
{ end by Dincer }