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

Slides:



Advertisements
Benzer bir sunumlar
.NET FRAMEWORK -MASAÜSTÜ VE SUNUCU YAZILIMLARI
Advertisements

SGB.NET’İN TEKNİK ALTYAPISI
360Core Kütüphane Kullanıcıları için Kütüphaneciler için
MOBİL PROGRAMLAMA DERS 1 ANDROID NEDİR?.
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
ÖMÜR BİLGİLİ
BTÖ 303 İşletim Sistemleri ve Uygulamaları Dersi
ANDROID işletim sistemi
UZAKTAN EĞİTİME GİRİŞ VE KAVRAMSAL ÇERÇEVE
FRAMEWORK.
Bölüm 1: Introductions (Tanıtım,Tanım)
Çevre ve Orman Bakanlığı Bilgi İşlem Dairesi Başkanlığı
Proxy-DNS Nedir?.
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
3G & GOOGLE android İREM SOYA AYŞE YILDIZ.
İŞLETİM SİSTEMLERİ EYLÜL 2012.
Volkan TOKMAK – EMO Ankara Şubesi - Ocak 2012
Mobil Öğrenme m-öğrenme
İşletim Sistemlerinin Türleri
MART 2013 İŞLETİM SİSTEMLERİ.
Windows Server 2008’e Genel Bakış Microsoft Windows Server 2008, bilgi teknolojileri (BT) uzmanlarının altyapıları üzerindeki kontrollerini maksimum seviyeye.
İnternet Teknolojisi Temel Kavramlar
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
WİNDOWS SÜRÜMLERİ ARASINDAKİ FARKLILIKLAR
ETwinning Twinspace Kullanımı Nisan 2014.
İŞLETİM SİSTEMİ.
EYLÜL 2014 İŞLETİM SİSTEMLERİ Bilgisayar Uygulamaları.
Aşağıdakilerden hangisi işletim sistemi değildir?
İnternet Teknolojisi Temel Kavramlar
BIL MOBiL PROGRAMLAMA TEKNiKLERi
Arama Motoru Nedir?.
ÇOK KATMANLI MİMARİLER. Katman: Ortak işi yapan kodların bir yerde toplanması Örneğin hemen hemen her projemizde veri tabanı kullanırız, bunun için veritabanı.
BIL MOBiL PROGRAMLAMA TEKNiKLERi
Web 2.0 Araçlarının Tanıtımı ÖZGE AKMAN TÜRKÇE ÖĞRETMENLİĞİ 2. SINIF 1. ÖĞRETİM
Mobil Uygulama Geliştirme
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
BİLGİSAYAR NEDİR?.
Temel Bilgi Teknolojilerinin Kullanımı Öğr.Gör. Abdullah ŞENER.
BSM447 – MOBİL UYGULAMA GELİŞTİRME
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 3. Hafta.
Android Projesi Olusturma projemiz için isim ve gerekli sdk ayarların ı belirtiyoruz. Uygulamamızın hangi android sürümlerinde çalışabileceğini de bu.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Barış Ceviz Yazılım Geliştiricisi Yazılım, Yazılımcı, Yazılım Dilleri.
Ağ Donanımları Ağ Nedir ? Ağ Donanımları Bridge Hub Switch Router
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
SUNUM KONU BAŞLIKLARI->
Mobil Uygulamalar ve Android’e Giriş Ders 1. Uygulama Kavramı  Kullanıcıların ihtiyaçları doğrultusunda istedikleri işlemleri yapmalarına imkan veren.
SUNUCU İŞLETİM SİSTEMLERİ
SANALLAŞTIRMA ÇEŞİTLERİ VE YAZILIMLARI
Kullanıcı Kılavuzu: Hızlı İpuçları
Bilgiye Ulaşma ve Biçimlendirme
Research Starters ile Araştırmaya Başlarken
haZIRLAYAN: ELİF KARAOĞLU
Full Text Finder Publication Finder Genel Bakış
EBSCO Discovery Service (EDS) Akademik Arama Motoru/Keşif Aracı
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
PROGRAMLAMA TEMELLERİ
Dijital kütüphane işlevleri
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
J-guar Uyarlama Aracı Arif BATTAL Uyarlama Araçları Danışmanı.
İşletim Sistemleri (Operating Systems)
Öğretim Yılı Oryantasyon Programı
BİLİŞİM TEKNOLOJİLERİ
BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ
Full Text Finder Publication Finder Genel Bakış
Research Starters ile Araştırmaya Başlarken
WİNDOWS SÜRÜMLERİ ARASINDAKİ FARKLILIKLAR
FIRAT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ
Sunum transkripti:

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

Kaynak: Dr.Refik SAMET BLM4012

Android Yazılım Ortamı

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ı.

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ı

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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:

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.

Kaynak: BLM401 Dr.Refik SAMET 21

Kaynak: BLM401 Dr.Refik SAMET 22

Kaynak: BLM401 Dr.Refik SAMET 23

Android Aktivitelerin Yaşam Döngüsü

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.

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.

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.

Kaynak: BLM401 Dr.Refik SAMET 28

Kaynak: BLM401 Dr.Refik SAMET 29

Kaynak: BLM401 Dr.Refik SAMET 30

Kaynak: BLM401 Dr.Refik SAMET 31

Kaynak: BLM401 Dr.Refik SAMET 32

Kaynak: BLM401 Dr.Refik SAMET 33

Kaynak: BLM401 Dr.Refik SAMET 34

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.

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.

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”.

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.

Kaynak: BLM401 Dr.Refik SAMET 39

Kaynak: BLM401 Dr.Refik SAMET 40

Kaynak: BLM401 Dr.Refik SAMET 41

Kaynak: BLM401 Dr.Refik SAMET 42

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.

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.

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