Volkan TOKMAK – EMO Ankara Şubesi - Ocak 2012 Android'e Giriş Volkan TOKMAK – EMO Ankara Şubesi - Ocak 2012
Android Nedir? 2007, Google Mobil cihazlar için üretilmiş Linux tabanlı işletim sistemidir Açık kaynak kodlu ve ücretsizdir Mobil cihazlar için gerekli temel uygulamaları içerir Projenin desteği; Google ve OHA (Open Handset Alliance)
Android Tercih Sebepleri Belirli bir marka için değil, destekleyen tüm markalar için Ücretsiz Firma özelleştirebilir, istediği şekilde sunabilir
Android Tabanlı Cihazlar HTC Corp. (Desire, HD, Hero, Dream, Magic, Google Nexus One, Evo, Droid Eris, Tattoo, Sapphire, Flyer-Tablet) Samsung Group ( Galaxy, Moment, Galaxy Note, Galaxy Tab, vs.) Motorola Lenovo Sony Dell ….
Özellikleri Çoklu görev(multitasking) Çoklu dokunuş(multitouch) Flash desteği OpenGL API Map, yüz tanıma, yer çekimi sensörleri, GPS-lokasyon
Handset Çizimler VGA 2D grafik arşivler OpenGL ES 1.0 tabanlı 3D Grafik arşivlerine Geleneksel telefon çıkışlarına son derece kolay uyum sağlar
Depolama Bilgi depolama amaçlı SQLite kullanmaktadır
Bağlanabilirlik GSM Bluetooth EDGE 3G, 4G Wi-Fi Hotspot
Mesajlaşma SMS MMS
Web Tarayıcı Açık kaynak kodlu WebKit tabanlı tarayıcı Firefox Opera
Medya Destekleri MPEG-4 MP4 H.264 MP3 AAC AMR JPEG PNG GIF
Ek Donanımlar Anti-titremeli video/foto kameraları Touchscreenler GPS Pusulalar Accelerometrelerde
Sürümleri 1.1 (?) - 9 Şubat 2009 1.5 (Cupcake) – 30 Nisan 2009 1.6 (Donut) – 15 Eylül 2009 2.0-2.1 (Eclair) – 26 Ekim 2009 2.2 (Froyo) – 20 Mayıs 2010 2.3 (Gingerbread) – 6 Aralık 2010 3.0/3.1/3.2 (Honeycomb) – Şubat 2011 4.0 (Ice cream sandwich) – 2011 4.çeyrek (tablet-phone)
Android 2.3 GingerBread Linux çekirdeği 2.6.35 UI geliştirildi SIP(Session Initiation Protocol) ve VoIP desteklenmeye başlandı Yeni ses efektleri eklendi Yakın alan haberleşmesi(Near field communication) desteklenmeye başlandı Güç yönetimi ve uygulama kontrolü geliştirildi
Android 3.0 HoneyComb Linux çekirdeği 2.6.36 3 boyutlu masaüstü özelliği Multi-tasking yapısı geliştirildi Multi-core işlemciler desteklenmeye başlandı Google Talk'da görüntülü görüşme desteklenmeye başlandı
Android 1.1
Android 1.5
Android 1.6
Android 2.0
Android 2.2
Android 2.3
Uygulamalar 200.000+ uygulama Android Market İndiroid SlideMe AndAppStore AndroidGear AppsLib insydemarket
Geliştirme Ortamı Windows Xp(32Bit), Vista (32-64Bit), Windows 7 (32-64Bit) Linux Mac OS X (intel)
Geliştirme Araçları Android SDK Eclipse, Netbeans vb. Emulator ya da Android yüklü cihaz (test için) Java, JS (PhoneGap vb.), .NET (Mono Project), PHP (?)
Mimarisi
Uygulama Çatısı Content Providers Resource Manager Diğer uygulamalardan veriye erişim ve paylaşım sağlar Resource Manager Non-code kaynaklara erişim sağlar Notification Manager Tüm uygulamalar tarafından status bar'da uyarı gösterilmesini sağlar Activity Manager Uygulama yaşam döngüsünü yönetir
Proje Yapısı src: paketler ve Java kodları gen: R.java bulunur. Resource erişimi için kullanılır. assets: 3.parti libler res: layout: ekran tasarımları drawable: imajlar values: string degerler manifest: uygulama ayarları
Android Manifest
Android Manifest package tagi; projemizin paket adını gösterir uses-sdk android:minSdkVersion; en az hangi Android versiyonunda çalışması gerektiğini gösterir application android:icon tagi; uygulamamıza vereceğimiz ikon, android:label ise uygulama adı olacaktır action android:name tagi; aktif olan sınıfı belirtir
Activity Nedir? Kullanıcı ile iletişim kurar Her ekran(sayfa) için Activity olmalı Layout'lar Activity'lerde kullanılırlar Başka Activity çağırabilir Veri gönderip, alabilirler Form, buton, textbox vs(arayüz elemanları) ekranda görüntülenmesidir I/O için kullanılır
Activity Yaşam Döngüsü
Activity
Intent Veri alış-verişini sağlar Activityler arası geçişi ve servislere erişimi sağlar Açık intentler Alıcı bellidir, genelde Java sınıflarıdır. Örnek; bir aktiviteden diğerine geçiş Dolaylı intentler Android'de yüklü olan uygulamaları çağırmada yardımcı olur. Örnek; uygulama içinden bir numara aranacak veya mesaj atılacaksa ilgili activity intent aracılığıyla çağırılır
Services Görsel arayüz bulundurmaz Kullanıcı ile doğrudan değil dolaylı olarak etkileşim halindedir Birden fazla olabilir, Servisler birbirinden bağımsızdır
Broadcast Receivers Yayın alıcısı bileşeni Görsel arayüz bulundurur Birden fazla olabilir, birbirinden bağımsızdır
Content Providers Bilgi, Veri, İçerik Sağlayıcı bileşeni Görsel arayüz sunmaz Kullanıcı ile dolaylı olarak etkileşim halindedir Birden fazla olabilir, birbirinden bağımsızdır
Güvenlik ve İzinler AndroidManifest.xml içinde tanımlanır Örnek: <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.INTERNET" />
Sorular?
Teşekkürler! volkantokmak.com