Android Cihazlar ve Android İşletim Sistemi Üzerine Genel Bilgiler

Android Cihazlar ve Android İşletim Sistemi Üzerine Genel Bilgiler

Android, Linux çekirdeğini kullanan bir işletim sistemidir. Google, Open Handset Alliance ve özgür yazılım toplulukları tarafından geliştirilmektedir. Temel olarak dokunmatik ekranlar için tasarlanan Android, düşük maliyetli ve kişiselleştirilebilen işletim sistemi arayan yüksek teknolojiye sahip cihazlar arasında da popülerdir. Başlarda bu sadece tablet ve akıllı telefonları kapsasa da, günümüzde televizyonlar, arabalar, oyun konsolları, dijital kameralar ve saatler gibi cihazlarda da kullanılmaya başlamıştır.
2013 yılı Kasım ayı verilerine göre en popüler mobil işletim sistemi haline gelen Android uygulama marketi olarak Google Play'i kullanmaktadır. 2014 yılı ekim ayı itibariyle markette 1 milyondan fazla uygulama, yıllık 50 milyarı aşkın indirme sayısı bulunmaktadır. Google'ın 2014'ün haziran ayında verdiği rakamlara göre 1 milyardan fazla aktif Android kullanıcısı bulunmaktadır. 2013'ün nisan ayında yapılan bir ankete göre de yazılım geliştiricilerin %71'inden fazlası Android için uygulama geliştirmektedir. Google Play Store ile ilgili bilgilere buradan ulaşabilirsiniz.
2007 yılında pek çok yazılım, donanım, telekomünikasyon firmasının katkıda bulunduğu Open Handset Alliance adı verilen şirketler birliği sayesinde ortaya çıkan Android'in kaynak kodları iki farklı lisans kullanır. Kullandığı Linux çekirdeği GPL, diğer dış bileşenler ise Apache Lisansı ile dağıtılmaktadır. Bu yapı yazılımcıları Android'e katkıda bulunmaları için cesaretlendirdiğinden, sürekli gelişmesini ve yeni özelliklerin eklenmesini sağlar. Bu durum aynı zamanda telefon üreticilerinin koyduğu birtakım kısıtlamaları sevmeyen kullanıcıların tercih ettiği veya yazılım güncelleştirme desteği kesilmiş eski modellerin en yeni sürümleri kullanmasını sağlayan CyanogenMod veya Miui gibi Android sürümlerinin de (custom ROM) ekosisteme dâhil olmasını sağlamaktadır.

Pazar payı

Dünyaca ünlü araştırma şirketi IDC'nin verilerine göre dünya üzerindeki akıllı telefon satış rakamı, 2015'in ilk çeyreğinde yüzde 334,4 milyon adet olarak gerçekleşti. Günümüzde bu büyük pazarda yarışan dört önemli mobil işletim sistemi var: Android, iOS, Windows Phone ve BlackBerry 10.
Android'in bu pazardaki gelişimini incelediğimizde yine IDC'nin araştırmasına göre 2011'den bu yana düzenli olarak büyüdüğünü ve pazarın hâkimi konumunu sürekli olarak daha daha yukarı taşıma eğiliminde olduğunu görüyoruz. 2011'in ikinci çeyreğindeki pazar payı yalnızca yüzde 36,1 iken, bu rakam 2015'in ilk çeyreğinde yüzde 78'e ulaştı.
IDC'nin akıllı telefon pazarındaki üreticileri kapsayan araştırmasına bakacak olursak, Samsung, Apple'a 3 puan, diğer üreticilere ise geçtiğimiz yılın aynı dönemine göre 1 puan kaybetmiş olmasına rağmen 2015'in birinci çeyreğinde yüzde 24,6 ile pazar liderliğini sürdürüyor. Hemen arkasından Çinli iki dev üretici olan Huawei ve Lenovo, ardından ise Koreli LG geliyor. Pazarın %41'inden fazlası ise bu ilk beş üreticiden farkı onlarca marka tarafından paylaşılıyor.

Teknik bilgiler

