SlideShare a Scribd company logo
1 of 14
Android, Linux çekirdeğini kullanan bir
işletim sistemidir. Google, Open Handset
Alliance ve özgür yazılım toplulukları
tarafından geliştirilmektedir.
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.
Android Mimarisi
• Linux Çekirdeği
• Kütüphaneler
• Android çalışma zamanı (runtime)
• Uygulama geliştirme çatısı
• Uygulamalar katmanı
Temel Yapı (Linux Çekirdeği)
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
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.
Çalışma Zamanı (Runtime)
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'dir.
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.
Uygulama Geliştirme Çatısı: Androidde uygulamaların yönetimi
Application Framework tarafında gerçekleştirilir. Bu katmanın
görevleri arasında; uygulamaya ait kaynakların yönetimi,
uygulamalar arası veri paylaşımının yönetimi, uygulamaların
yaşam döngülerinin yönetilmesi gibi önemli uygulamalar vardır.
Ayrıca uygulamanın donanım isteklerinin de yönetilmesini
gerçekleştirir.
Uygulamalar Katmanı
Uygulamalar Katmanı işletim sisteminin kullanıcıya
görünen yüzüdür de denebilir. Bu katmanda kullanıcı
tanımlı uygulamalar bulunur. Android uygulamalarının
tamamına yakını Java programlama diliyle geliştirilir.
Sürümler
Android Studio Tanıyalım
Gradle tabanlı, esnek proje inşa sistemi.
Farklı özellik ve sürümlere göre çoklu APK çıktısı.
Temel proje şablonlarıyla hızlı ve kolay proje üretimi.
Ekran tasarımlarını kolaylaştıran sürükle-bırak özellikli zengin editör.
Uygulamanın performansı, kullanılabilirliği, farklı sürümlerde
çalışabilirliğinin kontrol edilebileceği test araçları.
Kolay ve güvenli APK imzalanması.
Ek uğraşa gerek kalmadan Google hizmetlerini uygulamaya
ekleyebilme.
Activity Kavramı
Activity sınıfı tarafından oluşturulan nesneler uygulama içinde
kullanılan ekranları temsil ederler. Uygulamanızdaki her
Activity'yi AndroidManifest.xml'de tanımlamalısınız. Eğer yeni
Activity, AndroidManifest dosyasında tanımlı değilse
uygulamamız çökecektir.
Her uygulamanın LAUNCHER olarak tanımlı bir Activity sınıfı
olmalıdır. Bu şekilde tanımlanmış bir Activity, uygulama ilk
açıldığında otomatik olarak harekete geçer ve kullanıcının
karşısına çıkan ilk ekran olur.
Layout Kavramı
Android uygulamalarında ekran tasarımları res klasörü altında
bulunan layout dosyaları ile belirlenir. Bu dosyalar xml formatında
hazırlanan dosyalardır ve Android uygulamalarına özel etiketler
kullanarak görsel öğelerin yerleşimlerini ve özelliklerini bildirirler.
Bir ekranın görünümü genellikle iki farklı yerleşim tipi kullanılarak
belirlenir. Bunlar RelativeLayout ve LinearLayout olarak ikiye ayrılır.
LinearLayout yerleşimi kullanıldığında öğeler sırayla ekrana dizilirler ve
ekrandaki yerleşimleri ekranın en tepesinden en altına doğru sırayla
gerçekleşir.
RelativeLayout görsel öğeleri diğer öğelere göre referans alarak
dizer. RelativeLayout tasarımında ilk eklenen öğe ekranın en tepesinde
yer alır.
Android

More Related Content

Similar to Android

Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerErcan Pinar
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
Android Programlamaya Giriş E-Eğitimi
Android Programlamaya Giriş E-EğitimiAndroid Programlamaya Giriş E-Eğitimi
Android Programlamaya Giriş E-EğitimiUniverist
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYusuf AYTİN
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiricilermerveyildiz1
 
JİRA'ya Giriş / Atlassian
JİRA'ya Giriş / AtlassianJİRA'ya Giriş / Atlassian
JİRA'ya Giriş / AtlassianCansu Kaya
 
Final project presentation
Final project presentationFinal project presentation
Final project presentationbattleground35
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEHalil İbrahim ÇELENLİ
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeMuharrem Tac
 
Android Eğitimleri Hacettepe Üniversitesi
Android Eğitimleri Hacettepe ÜniversitesiAndroid Eğitimleri Hacettepe Üniversitesi
Android Eğitimleri Hacettepe ÜniversitesiVolkan Ulutaş
 
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişPhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişEgemen Mede
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumuibrahimhizlioglu
 
Open Source Android Libraries
Open Source Android LibrariesOpen Source Android Libraries
Open Source Android Librariesmuratcanbur
 
Solarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch ManagerSolarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch ManagerKavi International
 
Android & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYAndroid & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 

