Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların bilgilerini saklamalarına, program yüklemelerine izin vermesinin yanısıra birer cep telefonudur da. Günümüzde internet ve multimedya kullanımının artması ile yaygınlığını her geçen dakika artırmaktadır. İlk smartphone 1992 yılında İBM tarafından, Las Vegasta yapılan COMDEX fuarında sergilendi. Cihaz aynı zamanda dokunmatik ekrana sahipti Akıllı telefonlar (Smart Phones) , Tablet bilgisayarlar , PDA (Personal Digital Assistant) 'lar gibi taşınabilir cihazlar için üretilen işletim sistemleri mobil işletim sistemleri olarak adlandırılırlar. -Google : Android -Apple : Iphone OS (iOS) -RIM : BlackBerry OS -Symbian Vakfı : Symbian -Palm : Web OS -Microsoft : Windows Mobile -Linux Vakfı : MeeGo -Samsung : Bada Google ve Open Handset Allience (OHA) tarafından mobil cihazlar için kodlanmış açık kaynak kodlu bir işletim sistemidir. Linux çekirdeğine sahiptir ancak alışılageldik Linux çekirdekli işletim sistemlerinde bulunan bazı temel özellikleri ve parçaları içermediği için genel anlamda bir Linux işletim sistemi olarak kabul edilmez. İşletim sistemi kodlanırken yaklaşık 12 milyon (3 milyon XML , 2.8 milyon C , 2.1 milyon Java, 1.75 milyon C++ ve diğer kodlar) satır kod yazılmıştır. Eski Yunancada insanımsı makine anlamına gelen yeşil robot simgesini kullanır. Yazılım uzmanları için gerekli olan bütün altyapıyı geniş bir kütüphane içerisinde sunmaktadır. Android SDK ile kolayca donanım elemanlarına erişilebilir ve kontrol edilebilir. Application katmanı İş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. Android’ in tercih edilmesinde uygulamalar büyük rol oynar ve bu yüzden uygulamaların işletim sistemi tarafından kusursuz yönetilmesi gerekir. Android’ de 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 Uygulamanın donanım isteklerinin yönetilmesi Android’in çeşitli sistem bileşenlerinin kullanılabilmesi için gerekli olan C,C++ kütüphanelerinin bulunduğu katmandır. Örneğin veritabanı uygulamaları için kullanılan SQLite veritabanının kütüphanesi bu katmandadır. Yine benzer şekilde medya uygulamalarının da kütüphaneleri bu katman içindedir. Android uygulamalarının tamamına yakını Java diliyle yazıldığından bu uygulamaların çalıştırılmasında bir Java Sanal Makinesi’ne ihtiyaç vardır. Mobil cihazlardaki kaynakların oldukça sınırlı olması, Android için yeni bir sanal makineye ihtiyaç duyulmasına sebep olmuştur. Google bu sebeple Android için Dalvik Sanal Makinesini geliştirmiştir. Android’ de her uygulama kendi sürecinin Dalvik VM’ den aldığı bir oturumda koşar. Dalvik VM aynı anda çok sayıda sürece oturum hakkı verebilir. Yani birden fazla process zaman paylaşımlı olarak çalışabilmektedir. Android OS, bellek yönetimi (memory management), süreç yönetimi (process management), güvenlik, sürücü hizmetleri gibi temel işletim sistemi görevlerini Linux Kernel 2.6 ile gerçekleştirmektedir. Donanım kaynaklarına erişim de Linux Kernel ile gerçekleştirilir. Android, bahsi geçen özellikleri Linux Kernel’ den almış olsa bile bunları mobil cihazlara uyarlamak için bazı iyileştirmelere ve geliştirmelere de gitmiştir. Konum Bazlı İşlemler: Bulunulan konum bilgisi ve istenilen konum bilgilerine ulaşılabilir. Google Maps API Veritabanı İşlemleri: SQLite (ilişkisel veri tabanı) Grafik İşlemleri: OpenGL Kamera ve Sensör İşlemleri: Arkaplan İşlemleri: Arkaplanda çalışan servisler. Yazdığınız herhangi bir programı herhangi bir sistem üzerinde çalıştırabilmeyi sağlar. Java ile yazılan sınıflar(.java), öncelikle bytecode diye adlandırılan (.class) dosya türüne derlenir. Bu dosyalar işlemciniz üzerinde doğrudan çalıştırılabilir programlar değildir. Dalvik Sanal Makinesi(Dalvik VM) bu kodu yorumlayarak telefona uygun çalıştırılabilir (.dex) dönüştürür. Gelecekte dizüstü bilgisayarların yerini tablet bilgisayarların alacağı tahmin edilmektedir. Android markette 2013 yılında 520 bin uygulama bulunmaktadır. Her geçen gün yeni uygulamalar yüklenmektedir. Yakın gelecekte TV’lerin akıllı TV’lere dönüşeceği (Google TV) ve Android işletim sistemi kullanılabileceğini göstermiştir. JDK (Java Development Kit) Eclipse IDE Android SDK Eclipse ADT Android uygulamasının çalışması için gerekli tüm prensiplerin belirlendiği dosyadır. Filtrelemeler, izinler, versiyon ayarları ve bir android uygulamasında aklınıza gelebilecek birçok şey bu dosya içerisindeki verilere göre şekilleniyor. Örneğin, sms gönderme iznini vermediğimiz bir uygulama sms gönderemez veya internet erişimi vermediğimiz bir uygulamanın internete bağlanma imkanı yoktur. Ya da bir activity sınıfını bu dosyada tanıtmadığınız sürece uygulamanız içerisinde o sınıfa erişmeniz mümkün olmayacaktır. https://www.youtube.com/watch?v=bu GXaLNE4vw