Tasarım Kodlama

Android Mimarisi – Android Yazılım Yığını

Önceki eğitimde Android’in ne olduğunu, Android’in farklı sürümlerini ve hangi özellikleri desteklediğini öğrendiniz. Artık Android hakkında temel anlayışa ve bilgiye sahip olduğunuza göre, bu eğitimde, Android’in bir cihaz içinde nasıl çalıştığını anlamanıza yardımcı olacak Android Yazılım Yığını (aşağıdaki şemaya bakın) hakkında bilgileneceğiz.

Android Mimarisi - Android Yazılım Yığını

Android işletim sistemi, katmanlı bir mimari yaklaşımı izler. Tüm bu katmanlar, aşağıdaki farklı rollerden ve özelliklerden sorumludur.

Linux Kernel

Bu katman, Android Platformunun temelidir.

Çeşitli donanım bileşenleri desteği için tüm düşük seviyeli sürücüleri içerir.

Android Runtime, aşağıdaki gibi temel sistem hizmetleri için Linux Çekirdeğine güvenir:

  • Bellek, süreç yönetimi, iş parçacığı vb.
  • Ağ Yığını
  • Sürücü Modeli
  • Güvenlik ve daha fazlası.

Donanım Soyutlama Katmanı (Hardware Abstraction Layer)

  • Donanım ve yazılım yığınının geri kalanı arasında Soyutlama sağlar.

Android Çalışma Zamanı (Android Runtime)

  • Uygulamaları pil, işleme ve bellek açısından sınırlı kas gücüne sahip kısıtlı bir ortamda çalıştırmak üzere tasarlanmıştır.
  • Android 5.0’dan bu yana, her uygulama kendi ART sanal makinesi örneğinde kendi sürecinde çalışır ve bu da süreç yönetimini daha önemli hale getirir.
  • ART, Android için özel olarak tasarlanmış ve ART’nin belleği daha verimli yönetmesine yardımcı olan bir bayt kodu türü olan DEX dosyalarını kullanır.
  • Geliştiricilerin Java Programlama kullanarak Android Uygulamaları yazmasına olanak tanıyan bir dizi çekirdek kitaplık içerir.
  • Android 5.0’dan önce Dalvik, Android çalışma zamanı olarak kullanılıyordu.
  • ART, hem Zaman Öncesi (AOT) hem de Tam Zamanında (JIT) derleme yeteneğine sahiptir.
  • Aynı zamanda çok verimli bir çöp toplama özelliğine sahiptir.

Kütüphaneler(Libraries)

  • Android Uygulama Çerçevesi aracılığıyla geliştiricilere sunulur.
  • Android Sistemlerinin bileşenleri tarafından kullanılan C/C++ kitaplıklarını içerir.
  • Birkaç özellik şunları içerir,
    • Mobil bellek ayak izleri ve görev yürütme açısından veri depolama ve ışık için kullanılan SQLite Kitaplığı.
    • WebKit Kitaplığı, esas olarak Web Tarama motoru ve daha birçok ilgili özellik sunar.
    • Yüzey yöneticisi kitaplığı, ekrandaki çeşitli uygulamaların pencerelerini oluşturmaktan ve yüzeylerini çizmekten sorumludur.
    • Medya çerçeve kitaplığı, ses ve video için medya kodekleri sağlar.
    • OpenGl (Open Graphics Library) ve SGL(Scalable Graphics Library), sırasıyla 3B ve 2B işleme için grafik kitaplıklarıdır.
    • FreeType Kitaplığı, yazı tiplerini oluşturmak için kullanılır.

