Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi ANDROİD UYGULAMALARININ BİLEŞENLERİ Dr.Refik SAMET BLM4011.

Benzer bir sunumlar


... konulu sunumlar: "BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi ANDROİD UYGULAMALARININ BİLEŞENLERİ Dr.Refik SAMET BLM4011."— Sunum transkripti:

1 BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi ANDROİD UYGULAMALARININ BİLEŞENLERİ Dr.Refik SAMET BLM4011

2 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri Dr.Refik SAMET BLM4012

3 Android Yazılım Ortamı

4 Android işletim sisteminin temelinde önceki slayttaki resimde gözüktüğü gibi 5 ana katman bulunmaktadır. Bunları başlık olarak açıklamak gerekir ise; Applications Katmanı, Application Framework Katmanı, Libraries Katmanı, Android Runtime Katmanı, Kernel Katmanı.

5 Application Katmanı Android işletim sistemi mimarisinde en üst katman olarak bilinir ve Uygulama katmanı olarak adlandırılır. Temel cihaz uygulamaları Android işletim sistemi ile birlikte gömülü olarak gelmektedir veya daha sonra kullanıcı tarafından kurulurlar. Gömülü olarak Android ile birlikte gelen uygulamalar sürümüne göre değişiklik gösterebilir. Örnek vermemiz gerekirse bu üç uygulama gömülü olarak gelir ve işletim sistemi içerisinde applications katmanında yer alır; Phone Uygulaması Web Browser Uygulaması Contacts Uygulaması

6 Applications Framework Katmanı Android işletim sistemi mimarisinde 2. katman olarak gözümüze çarpmakta olan Application Framework katmanı adından da anlaşılacağı üzere uygulamaların işletim sistemi ile etkileşimini sağlayacak olan servislerin bulunduğu (aracılığını yapan) katmanıdır.

7 Applications Framework Katmanı Örnek vermemiz gerekirse; Senaryomuza göre bir uygulama geliştireceğiz ve bu uygulama ile cihaz içerisinde yüklü olan diğer uygulamaları görüntülemek istiyoruz. Bu işlem içerisinde Application Framework Katmanında bulunan Package Manager’ı aracı kılarak gerçekleştirebiliriz. Bu katmanda bulunan servisler android işletim sistemi içerisinde bazı yetki ve sınırları bulunmaktadır. Bu yetki ve sınırlar ilgili servisin durumuna göre Android Uygulaması içerisindeki AndroidManifest.xml dosyasında uygulama geliştirilirken belirtilmektedir.

8 Applications Framework Katmanı Activity Manager: Activitylerin durumundan ve yönetiminden sorumludur. Activity çalıştırılması, durdurulması vs. gibi durumlarından sorumludur. Window Manager: Tüm Uygulamaların görüntülenen ekranlarının oluşturulmasından ve yönetilmesinden sorumludur. Content Providers: Uygulamalar arasında data paylaşımı ve erişimi yapmaktan sorumlu olan servistir. View System: User Interface (UI) oluşuturulmasından ve yönetilmesinden sorumlu olan servistir.

9 Applications Framework Katmanı Package Manager: Cihaz içerisine kurulu Uygulama- Package (apk dosyaları ) lardan sorumlu olan servistir. Yukarıda belirttiğimiz gibi bir uygulama geliştirerek, cihaz içerisinde kurulu diğer uygulamaları görüntüleyebilir veya yönetebiliriz(silme vs gibi) Telephony Manager: Cihaz yönetiminden sorumlu olan servistir. Uygulama içerisinde cihaz ile alakalı bir işlevle aracılık eder. Örnek olarak gelen aramanın anlaşılması ve cihazın gelen aramada “telefon çalıyor” durumu gibi.

10 Applications Framework Katmanı Location Manager: Uygulamaların Cihaz içerisinde bulunan Location(GPS) erişimini sağlar ve yönetir. Resource Manager : Uygulamalar içerisine dahil edilen diğer kaynakların(resim, dosya vs) yönetiminden sorumlu olan servistir. Örnek vermemiz gerekirse, uygulama içerisine bir logo eklenip kullanılacağı zaman veya yönetileceği zaman Resource Manager aracılığı ile gerçekleştirilmektedir. Notificaiton Manager: Cihaz üzerindeki bilgi mesajlarından sorumlu olan servistir. Örnek vermemiz gerekirse facebooktan yeni bir yorum geldi gibi bilgi mesajları Notification Manager’ın yönetimindedir.

11 Libraries Katmanı Android işletim sistemi mimarisinde 3. katman olarak göze çarpan Libraries katmanı (native-libraries olarakta karşımıza çıkabilir) Android işletim sistemi içerisine yerleştirilmiş diğer araç kütüphanelerini bulunduran katmandır.

