Android Programlama 2014-2015 BAHAR MAKU-TBMYO 2015
DEĞERLENDĠRME AKTS ders kataloğuna göre
Genel Kavramlar Android GeliĢtirme Araçları Android Kaynakları Activity Intent Layout Frame Servisler Dosyalar SqlLite Sensörler Google MAP API Konu BaĢlıkları
Mobil Telefon Anakartı Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html (22/02/15)
Bir Mobil Cihazdaki Sensörler Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html 22/02/15
Sensörler 1. Barometre: Hava basıncını ölçerek dağa tırmanırken kaç kalori yakıldığını hatasız olarak hesaplar. 2. Hall sensörü: Katlanır kapağın durumunu algılar. Böylece kapak açılınca ekran ıģığı da açılır, kapandığında ise ekran ıģığı otomatik olarak kapanır. 3. RGB ortam ışığı sensörü: Ekranı otomatik olarak aydınlatarak veya karartarak göz yorgunluğunu azaltır. 4. El Hareketi sensörü: Kullanıcılar telefonlarına dokunmadan, sadece ellerini hareket ettirerek telefonlarıyla etkileģimde bulunabilirler. 5. Yakınlık sensörü: Telefon görüģmesi sırasında ekranı kapatır. 6. Jiroskop: Kullanıcılar ekranı yukarı ve aģağı eğerek kolayca metin okuyabilirler. 7. Hareket Sensörü: Adımölçerle benzer iģlevleri vardır ve zinde kalmak konusunda yardımcı olacak özellikler sunar. 8. Jeomanyetik sensör: Ana yönleri hatasız saptayabilmek üzere haritalardan faydalanır.
Bazı Mobil Cihaz Uygulama GeliĢtirme Araçları Android Studio (Java) Eclipse IDE (Java) Xcode ( Objective-C, Swift) Visual Studio C#.NET ============================ VindDev Mobile Telerik (Online - HTML5 ile) MIT App Inventor (On-line) =========OYUN============== Corona SDK Unity
Android Nedir? Andrid Google Firması tarafından 2005 yılında geliģtirilmeye baģlanmıģ Telefon Tablet Saat TV gibi cihazları programlanması için Java Programlama Dilini kullanan ve Linux Tabanlı (kernel) tabanlı bir İŞLETİM SİSTEMİDİR
Linux Tabanlı Neden Android? Samsung, LG, Sony, Huawei,... vb. firmaların ortak Ücretsiz geliģtirme aracı Java dili ile geliģtirilir (ios için kullanılan Object-C ve Swift gibi zor diller kullanmaz) GeniĢ Kullanım Alanı ( Mobil telefon, Tablet, Otomobil, TV, Blue Ray, vb. gibi) Farklı yerlerden kurulabilir (GoogleStore, direkt yükleme,..) Bol miktarda kaynak döküman Registery-based olduğundan küçük iģlemcilede az bellekle çalıģabilir Arkasında Google gibi bir firma olması
Android Uygulamaları (SANDBOX) Android iģletim sistemi üzerinde çalıģan her bir uygulama için ayrı bir iģlem ve sanal makina ( DVM: Dalvik Virtul Machine) ayrılır. Böylece uygulamalar birbirinden izole olarak çalıģır. Bu güvenlik açısından önemlidir. Android uygulamaları GoogleAppStore üzerinden dağıtımı yapıldığında üretici firma anahtarı ile yüklenir. Dolayısıyla hangi uygulam hangi üretici tarafından geliģtirildiği bellidir. Aynı üretici tarafından geliģtirilen farklı uyggulamalar aynı üretici koduyla yüklenir. Android Uygulama-1 Android Uygulama-2... Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı Kendine ait bir DVM Hafızadan ayrılmģ bellek(heap) Kendine ait kanaklar Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı Kendine ait bir DVM Hafızadan ayrılmģ bellek(heap) Kendine ait kanaklar Android Uygulama-N Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı Kendine ait bir DVM Hafızadan ayrılmģ bellek(heap) Kendine ait kanaklar
Android Mimarisi Android ĠĢletim sistemi, adres defteri, telefon arama, notification, 2D/3D grafik, database, security/encryption, camera, ses, input/output, web.. gibi kütüphaneler sağlar. 4 3 Java Kodlar Derlenerek DVM binary kodlara dönüģtürülür 2 1 http://developer.android.com/images/system-architecture.jpg
1-Linux Çekirdeği(Kernel)
2-Android Yerel Linux Kütüphanesi (Android Linux Library)
Dalvik Virtual Machine Dalvik Virtual Machine Hızlı CPU ihtiyaç duymaz Swap alana ihtiyaç duymaz Sınırlı batarya ömrü Küçük RAM lara ihtiyaç duyar Örn: Toplam 64 Mb, ÇalıĢma sırasında yaklaģık 10 Mb
Dalvik Virtual Machine Bir.dex dosyada birden çok class vardır Stack-based yerine registered-based dir Modifiye edilmiģ garbage (çöp toplama) GeliĢtirilmiĢ memory paylaģımı (sharing) Ġnstal zamanında optimize edilir
DVM ye karģı ART (OTM) 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. 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. ĠĢletim sistemi baģladıktan sonra 20 MB RAM kapasiti bulundurmaktadır. 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 (AOT) derleyiciye bırakmaya baģlamıģtır. ÇalıĢma öncesi derleme yapısı AOTGoogle firması tarafından ART olarak sunulmuģtur. ART Android RunTime ile yoluna devam eden Android iģletim sistemi için performans kazandırılacağı düģünülmektedir. Çünkü JITyani ç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. Kaynak (23/02/15): http://ibrahimbalic.com/tag/android-art/
Android Sürümleri Program yazarkan API level önemli An itibarı ile en piyasadaki en çok sürüm.
Android Versiyonlarına göre Piyasada Kullanım Oranları
22 ġubat 2015 httphttp://www.idc.com/prodserv/smartphone-os-market-share.jsp
SEÇENEK-I Android GeliĢtirme Araçları 1- Java Developer Kit (JDK) 2- Android Studio (Android Virtual Device birlikte) SEÇENEK-II 1- Java Developer Kit (JDK) 2- Eclipse ( Java Software Developer Kit) 3- Android Developer Toolkit 4- Emülatör (AVD, GenyMotion)
Android Studio Google Android Studio 1.1, IntelliJ IDEA editor temeline dayanıyor.
Android Studio 1.1 Kurulumu 1- Download Android Studio http://developer.android.com/sdk/index.html 2-Install ADT Plug-ins and Android SDK https://dl-ssl.google.com/android/eclipse/ 2 GB RAM minimum, 4 GB RAM recommended 400 MB hard disk space At least 1 GB for Android SDK, emulator system images, and caches 1280 x 800 minimum screen resolution Proxy ayarları: http://developer.android.com/tools/studio/index.html
Android Uygulama Build ĠĢlem Süreci Android Uygulaması Java Kodu Ornek1.java Ornek1.class Ornek1.dex javac ( Java Compiler) dx (Dalvik Compiler) Kaynak dosyalar Ornek1.apk GoogleAppStore DVM Dalvik Virtual Machine ANDROID ĠġLETĠM SĠSTEMĠ
Android Uygulaması Kaynakları Android Uygulaması Java Kodu XML dosya Diğer AndroidManifast.xml -Projenin ayarlamalarının yapıldığı dosya src/java/... - Java class kaynak dosyaları res/... ( kaynak dosyalar (xml) ) -dreawable / (resimler) -layout/ (GUI tanımları) -menu/ (menu değerleri) -values/ (sabit değerler ve diziler) -strings ( değiģkenler) -styles (görünüm stilleri) Gradle -build/compile yönetim sistemi -build.gradle (ana build ayarları dosyası) XML: Tasarım ve diğer alfasayısal verilerin bılunduğu xml tabanlı kaynaklar AndroidManifest.xml Active_main.xml, menu.xml, values.xml, color.xml styles.xml dimension.xml Resim Kaynak dosyaları (png, jpeg, gif ve nine-pitch(.9.png)) Diğer Kaynaklar (raw) ( video, ses, pdf, txt vb. ) SQLLite (dtabase)
Android Uygulaması
Android Emulator Emülatörler Android programını gerçek cihazda çalģıyormuģ gibi, sanal cihazlar üzerinde denemek için gerekli programlardır. Android Studio ile birlikte Android Virtual Device (AVD) emülatörü gelmektedir. Cok kullanılan bazı Emülatörler 1-Android Virtual Device (AVD) 2-GenyMotion (Download GenyMotion) 3-BluStacks (Download Bluestacks) 4-You wave (Download You Wave) 5-Windroy 6-AndyRoid 7-Droid4X 8-Xamarin 9-DuOS-M 10- Web tabanlı emülatör (https://www.manymo.com/emulators) Emülatör Hızlandırma: http://www.javacodegeeks.com/2013/12/android-boost-up-the-android-emulator-speed-up-to-400-on-intel-based-architecture.html
Android Uygulamsı Test Araçları Applause applause.com. AppThwack appthwack.com. Testdroid www.testdroid.com Kaynak(03/03/2015):/https://software.intel.com/en-us/android/articles/services-to-test-your-android-apps-on-intel-devices Services to Test Your Android Apps on Intel Devices, Joshua A. Bancroft on May 22, 2014