Bu platformda uygulamalar Android Yazılım Geliştirme Kiti (SDK) kullanarak Java dilinde yazılır. Bu SDK yazılımcıya hata ayıklayıcı, yazılım kütüphaneleri ve emülatör gibi yardımcı araçlar sunar.
Android güç kullanımını en aza indirmek ve hafızayı yeterli kullanabilmek için çeşitli yöntemler kullanır. Kullanılmayan uygulamaların bekleme moduna alınması; yetersiz hafıza durumunda uzun süredir aktif olmayan uygulamaların kapatılması bu yöntemlerden bazılarıdır.
İşletim sisteminin donanım olarak içerdiği jiroskop, yakınlık algılayıcı, ivme ölçer gibi fonksiyonlar da uygulama geliştiriciler için fayda sağlar. Örneğin, telefon yan çevrildiği zaman görüntünün de dönmesi bu araçlar yardımıyla uygulanabilir.
Android öncelikli olarak 32-bit ARMv7 işlemcilerine yönelik geliştirilmektedir. Bunun yanında Android x-86projesi x86 işlemciler için de destek sağlar. Google her altı ila dokuz ay arasında yeni bir sürüm yayınlamaya özen gösterir. Şu an için en yaygın sürüm olan Android 5.1'in gereksinimleri ise şu şekildedir:
  • 512 MB RAM,
  • 32-bit ARMv7, MIPS ya da x86 mimarisinde işlemci,
  • OpenGL ES 2.0 uyumlu bir GPU.
Android 5.x Lollipop sürümüyle birlikte x86, ARM ve MIPS platformları için 64 bit desteği de gelmiş bulunuyor. 64 bit desteğiyle sistem gereksinimlerindeki bellek kısmı iki farklı şekilde tanımlanmaya başladı. Daha fazla RAM isteyen 64 bit Android 5.0, 32 bitteki 512 MB gereksinimine karşın en az 832 MB RAM'e ihtiyaç duyuyor.
Her üretici kendine özel Android türevini içeren bir ROM çıkartabildiği için için güncellemeler her model Android işletim sistemli cihaza aynı anda gelmeyebilir.
En çok kullanılan Android sürümleri aşağıdaki gibidir:
  • Android 4.0.3–4.0.4 Ice Cream Sandwich (API level 15)
  • Android 4.3 Jelly Bean (API level 18)
  • Android 4.4 KitKat (API level 19)
  • Android 5.0-5.1 Lollipop (API level 20)
Android güvenlik açısından da güçlü olmak adına uygulamaların sistemin tüm alanlarına müdahale etmesini engeller. Her uygulamanın kullanmak istediği alanlar için kullanıcıdan izin alması gerekir ve uygulama güncelleştirmeleri sırasında bu izinler değişirse kendiliğinden güncelleştirme yapmaz ve bu değişikliği kullanıcının onayına sunar.

Mimari

Android mimarisi,
  1. Linux çekirdeği
  2. Kütüphaneler
  3. Android çalışma zamanı (runtime),
  4. Uygulama geliştirme çatısı
  5. Uygulamalar
katmanlarından oluşur.
Mimari ve sistem özellikleri hakkındaki eğitime buradan ulaşabilirsiniz.

Kullanım alanı

Daha önce de belirttiğimiz gibi Android kullanımı artık sadece akıllı telefonlar ve tabletlerle sınırlı değil. Akıllı kitaplar, televizyonlar, kameralar, saatler, kulaklıklar ve daha pek çok teknolojik alet artık Android platformunu kullanabiliyor. 2011 yılında Google Android@Home adını verdiği ev otomasyon teknolojisini tanıttı. Bu teknoloji sayesinde ev ortamında bulunan her türlü aydınlatma, priz ve termostat tarzı cihazlar Android telefonlar ya da tabletlerden yönetilebiliyor.
2014'te yayınlanan Android Wear ise saatler başta olmak üzere giyilebilir cihazlar için özelleştirilmiş bir Android sürümüdür. Bundan birkaç yıl öncesinde orta seviye akıllı telefonların gücüne erişen akıllı saatler için bir platform olarak yaygınlaşan Android Wear, kendi ekosistemindeki cihazları genel bir standartla buluşturmak isteyen üreticilerin gözdesi olmuş durumda.
Android üzerinde uygulama geliştirmek için gerekli her şeyi eğitim içeriklerimizde bulabilirsiniz.