Similar to Android (20)

Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
 
Android Programlamaya Giriş E-Eğitimi
Android Programlamaya Giriş E-EğitimiAndroid Programlamaya Giriş E-Eğitimi
Android Programlamaya Giriş E-Eğitimi
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiriciler
 
JİRA'ya Giriş / Atlassian
JİRA'ya Giriş / AtlassianJİRA'ya Giriş / Atlassian
JİRA'ya Giriş / Atlassian
 
Final project presentation
Final project presentationFinal project presentation
Final project presentation
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
 
Android Eğitimleri Hacettepe Üniversitesi
Android Eğitimleri Hacettepe ÜniversitesiAndroid Eğitimleri Hacettepe Üniversitesi
Android Eğitimleri Hacettepe Üniversitesi
 
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişPhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
 
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter SunumuÖzgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
Özgür Web Teknolojileri Günleri 2010 - İbrahim Hızlıoğlu // CodeIgniter Sunumu
 
Android
AndroidAndroid
Android
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
Open Source Android Libraries
Open Source Android LibrariesOpen Source Android Libraries
Open Source Android Libraries
 
Eclipse
EclipseEclipse
Eclipse
 
Solarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch ManagerSolarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch Manager
 
Android & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYAndroid & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAY
 
12factor apps
12factor apps12factor apps
12factor apps
 

Android

  • 1. Android, Linux çekirdeğini kullanan bir işletim sistemidir. Google, Open Handset Alliance ve özgür yazılım toplulukları tarafından geliştirilmektedir.
  • 2. 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.
  • 3. Android Mimarisi • Linux Çekirdeği • Kütüphaneler • Android çalışma zamanı (runtime) • Uygulama geliştirme çatısı • Uygulamalar katmanı
  • 4. Temel Yapı (Linux Çekirdeği) 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.
  • 5. Kütüphaneler 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.
  • 6. Çalışma Zamanı (Runtime) 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'dir.
  • 7. 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.
  • 8. Uygulama Geliştirme Çatısı: Androidde uygulamaların yönetimi Application Framework tarafında gerçekleştirilir. Bu katmanın görevleri arasında; uygulamaya ait kaynakların yönetimi, uygulamalar arası veri paylaşımının yönetimi, uygulamaların yaşam döngülerinin yönetilmesi gibi önemli uygulamalar vardır. Ayrıca uygulamanın donanım isteklerinin de yönetilmesini gerçekleştirir.
  • 9. Uygulamalar Katmanı Uygulamalar Katmanı işletim sisteminin kullanıcıya görünen yüzüdür de denebilir. Bu katmanda kullanıcı tanımlı uygulamalar bulunur. Android uygulamalarının tamamına yakını Java programlama diliyle geliştirilir.
  • 11. Android Studio Tanıyalım Gradle tabanlı, esnek proje inşa sistemi. Farklı özellik ve sürümlere göre çoklu APK çıktısı. Temel proje şablonlarıyla hızlı ve kolay proje üretimi. Ekran tasarımlarını kolaylaştıran sürükle-bırak özellikli zengin editör. Uygulamanın performansı, kullanılabilirliği, farklı sürümlerde çalışabilirliğinin kontrol edilebileceği test araçları. Kolay ve güvenli APK imzalanması. Ek uğraşa gerek kalmadan Google hizmetlerini uygulamaya ekleyebilme.
  • 12. Activity Kavramı Activity sınıfı tarafından oluşturulan nesneler uygulama içinde kullanılan ekranları temsil ederler. Uygulamanızdaki her Activity'yi AndroidManifest.xml'de tanımlamalısınız. Eğer yeni Activity, AndroidManifest dosyasında tanımlı değilse uygulamamız çökecektir. Her uygulamanın LAUNCHER olarak tanımlı bir Activity sınıfı olmalıdır. Bu şekilde tanımlanmış bir Activity, uygulama ilk açıldığında otomatik olarak harekete geçer ve kullanıcının karşısına çıkan ilk ekran olur.
  • 13. Layout Kavramı Android uygulamalarında ekran tasarımları res klasörü altında bulunan layout dosyaları ile belirlenir. Bu dosyalar xml formatında hazırlanan dosyalardır ve Android uygulamalarına özel etiketler kullanarak görsel öğelerin yerleşimlerini ve özelliklerini bildirirler. Bir ekranın görünümü genellikle iki farklı yerleşim tipi kullanılarak belirlenir. Bunlar RelativeLayout ve LinearLayout olarak ikiye ayrılır. LinearLayout yerleşimi kullanıldığında öğeler sırayla ekrana dizilirler ve ekrandaki yerleşimleri ekranın en tepesinden en altına doğru sırayla gerçekleşir. RelativeLayout görsel öğeleri diğer öğelere göre referans alarak dizer. RelativeLayout tasarımında ilk eklenen öğe ekranın en tepesinde yer alır.