12 Libraries Katmanı Application Katmanında bahsetmiş olduğumuz Android ile gömülü olarak gelen Web Browser uygulamasından örnek verecek olursak; İnternet sayfası görüntülemeye çalıştığımızda Android işletim sisteminde uzak bilgisayar (website sunucusu) tarafına istek yaptıktan sonra geri dönen içerik (html kodları vs) yorumlanması Android içerisine dahil edilen WebKit kütüphanesinin işidir. Başka bir örnek; Uygulamamız içerisinde bir database oluşturmamız gerekiyor. Kişilerin adlarını ve soyadlarını kayıt edip sorgulayacağız burada android işletim sisteminin Libraries katmanında bulunan SQLite kütüphanesinden faydanılmaktadır.

13 Android Runtime Katmanı Core Libraries Bu kütüphane uygulamaların harici Java kütüphanesinden faydalanmasını sağlamaktadır. Core Libraries (Çekirdek Kütüphanesi), Java Libraries olarak ta bilinmektedir.

14 Android Runtime Katmanı Dalvik VM Dalvik VM(Dalvik Virtual Machine) Dan Bornstein tarafından Android işletim sistemi için özel olarak geliştirilmiş bir sanal makinadır. Java olarak yazılan uygulama kodları (.class) derleyiciler tarafından Dalvik VM’in okuyabileceği bytecodelara çevrilerek toplanır ve.dex uzantılı dosyada dönüştürülürler. Bu.dex uzantılı dosyalar Dalvik VM’in çalıştırılabilir(executable) dosya uzantılarıdır.

15 Android Runtime Katmanı Dalvik VM Dalvik VM düşük hafıza kullanımından dolayı sevilmektedir. Dalvik VM için ön görülen min RAM kapasitesi 64 MB olarak belirtilmektedir. Dalvik VM, Android 2.2 ile birlikte Just-In- Time derleyici olarak yoluna devam etmiştir. JIT olarak bilinen ve çalışma zamanlı derleme yapısı Android 4.4 ile yerini Ahead-of-Time derleyiciye bırakmaya başlamıştır. Çalışma öncesi derleme yapısı AOT Google firması tarafından ART olarak sunulmuştur.

16 Android Runtime Katmanı Dalvik VM ART Android RunTime ile yoluna devam eden Android işletim sistemi için performans kazandırılacağı düşünülmektedir. Çünkü JIT yani çalışma zamanlı derleme, Uygulamaların çalışma zamanında ele alarak bytecodelarının okunup, işlemci üzerinde yorumlanmasıyla çalışmakta iken AOT yani çalışma öncesi derleme ile bu yapı Uygulamaların kurulma aşamasında derlenip çalışma esnasında derlenme ile zaman kaybetmemesi sağlamaktadır. Buda Android için daha az işlemci ve ram anlamına gelmektedir.

17 Linux Kernel Katmanı Android işletim sisteminde 5. Katman olarak Linux- Kernel gözümüze çarpıyor. Bu katman işletim sisteminin 0. seviyesidir. İşletim sistemi ile donanım ( hardware ) arasındaki iletişimi sağlayan tabiri yerinde ise android işletim sisteminin kalbidir. Linux-Kernel, Linux olarak adlandırıyor olsa da; linux kernelden bağımsız olarak Android için özel olarak geliştirilmiştir. Yani bilinen linux çekirdeğinden çalışma prensipleri olarak aynı olsa da yapısal olarak farklılıklar göstermektedir.

18 BLM401 Dr.Refik SAMET 18 UYGULAMALARIN YAPISI (1/1) Android işletim sisteminde bir uygulama başka bir uygulamayı kodu ile ilgili herhangi bir işlem yapmadan kullanabilir. Bunun için uygulamaların belli bileşenlerinin başka uygulamalar tarafından çalıştırılabiliyor olması gereklidir. Bu da ancak bu bileşenlerin Java nesnelerini oluşturmakla mümkündür. Bu yüzden uygulamalardaki bileşenlerin de birden fazla giriş noktası olabilir.

19 BLM401 Dr.Refik SAMET 19 UYGULAMA BİLEŞENLERİ (1/2) Temel dört uygulama bileşeni vardır: 1)Aktiviteler (Activity); 2)Servisler (Services); 3)Yayın Alıcıları (Broadcast Receiver); 4)İçerik Sağlayıcıları (Content Providers). Bir uygulama bu bileşenlerden en az bir tanesinden oluşabileceği gibi tüm bileşenleri de kullanabilir. Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri

20 BLM401 Dr.Refik SAMET 20 AKTİVİTELER BİLEŞENİ (1/14) Görsel ara yüz sunar: metin kutuları, fotoğraflar, menü elemanları, düğmeler, vb. Kullanıcılarla etkileşimlidir. Birden fazla olabilir ve aktiviteler bir birinden bağımsızdır. Activity sınıfından türetilmiş bileşenlerdir. Belli kurallar dahilinde bir diğer aktiviteyi başlatabilir.

21 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 21

22 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 22

23 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 23

24 Android Aktivitelerin Yaşam Döngüsü

