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 yazılımlara uygulama adı verilir. Uygulamaların geliştirilmesi için çeşitli programlama dilleri ve geliştirme araçları kullanılır. Uygulamalar; işletim sistemleri, internet siteleri (Facebook gibi), başka bilgisayar programları (Firefox, Chrome vb.), cep telefonları (Android, iPhone vb.) ya da tablet bilgisayarlar altında çalıştırılmak üzere hazırlanır. Daha fazla kullanıcıya ulaşabilmek için günümüzde geliştirilen uygulamalardan bir çoğu birden fazla platformda çalışacak şekilde tasarlanmaktadır.
Mobil Uygulamalar ve Türleri Akıllı telefon ve tabletler için tasarlanmış ve kodlanmış yazılımlara mobil uygulama denir. Temelde 3 tip mobil uygulama vardır; Native (Yerli) Uygulama: Platforma özel API'ler ile belli bir dilde programlanan uygulamadır. Tipik olarak platforma özel merkezi bir uygulama marketinden satın alınır, indirilir ve güncellenir. Native uygulamalar, diğer uygulamalara kıyasla genellikle en iyi performansı, en derin entegrasyonu ve en iyi genel kullanıcı deneyimini sunar.
Mobil Uygulamalar ve Türleri Web Uygulaması: Bir web tabanlı uygulama HTML5, JavaScript ve CSS bazlıdır ve herhangi bir uygulama marketine bağlı değildir. Native bir uygulamanın görünümünü ve davranışlarını kopyalamaya çalışan bir web sitesidir. Karma Uygulama: Bir uygulamada, daha iyi performans ve platform ile uygulamanın daha iyi uyum sağlaması için native kod kullanılırken, uygulamanın diğer unsurları için HTML5 temelli içerikle beraber bir webview kullanılabilir. Ortaya çıkan uygulamanın bazı kısımları bir native uygulama gibi iş görürken diğer parçalar web teknolojileri ile desteklenmektedir.
Native vs. Web Web uygulamaları masaüstü cihazlarınızdan görüntülediğiniz web sitelerinden farklı olarak akıllı telefon ve tablet boyutlarında tekrar oluşturulur ve kullanıcılar bu cihazlardan web sitelerine giriş yaptıklarında karşılarına bu ekran boyutlarında hazırlanmış web siteleri çıkar. Native uygulamalarda ise durum farklıdır. Aynı şekilde burada da uygulamanın çalışacağı platforma göre tasarım ve kodlama yapılır fakat burada yalnızca ekran boyu değil kullanılan programlama dili de değişmektedir.
Mobil Platformlar İşletim SistemeriCihazlarUygulama Mağazaları Apple IOS iPhone ve Apple Tabletler Apple App Store AndroidBaşlıcaları; Samsung, HTC, Simens, Sony, Asus, LG Google Play Store Windows MobileBaşlıcaları; Nokia Lumia, Windows Phone, Huawei Windows Phone Store Blackberry BlackBerry App World
Pazar Payları
Android nedir? Google öncülüğünde bir organizasyon olan Open Handset Allience tarafından geliştirilen, Linux 2.6 çekirdeğine dayalı ve mobil cihazlarda kullanılan bir Linux dağıtımıdır. İşlem, bellek yönetimi, dosya sistemi vb. temel sistem servisleri diğer Linux türevleri ile aynıdır. Temel olarak dokunmatik ekranlar için tasarlanan Android, düşük maliyetli ve kişiselleştirilebilen işletim sistemi arayan yüksek teknolojiye sahip cihazlar arasında da popülerdir. Başlarda bu sadece tablet ve akıllı telefonları kapsasa da, günümüzde televizyonlar, arabalar, oyun konsolları, dijital kameralar ve saatler gibi cihazlarda da kullanılmaya başlamıştır.
Teknik Bilgiler Bu platformda uygulamalar Android Yazılım Geliştirme Kiti (SDK) kullanılarak 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. İşletim sisteminin donanım olarak içerdiği jiroskop, yakınlık algılayıcı, ivme ölçer gibi fonksiyonlar da uygulama geliştiriciler için fayda sağlar. Örneğin, telefon yan çevrildiği zaman görüntünün de dönmesi bu araçlar yardımıyla uygulanabilir. Android öncelikli olarak 32-bit ARMv7 işlemcilerine yönelik geliştirilmektedir. Bunun yanında Android x-86 projesi x86 işlemciler için de destek sağlar. Android 5.x Lollipop sürümüyle birlikte x86, ARM ve MIPS platformları için 64 bit desteği de gelmiştir. Android güvenlik açısından da güçlü olmak adına uygulamaların sistemin tüm alanlarına müdahale etmesini engeller. Her uygulamanın kullanmak istediği alanlar için kullanıcıdan izin alması gerekir ve uygulama güncelleştirmeleri sırasında bu izinler değişirse kendiliğinden güncelleştirme yapmaz ve bu değişikliği kullanıcının onayına sunar.
Android Sürümleri SürümKod adıYayın tarihi 1.1Astro9 Şubat Bender16 Mart Cupcake30 Nisan Donut15 Eylül Eclair 26 Ekim 2009 Ocak Froyo20 Mayıs Gingerbread6 Aralık Honeycomb Şubat 2011 Temmuz 2011 Kasım Ice Cream Sandwich19 Ekim Jelly Bean 9 Temmuz Ekim Temmuz KitKat31 Ekim Lollipop 12 Kasım Aralık Aralık Mart Marshmallow5 Ekim Nougat22 Ağustos 2016
Android Sürümleri
Android Mimarisi
Linux Çekirdeği Android’in en alt katmanı olup, donanım ve üst seviyeler arasında soyutlama yapılmasını sağlar. İşlem, bellek ve güç yönetimi gibi temel sistem fonksiyonlarını yerine getirir. Ayrıca aygıt sürücülerini barındırarak işletim sisteminin cihaz bileşenleriyle bağlantısını sağlar.
Kütüphaneler Bu katmanda C/C++ ile yazılmış sistem kütüphaneleri, internet tarayıcı 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 tabanı kontrolü ve düzenlenmesi için SQLite gibi yapılar bulunur.
Android Runtime Bu bölüm Linux çekirdeğindeki kütüphanelerin Java ile birleştiği bölümdür. İki önemli bileşeni vardır; Temel Java kütüphaneleri ve Dalvik Sanal Makinesi.
Dalvik Sanal Makinası Uygulamalar Dalvik Sanal Makinesi tarafından çalıştırılır. 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 sokulur. Dalvik VM, düşük işlemci gücü, az RAM ve sınırlı batarya koşullarına göre tasarlanmıştır.
Application Framework Bu katman doğrudan android uygulamalarıyla ilgilidir. Uygulamaların oluşturulmasında kullanılan bileşenleri barındırır.
Application Application katmanı android mimarisindeki en üst katmandır. Kullanıcının doğrudan cihazla iletişime geçtiği uygulamaları barındırır.