Android'in Özellikleri

Android platformu OpenGL (Open Graphics Library) ile VGA, 2D ve 3D grafik kütüphaneleri ile uyumludur.
Android, OpenGL ES API'nin birkaç sürümünü desteklemektedir:
OpenGL ES 1.0 ve 1.1Bu API Android 1.0 ve üstü tarafından desteklenmektedir.
OpenGL ES 2.0Bu API Android 2.2 (API seviyesi 8) ve üstü tarafından desteklenmektedir.
OpenGL ES 3.0 Bu API Android 4.3 (API 18 seviyesi) ve üstü tarafından desteklenmektedir.
OpenGL ES 3.1Bu API Android 5.0 (API seviyesi 21) ve üstü tarafından desteklenmektedir.
 Veri depolama aracı olarak SQLite veritabanı, Firebase Database kullanılabilir.

Android GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC ve WiMAX teknolojilerini desteklemektedir. Mesaj servisleri ile ilişkili olarak SMS ve MMS, C2DM (Android Cloud To Device Messaging), GCM (Google Cloud Messaging) , Android Push Messaging, FCM (Firebase Cloud Messaging) teknolojileri desteklenmektedir. 

Android web tarayıcı olarak açık kaynak kodlu WebKit Application Framework'u kullanmaktadır. Bu framework Chrome V8 JavaScript Engine ile de bağlantılıdır.

Android uygulamaları Java dili ile yazılmasına karşın, Android platformu içinde Java Virtual Machine mevcut değildir; Java sınıfları Dalvik çalıştırılabilir dosyaları haline getirilerek Android’e özgü özel bir sanal makine (virtual machine) olan Dalvik üzerinde çalıştırılır. J2ME desteği ise ancak 3. parti uygulamalar sayesinde elde edilebilir.

Android, özgür bir işletim sistemidir ve Google kaynak kodunun büyük bir kısmını Apache License 2.0 ile yayınlamaktadır. Linux çekirdeğine ait değişikliklerse GNU General Public License 2.0 altında yayımlanmaktadır.

Google Play

Google tarafından yönetilen Google Play, Android cihazların uygulama ve oyunlara ulaşabileceği çevrim içi bir markettir. Buradan, çoğu zaman geliştiricilerin tercihleri doğrultusunda ülkelere göre yayınlanan oyun ve uygulamalara erişilebilir. Android cihazlar üzerinden Google Play uygulamasıyla ya da Google Play sitesinden erişilebilir.
Google Play, üzerinde yer alan uygulamaları kategorilerine göre ayırarak kullanıcılara sunar. Ana sayfasında en çok satılan ve talep gören uygulamalara yer verir. Ayrıca "Editörün Seçimi" gibi yeni bir kategorilendirmeye daha da gitmiştir. Yukarıdaki resimde yer alan arama kutusuna ilgilendiğimiz bir konuyu ya da geliştirici firma adını girerek kolayca arama yapabiliriz. Bir uygulamayı seçtiğimizde aşağıdaki uygulama detay sayfasına yönlendiriliriz.

Bir uygulamanın ayrıntı sayfasına girdiğimizde, uygulamanın adını, hemen altında geliştiricisini görürüz. Yükle düğmesine tıkladığımızda uygulama Google hesabımıza bağlı Android cihazlarımıza gönderilir.
Uygulama detay sayfasında aşağı doğru ilerlediğimizde, uygulama içi görselleri bulabiliriz. Görsellerin hemen altında geliştirici tarafından yapılan açıklamalara ve uygulamayı indiren kullanıcıların yorumlarını görme şansımız var. Kullanıcılar çok çeşitli amaçlarla da yorumlar yapabilirler.
Detay sayfasında daha aşağıya indiğimizde uygulamaya dair ek bilgiler karşımıza çıkar. Burada uygulamanın hangi sürümde olduğu, boyutu ve hedef Android sürümleri görülebilir. Burada yer alan geliştirici bağlantı sayfaları ise, geliştiriciye ulaşabilmeniz açısından, geliştirici tarafından paylaşılan sayfalardır. Sayfanın sonunda ise benzer uygulamalar ve bu geliştiricinin diğer uygulamalarına da bakabilirsiniz.

