Android mimarisi, herhangi bir cihazın Android'e duyduğu ihtiyacı desteklemek adına farklı sayıda bileşenler içermektedir. Android yazılımı, framework hizmetleri aracılığı ile sunulan çok sayıda C/C++ kütüphanelerine sahip açık kaynak koda sahip Linux çekirdeğine sahiptir.
Tüm bu bileşenlere bakacak olursak; Linux Kernel (Çekirdek) akıllı telefonlar için işletim sisteminin sağladığı özellikleri sağlar. Dalvik Virtual Machine (DVM/Dalvik Sanal Makinesi) ise Android için yazılmış bir uygulamayı çalıştırmak için gerekli olan platform desteğini temin eder.
Android mimarisinin ana bileşenleri:
Bir kaç adet ana bileşen ve bunların içerdiği alt bileşenlerin resim ile gösterimi aşağıda yer almaktadır.
Applications
Bu katman, Android mimarisinin en üst katmanıdır. Kişiler, galeri, kamera vb. gibi önceden yüklenmiş, yani Android telefonlarda hazır gelen uygulamaların bulunduğu katman olduğu gibi, herhangi bir mağazadan indirilen (Google Play vb.) sohbet uygulamaları, oyunlar gibi üçüncü taraf denilen uygulamalarda bu katmanda kendine yer bulmaktadır. Application Framework tarafından sağlanan sınıflar ve hizmetler yardımıyla Android Runtime içinde çalışır.
Application Framework
Application Framework, bize Android tabanlı bir uygulama geliştirmemiz için kullanabileceğimiz önemli sınıfları sağlar. Donanıma erişmek için genel bir sanallaştırma (veya soyutlaştırma denilebilir) sağlar ve uygulamaların kaynaklarıyla kullanıcı arabiriminin yönetilmesine yardımcı olur. Uygulama oluşturmak için bize sağladığı pek çok hizmet vardır. Bildirimler ve paket yöneticisi burada çalışır.
Application Runtime
Application Runtime ortamı, Android sisteminin en önemli parçalarından biri olarak geçmektedir. Linux çekirdeği için kütüphaneler ve Dalvik Virtual Machine (DVM) gibi bileşenleri içermektedir. Application Framework için temel sağlar ve tasarladığımız uygulamayı Linux çekirdeği için yazılmış olan kütüphanelerle destekler.
Java Virtual Machine (JVM) gibi, DVM'de aynı mantıkla çalışır. Bir cihazın birden çok örneği verimli bir şekilde çalıştırabilmesini sağlamak adına Android için özel olarak tasarlanmış ve optimize edilmiştir. Thread oluşturma ve düşük seviyede bellek yönetimi için bu katman Linux çekirdeğine bağlıdır. Çekirdekte bulunan kitaplıklar, Java veya Kotlin programlama dillerini kullanarak Android uygulamaları tasarlamamızı sağlar.
Platform Libraries
Android geliştirme yapmak isteyenlere destek sağlamak için çeşitli C/C++ ile yazılmış kernel kütüphanelerini ve medya, grafik OpenGL vb. gibi Java tabanlı kütüphaneleri içerir. (Ek olarak WebKit ve SSL)
Linux Kernel
Linux Kernel, Android mimarisinin kalbidir. Android Runtime sırasında gerekli olan ekran sürücüleri, kamera sürücüleri, Bluetooth sürücüleri, ses sürücüleri ve bellek sürücüleri vb. gibi sistemde mevcut tüm sürücüleri yönetir. Linux Çekirdeği, cihaz donanımı ile Android mimarisinin diğer bileşenleri arasında bir iletişim katmanı sağlayacaktır. Hafıza, güç, cihazlar vb. yönetiminden sorumludur.
Tüm bu bileşenlere bakacak olursak; Linux Kernel (Çekirdek) akıllı telefonlar için işletim sisteminin sağladığı özellikleri sağlar. Dalvik Virtual Machine (DVM/Dalvik Sanal Makinesi) ise Android için yazılmış bir uygulamayı çalıştırmak için gerekli olan platform desteğini temin eder.
Android mimarisinin ana bileşenleri:
- Applications (Uygulamalar)
- Application Framework (Uygulamalar için Yazılım Çatısı, Servisler vb.)
- Android Runtime (Android Çalışma Zamanı)
- Platform Libraries (Platform Kütüphaneleri)
- Linux Kernel (Linux Çekirdeği)
Bir kaç adet ana bileşen ve bunların içerdiği alt bileşenlerin resim ile gösterimi aşağıda yer almaktadır.
Applications
Bu katman, Android mimarisinin en üst katmanıdır. Kişiler, galeri, kamera vb. gibi önceden yüklenmiş, yani Android telefonlarda hazır gelen uygulamaların bulunduğu katman olduğu gibi, herhangi bir mağazadan indirilen (Google Play vb.) sohbet uygulamaları, oyunlar gibi üçüncü taraf denilen uygulamalarda bu katmanda kendine yer bulmaktadır. Application Framework tarafından sağlanan sınıflar ve hizmetler yardımıyla Android Runtime içinde çalışır.
Application Framework
Application Framework, bize Android tabanlı bir uygulama geliştirmemiz için kullanabileceğimiz önemli sınıfları sağlar. Donanıma erişmek için genel bir sanallaştırma (veya soyutlaştırma denilebilir) sağlar ve uygulamaların kaynaklarıyla kullanıcı arabiriminin yönetilmesine yardımcı olur. Uygulama oluşturmak için bize sağladığı pek çok hizmet vardır. Bildirimler ve paket yöneticisi burada çalışır.
Application Runtime
Application Runtime ortamı, Android sisteminin en önemli parçalarından biri olarak geçmektedir. Linux çekirdeği için kütüphaneler ve Dalvik Virtual Machine (DVM) gibi bileşenleri içermektedir. Application Framework için temel sağlar ve tasarladığımız uygulamayı Linux çekirdeği için yazılmış olan kütüphanelerle destekler.
Java Virtual Machine (JVM) gibi, DVM'de aynı mantıkla çalışır. Bir cihazın birden çok örneği verimli bir şekilde çalıştırabilmesini sağlamak adına Android için özel olarak tasarlanmış ve optimize edilmiştir. Thread oluşturma ve düşük seviyede bellek yönetimi için bu katman Linux çekirdeğine bağlıdır. Çekirdekte bulunan kitaplıklar, Java veya Kotlin programlama dillerini kullanarak Android uygulamaları tasarlamamızı sağlar.
Platform Libraries
Android geliştirme yapmak isteyenlere destek sağlamak için çeşitli C/C++ ile yazılmış kernel kütüphanelerini ve medya, grafik OpenGL vb. gibi Java tabanlı kütüphaneleri içerir. (Ek olarak WebKit ve SSL)
Linux Kernel
Linux Kernel, Android mimarisinin kalbidir. Android Runtime sırasında gerekli olan ekran sürücüleri, kamera sürücüleri, Bluetooth sürücüleri, ses sürücüleri ve bellek sürücüleri vb. gibi sistemde mevcut tüm sürücüleri yönetir. Linux Çekirdeği, cihaz donanımı ile Android mimarisinin diğer bileşenleri arasında bir iletişim katmanı sağlayacaktır. Hafıza, güç, cihazlar vb. yönetiminden sorumludur.

