Android için Temel Öneriler

Android nedir ?

* Android , en büyük destekçisi olan Google ve Open Handset Alliance tarafından geliştirilmiş açık kaynak kodlu ,  Linux tabanlı ve mobil cihazlar için geliştirilmekte olan bir mobil  işletim sistemidir .  Açık kaynak demişken şunu eklemekte fayda var ; Google Android SDK’nın bazı bölümleri patentli olup , açık kaynak değildir . Google’ın burada neyi amaçladığını bilememekteyiz

Android mimarisi nasıldır ?

* Android mobil cihazlar üzerinde performanslı bir şekilde çalışmak için dizayn edilmiştir. Android mimarisine bakıldığında bizi 4 katman karşılar . Bunlar yukarıdan aşağıya doğru şu şekildedir ;

  1. Applications . // Contacts, Browser , Phone vs.
  2. Applications Framework . // Activity Manager(Activity yöneticisi) , Content Providers(İçerik sağlayıcı) , Notification Manager vs.
  3. 3.1 : Libraries .// Media Framework , SQlite , OpenGL , Webkit vs.
    3.2 : Android Runtime . // Libraries Core , Dalvik Virtual Machine .
  4. Linux Kernel . //Power Management , Camera , Audio , Display Drivers.

Uygulama geliştririken genelde uğrayacağımız nokta ; 2 ve 3.1 olacaktır . Uygulamamızın kendisis 1. numara olacaktır

Android’e nasıl başlayabilirim ?

* Öncelikle Android’e başlamadan önce mutlaka ama mutlaka Java bilginizin en azından orta seviye olması gerekir . Bunun yanında XML bilginizinde yine en azından orta seviyede olması gerekir .

Eğer , Java ve Xml kısmında ileri seviyeye yakın birisi iseniz Android öğrenmek , sizin için yeni bir framework öğrenmek kadar kolay gelebilir .

Eğer Java ve Xml kısmında sıkıntı yaşıyor iseniz Android olaylarına girmeden önce mutlaka bunlara göz atmalısınız . Bu size hem zaman kazandıracak hemde motivasyonunuzun düşmesini engelleyecektir .

Android , kolayca öğrenilebilecek bir olaydır . Tabi bunun yanında sabır ve azim olmalı . Geldiğimiz noktada mutlaka Mobil olaylar kurcalanmalıdır , mutlaka faydalı olacaktır .

Android app geliştiriken hangi bişelenlerden yararlanırım ?

* Android uygulamaları 4 bileşen etrafında yazılır . Bunlar ;

  1. Activities . // Kullanıcı ile etkileşimdedir ve görsel arayüz sunar.
  2. Services . // Görsel arayüz bulundurmaz . Dolaylı olarak kullanıcıdan bilgi alış/veriş işlemleri yapabilir .
  3. Content Providers . ( İçerik sağlayıcı )//Görsel arayüz sunmaz . Dolaylı olarak kullanıcı ile iletişime geçebilir . Android , uygulamarn kendi içerisinde bilgi alışverişine imkan sağlar . Örneğin ; Bir uygulama Content Providers ile rehberi okuyabilir .
  4. Broadcast Receiver .( Yayın alıcılısı ) //Görsel arayüz sunabilir . Bir uygulama , Android sistemi üzerinde bir yayın oluşturarak bu durumu takip edebilir . Örneğin ; Bir mesaj geldiğinden haberdar olmak istenebilir yada Şarj yüzdesinin kritik oldugu durumdan haberdar olmak isteyebilir . Uygulama , Android sistemi tarafında bir Broadcast ile bu değişikliklerden haberdar edilir .
R.Java dosyası nedir ?

* R.Java , Resource kelimesinin kısaltılmış halidir . Xml ile Java arasında iletişimi sağlar , köprü görevi görür .

Xml kısmında tanımlanan bir id ‘ye Java tarafından R.java üzerinden ulaşılır . R.java , otomatik indexleme yapar .

Uygulamalarda Java üzerinden görünümleri ayarlayacağınız gibi Xml kısmından da ayarlanabilir . Xml kısmını görünüm için kullanmak daha dogur olur .

R.java dosyası Auto Generated File diye başlar . R.java dosyasına müdahele etmemiz söz konusu değilir . R.java dosyasında ; layout , id , string vs. gibi inner class’lar mevcuttur . Bu sınıflar public , static ve final’dır . Bu sınıfların üyeleri de aynı şekildedir . Sınıf üyeleri Hex olarak tutulur .

 

Dalvik Virtual Machine nedir ?

* Yazılan Java kodlarının çalışmasını sağlayan JVM’nin Mobil cihazlar için optimize edilmiş halidir .

Jvm ile Dvm arasındaki farkla ;

  • Dvm , Jvm’ye göre daha seçici ve hassas davranır .
  • Dvm , Jvm’ye göre mobil ortamlar için daha performanslıdır .
  • Jvm stack , Dvm ise register tabanlıdır .

Not : Derlenmiş bir Java sınıfı Android üzerinde çalıştırılamaz . Çünkü Android sistem düzeninde JVM değil DVM bulunur !

Not : Android’in son sürümlerinde DVM yerine ART kullanılmaya başlanmıştır . Art ile Dvm arasındaki fark ise Dvm’nin JIT sistemini devre dışı bırakmasıdır . DVM çalışma zamanı derleme işlemi yaparken ART ise uygulamanın ilk yüklenme esnasında bütün derleme işlemlerini yapar . Bu bize %60 performans ve %30 daha az pil tüketimi konusunda avantaj sağlar . Dezavantajı ise uygulamaların ilk yüklenme zamanının artması ve uygulamaların ihtiyaç duydugu depolama alanının artmasıdır .

Android app yazarken Java’dan tam olarak faydalanabilirmiyiz ?

* Evet , Java’nın gücünü tam olarak kullanabilirsiniz . Zaten Android’in gücü de buradan gelir .

Android uygulamalarında veritabanı olarak ne kullanılır ?

* Android app’larda SQLite kullanılır . SQLite ; hızlı , güvenilir , performanslı , ücretsiz ve açık kaynak kodludur .

Android içerisinde gömülü olarak gelir . Mobil cihazlar(Android , IPhone) için en ideal Veritabanı seçimi SQLite olacaktır.

Not : Diğer database türleride tabiki de kullanılabilir .

Android için faydalı linkler ;

İngilizce kaynaklar ;

  • http://developer.android.com/index.html . // Baş ucu kaynağı olmalı .
  • http://www.vogella.com/tutorials/android.html .
  • http://developerlife.com/tutorials/?cat=41
  • http://www.tutorialspoint.com/android/index.htm
  • http://www.mkyong.com/tutorials/android-tutorial/
  • http://www.learn-android-easily.com/
  • http://androiduiux.com/
  • http://www.java2s.com/Code/Android/CatalogAndroid.htm

Türkçe kaynaklar ;

  • http://alicanakkus.com/android/  // Benim bloğum
  • http://www.akilliyazilim.org/category/androiddersleri
  • http://www.androidevreni.com/#sthash.AAI69hrX.dpbs
  • http://androidce.blogspot.com/
  • http://www.mehmetkirazli.com/category/android-programlama/

 

3316 Total Views 1 Views Today

  • Çok faydalandığım bir içerik oldu, teşekkür ederim.
    (Not: Sana bir çay ısmarladım, afiyet olsun)

    • Alican Akkus

      Faydalı olmasına sevindim, fırsat buldukca yeni maddeler de ekleyecegim. Çay için de tesekkür ederim