Android Mimarisi ve Sistem Özellikleri

Android, Open Handset Alliance, Google ve özgür yazılım topluluğu tarafından geliştirilen bir mobil işletim sistemidir. Bu işletim sisteminin parçaları çekirdek (kernel), sistem kütüphaneleri, uygulama geliştirme çatıları (frameworks) ve yerleşik temel uygulamalardan oluşmaktadır. Android mimarisi aşağıdaki gibidir.
Bu yapıyı ayrı ayrı incelemek geliştirici adaylarının üzerinde çalıştıkları yapıyı anlamaları bakımından faydalı olacak.

 

Temel yapı (Linux çekirdeği)

Android, Linux çekirdeğini (kernel) kullanır. Linux çekirdeğine Android için eklenen kod parçacıkları ve kütüphaneler Genel Kamu Lisansı'na sahipken, diğer bileşenler üretici firmalarına kendi kapalı ROM'larını oluşturmalarına izin verecek ama yine özgür bir şekilde Apache Lisansı ile dağıtılmaktadır.
Linux çekirdeğinin doğrudan kaynak sağladığı yapılar security (güvenlik), memory ve process (hafıza ve süreç) kontrolü, dosyalama ve bağlantı için I/O işlemleri ve cihaz sürücüleridir. Çekirdekte Android için özelleştirilmiş başlıca alanlar ise güç kontrolü, paylaşılan hafıza, low memory killer ve süreçler arası iletişim içindir.

 

Kütüphaneler (Libraries)

Mimarinin diğer önemli yapısı olan kütüphaneler bölümünde C ile yazılmış sistem kütüphaneleri, internet tarayıcısı (browser) motorlarının çalışması için Webkit, görüntüleme kontrolünü yapan Surface Manager, grafik işlemleri için OpenGL, ses ve video işlemleri için gereken Media Framework, veri yapıları kontrolü ve düzenlenmesi için SQLite gibi yapılar bulunur. 

Android Runtime 

Bu bölüm Linux çekirdeğindeki kütüphanelerin Java ile birleştiği bölümdür. İki önemli bileşeni vardır. Bunlar temel Java kütüphaneleri ve Dalvik Sanal (virtual) Makinesi'dır. Bu yapılar hakkında detaylı bilgileri ilerleyen eğitim içeriklerinde bulacaksınız. Burada Dalvik Sanal Makinesi'ne kısaca değinelim:
  • Dalvik Sanal Makinası: Uygulamalar Dalvik Sanal Makinesi tarafından çalıştırılır. Temel çalışma mekanizmasını anlamak Android projelerinin yaşam döngüsünü anlamak açısından önemlidir. Java ile yazılan uygulamalar alınır, Java kodları derlenerek bytecode dosyalarına çevrilir. Bu dosyalar dex dosyasına çevrilerek Dalvik Sanal Makinesi'nin çalıştıracağı şekle sokar. Dalvik ortamı düşük işlemci gücü, az RAM ve sınırlı batarya koşullarına göre tasarlanmıştır.
Not: Dalvik her ne kadar mobil odaklı ve kısıtlı kaynaklarla çalışabilecek bir yapı olsa da, bazı alanlarda iyileştirilmesi gereken ve zamanın şartlarına göre tasarlanmış, artık yavaş yavaş eskiyen bir runtime. Google bunun farkında olduğu için yaklaşık 2 yıldır yeni bir runtime üzerinde çalışıyor, ismi ART yani Android Runtime. Dalvik'ten çok farklı bir bir çalışma yapısına sahip olan ART hakkında ayrıntılı bir blog yazısına buradan ulaşabilirsiniz.
Eğitimin ilerleyen bölümlerinde uygulama çatılarını (application framework) adım adım anlatacağız. Şimdiden herkese bu yeni dünyada başarılar diliyoruz :)

Yorumlar

Bu blogdaki popüler yayınlar

İç İçe Döngüler

CSS Bir Elemanın Genişliği ve Yüksekliği

JavaScript Dilinde Fonksiyon Çağırma Teknikleri