25 onCreate() : Bu metod ile birlikte aktivite yaratılır. onStart() : Bu metod ile aktivite artık kullanıcı tarafında görünür (visible) durumdadır. onResume() : Bu metod ile birlikte kullanıcı artık uygulama ile karşılıklı iletişim halindedir. onPause() : Bununla beraber artık kullanıcıdan herhangi bir girdi alamaz ve hiçbir kod çalıştırılamaz. onStop() : Artık aktivite görünür (visible) durumda değildir. onDestroy() : Aktivite sistem tarafından yok edilmeden önce bu metod çağırılır. onRestart() : Aktivite durdurulduktan sonra tekrar başlatılmak için bu metod kullanılır.

26 BLM401 Dr.Refik SAMET 26 SERVİSLER BİLEŞENİ (1/10) Görsel ara yüz sunmazlar Kullanıcılarla direk etkileşimleri yok dolaylı olarak etkileşimlidirler Birden fazla olabilir ve servisler bir birinden bağımsızdır Genel olarak kullanıcı arayüzünde görev almazlar. Service sınıfından türetilmiş ve arka planda çalışan bileşenlerdir.

27 BLM401 Dr.Refik SAMET 27 SERVİSLER BİLEŞENİ (2/10) Android multi-tasking modunu destekliyor. Bu da servisler arka planda çalışırken ön planda başka işlerin yapmasını sağlar. Servislerle ile bağlantıyı diğer uygulama bileşenleri kurar. Diğer bileşenler bir servisi başlatıp, durdurabilir veya çalışan bir servisle bağlantı kurup servisten desteklediği işlevleri yerine getirmesini isteyebilir.

28 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 28

29 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 29

30 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 30

31 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 31

32 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 32

33 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 33

34 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 34

35 BLM401 Dr.Refik SAMET 35 YAYIN ALICILARI BİLEŞENİ (1/8) Görsel ara yüz sunmazlar ve uygulamaların isteklerine göre gerekli işlemleri yaparlar. Kullanıcılarla direk etkileşimleri yoktur, dolaylı olarak etkileşimlidirler Birden fazla olabilir ve yayın alıcıları bir birinden bağımsızdır Bir aktiviteyi ve servisi çağırıp kullanabilir BroadcastReceiver sınıfından türetilmiş bileşenlerdir.

36 BLM401 Dr.Refik SAMET 36 YAYIN ALICILARI BİLEŞENİ (2/8) Genelde yayınlar Android tarafından yapılır. Uygulamalar kendileri de yayın yapabilirler. Uygulamalar diğer uygulamaların yaptıkları yayınları da alabilir. Yayın alıcılar aldıkları yayına göre bir aktivite başlatabilir veya bir şekilde kullanıcının dikkatini çekecek şeyler – müzik çalma, cihazı titretme, vb. – yapabilirler.

37 BLM401 Dr.Refik SAMET 37 YAYIN ALICILARI BİLEŞENİ (3/8) Android sistem için önemli gördüğü durumlarda (örneğin, pil azaldığında, güç bağlantısı yapıldığında, cihaz kapanırken, vb.) uygulamaların gerekiyorsa kendi işlemlerini yapmaları, bazı durumlar için önlemlerini almaları için “yayın yapar”.

38 BLM401 Dr.Refik SAMET 38 YAYIN ALICILARI BİLEŞENİ (4/8) Uygulamasının sistemde yapılan herhangi bir yayından haberdar olmasını isteyen yazılımcılar, yayın almak istedikleri olaylar için uygulamayı “kayıt” ettirirler ve böylelikle kaydolunan olay olduğunda Android uygulamayı haberdar eder. Uygulama da yayını aldığında yani bir olayın olduğunu öğrendiğinde ona göre işlem yapar.

39 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 39

40 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 40

41 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 41

42 Kaynak: http://www.slideshare.net/mimaraslan/android-seminerlerihttp://www.slideshare.net/mimaraslan/android-seminerleri BLM401 Dr.Refik SAMET 42

43 BLM401 Dr.Refik SAMET 43 İÇERİK SAĞLAYICILAR (1/2) Uygulamanın sabit olduğu verilere diğer uygulamaların ulaşmasını sağlar. ContentProvider sınıfından türetilmiş bileşendir. Veriler dosya sisteminde, SQLite veri tabanında veya başka bir metotla tutulabilir.

44 BLM401 Dr.Refik SAMET 44 İçerik Sağlayıcılar. Tanımlanmış belli fonksiyonları ile tuttukları veriye diğer uygulamaların ulaşmasını veya aynı tipte veri kaydedilmesini sağlarlar. Diğer uygulamalar ContentResolver nesnelerini kullanarak bir içerik sağlayıcı ile etkileşimde bulunabilirler.

45 BLM401 Dr.Refik SAMET 45 (son) BAŞARILAR …


"BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi ANDROİD UYGULAMALARININ BİLEŞENLERİ Dr.Refik SAMET BLM4011." indir ppt

Benzer bir sunumlar


Google Reklamları