Uygulama Çerçevesi(Application Framework)

  • Geliştiricilere Android işletim sisteminin tüm özellik setine erişim sağlayan, Java ile yazılmış bir API koleksiyonudur.
  • Geliştiriciler, uygulamalarının işlevleri açısından daha fazla geliştirebilmeleri için çekirdek uygulamalar tarafından kullanılan aynı çerçeve API’lerine tam erişime sahiptir.
  • Aşağıdakiler gibi temel bileşenlerin ve hizmetlerin yeniden kullanımını etkinleştirir ve basitleştirir:
    • Activity Manager(Etkinlik Yöneticisi): Uygulamaların Yaşam Döngüsünü yönetir ve ortak gezinme arka yığını sağlar.
    • Window Manager(Pencere Yöneticisi): Pencereleri ve çizim yüzeylerini yönetir ve yüzey yöneticisi kitaplığının bir soyutlamasıdır.
    • Content Providers(İçerik Sağlayıcılar): Uygulamanın diğer uygulamalardan verilere erişmesini veya kendi verilerini paylaşmasını sağlar, yani uygulamalar arasında veri alışverişi için mekanizma sağlar.
    • View System(Görünüm Sistemi): Listeler, ızgaralar, metinler, kutular, düğmeler vb. dahil olmak üzere bir uygulamanın UI’sini oluşturmak için kullanılan Kullanıcı Arayüzü yapı taşlarını içerir. ve ayrıca UI öğelerinin olay yönetimini gerçekleştirir (daha sonraki eğitimlerde açıklanmıştır).
    • Package Manager(Paket Yöneticisi): Cihazda yüklü olan uygulama paketleriyle ilgili çeşitli türdeki bilgileri yönetir.
    • Telephony Manager (Telefon Yöneticisi): Uygulamanın, cihazın telefon özelliklerini kullanmasını sağlar.
    • Resource Manager(Kaynak Yöneticisi): Kod dışı kaynaklara (yerelleştirilmiş Dizeler, bitmapler, Grafikler ve Düzenler) erişim sağlar.
    • Location Manager(Konum Yöneticisi): Konum farkındalığı yetenekleriyle ilgilenir.
    • Notification Manager(Bildirim Yöneticisi): Uygulamaların durum çubuğunda özel uyarıları görüntülemesini sağlayın.

Uygulamalar(Applications)

Android Uygulama Yığınının Başı, Sistem uygulamaları ve kullanıcıların Android’in Google Play Store olarak da bilinen Resmi Play Store’undan indirebilecekleri tonlarca başka Uygulama tarafından işgal edilir.

E-posta İstemcisi, SMS Programı, Takvim, Haritalar, Tarayıcı, Kişiler ve birkaç tane daha gibi bir dizi Çekirdek uygulama el cihazında önceden paketlenmiştir.

Bu katman, bu mobil uygulamaların düzgün çalışması için altındaki tüm katmanları kullanır.

Gördüğümüz ve anladığımız gibi, Android katmanlı veya gruplandırılmış işlevleri Android’in herhangi bir cihazda çok akıcı çalışmasını sağlayan bir yazılım yığını olarak söyleyebiliriz.

Marketteki Android Cihazlar

Android işletim sistemi çalıştıran bir cihaz, tüm şekil ve boyutlarda gelir. Android işletim sistemi ve Uygulamaları çalıştıran çeşitli cihazlar aşağıdaki gibidir,

  • Akıllı telefonlar
  • Akıllı saatler
  • tabletler
  • E-okuyucu Cihazlar
  • Netbook’lar
  • MP4 Oynatıcılar
  • İnternet TV’ler ve daha fazlası.

Android pazarı

Ağustos 2008’de, Android’i satın aldıktan yaklaşık bir yıl sonra Google, Android Cihazlar için çevrimiçi bir uygulama mağazası olan Android Application Market’i duyurdu. Bu çevrimiçi mağaza daha sonra Play Store olarak adlandırıldı ve Ekim 2008’de kullanıcıların kullanımına sunuldu ve kullanıcıların herhangi bir üçüncü taraf uygulamasını doğrudan cihazlarına indirmelerine izin verdi. Play Store’da hem ücretli hem de ücretsiz uygulamalar mevcuttur.

Yorum yap