28.06.2010 Muharrem Taç JDPT Gelecekonline Android Nedir 1 28.06.2010 Android Nedir ? Google’ın 5 Kasım 2007’de 34 şirket ile birlik olarak çalışmalarına başladığı mobil işletim sistemi projesidir. Şu an 65 şirket bu birliktedir. Bu birliğin adı Open Handset Alliance’dır Alliance’dır ve web sitesi : http://www.openhandsetalliance.com Android sadece bir işletim sistemi değildir. Yazılım geliştirme platformu, SDK’sı, Eclipse Plugini, API’si ve Android Market ile birlikte dev bir ekosistemdir. Open Handset Alliance 2 28.06.2010 Android’in Özellikleri Linux kerneli Uygulama çatısı Dalvik Virtual Machine (Java) Webkit tabanlı dahili internet tarayıcısı SQL Lite veritabanı Video--Ses desteği (MPEG4, H.264, MP3, AAC, AMR, JPG, Video PNG, GIF) GSM telefon desteği 3B ve 2B gelişmiş grafikler Bluetooth, EDGE, 3G, ve WiFi (donanıma bağımlı) Kamera amera,, GPS, pusula ve akselerometre (ivmeölçer) (donanıma bağımlı) Zengin uygulama geliştirme ortamı (emülatör, Eclipse plugin) Android Market Multitasking Android’in Özellikleri System C library - a BSDBSD-derived implementation of the standard C system library (libc (libc), ), tuned for embedded LinuxLinux-based devices Media Libraries - based on PacketVideo's OpenCORE; OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer FreeType - bitmap and vector font rendering SQLite - a powerful and lightweight relational database engine available to all applications 3 28.06.2010 Android Mimarisi Versiyonlar 4 28.06.2010 Versiyonlar Versiyon 1.1 ilk sürüm olarak söyleyebiliriz. Versiyon 1.5 Cupcake Versiyon 1.6 Donut Versiyon 2.0 – 2.1 Enclair Versiyon 2.2 Froyo Gingerbread (?) Versiyonlar 5 28.06.2010 Enteresan Uygulamalar Enteresan Uygulamalar Android’in ve donanımın desteklediği özelliklere göre pusula, akseloremetre, GPS gibi özellikleri kullanan uygulamalar yaygınlaşmaktadır. Özellikle “Layar” Augmented Reality konseptiyle bakılan yer hakkında görsel bilgiler vermektedir. Bunun yanında pusulalar, Panoramio gibi konum bilgisine dayalı fotoğrafçılık uygulamaları, Google Maps API kullanan uygulamalar, Jedi ışın kılıcı, Zippo çakmak, her türden harekete duyarlı oyunlar vs. Android üzerinde çalışmakta ve geliştirilmektedir. 6 28.06.2010 Enteresan Uygulamalar Layar Android Marketleri Android Market Slideme 7 28.06.2010 Android Marketleri AndAppStore Samsung Fun Club Market Android Araçları Kaynak : Ersin KOÇ 8 28.06.2010 Android Yazılım Geliştirme Android SDK Eclipse Android Plugin 9 28.06.2010 Android SDK Đçeriği Emülatörler,, Emülatörler Dökümanlar,, Dökümanlar Örnek kodlar, USB sürücüleri (usb (usb_ _driver/ driver/android_ android_winusb. winusb.inf), inf), Versiyonlar, Güncelleme sihirbazı, Araçlar… Android SDK Đçeriği Virtual Devices 10 28.06.2010 Android SDK Đçeriği Virtual Devices Emulator 1.1 Android SDK Đçeriği Virtual Devices Emulator 1.5 11 28.06.2010 Android SDK Đçeriği Virtual Devices Emulator 1.6 Android SDK Đçeriği Virtual Devices Emulator 2.0 12 28.06.2010 Android SDK Đçeriği Virtual Devices Emulator 2.1 Android SDK Đçeriği Virtual Devices Emulator 2.2 13 28.06.2010 Android SDK Đçeriği Installed Packages Android SDK Đçeriği Available Packages 14 28.06.2010 Android SDK Đçeriği Settings Android SDK Đçeriği About 15 28.06.2010 Android Eclipse Plugin Android Eclipse Plugin Eclipse ile Android üzerinde yazılım geliştirme, development,, debugging , test ve deployment yapılmasına development imkan veren plugindir. plugindir. Eclipse HelpHelp-> Install New Software yolu ile giderek aşağıdaki adres eklenir: https://dl--ssl.google.com/android/eclipse/ https://dl 16 28.06.2010 Android Eclipse Plugin Android Eclipse Plugin Eclipse Android plugin şunları sağlar : Dalvik Debug Monitor Server (DDMS) perspective perspective,, Eclipse içinden Android SDK and AVD Manager bağlantısı, Allocation Tracker view, view, Devices view, view, Emulator control view view,, File Explorer view, view, Heap view, view, LogCat view, view, Resource Explorer view, view, Threads view , New Android Project Menu 17 28.06.2010 Android Eclipse Plugin Dalvik Debug Monitor Server (DDMS) Perspective Android Eclipse Plugin Eclipse Plugin indirildikten sonda Android SDK’yı Eclipse’e bildirmek gerekiyor. Window -> Preferences -> Android yolundan. 18 28.06.2010 Yeni Android Projesi Eclipse File -> New -> Other Other… … Android -> Android Project Yeni Android Projesi Project name : Proje adı Build target : Android versiyonu, mutlaka seçiyoruz, Application Name : Android’in uygulamayı göreceği isim. Package name : Uygulamanın kullanacağı paketlendirme, mecburi alan. 19 28.06.2010 Yeni Android Projesi Bir sonraki ekranda istersek test projesi de yaratabiliriz. Yeni Android Projesi Projemiz ve Test projesi yaratıldı. Klasörler şöyle : src, src, gen, res. res. ---------------------------------------------AndroidManifest..xml AndroidManifest ve default..properties adında iki dosya var. default 20 28.06.2010 Yeni Android Projesi Proje içerisinde bir de çalışmaya hazır Activity var. Bu haliyle çalıştırabiliriz. Yeni Android Projesi Proje üzerinde sağ tuş -> Run As -> Android Application 21 28.06.2010 Yeni Android Projesi Projemizin çalışır hali. Tabii ki “Hello World” Projedeki Önemli Dosyalar AndroidManifest.xml Activity adını verdiğimiz ekranların bilgisini, uygulama bazlı global bilgileri tutar. Uygulamamızın isteyeceği ayrıcalıklar da buradan tanımlanır. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jtpd" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".StartUp" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"></uses-permission> </manifest> 22 28.06.2010 Projedeki Önemli Dosyalar res/layout/main.xml Her bir Activity için görsel tasarım öğelerini içerir. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> Projedeki Önemli Dosyalar res/values/strings.xml Mesaj metinlerinin tutulduğu dosyadır. Activity’ler için düzenlenen xml’lerden android:text=“@string/hello” şeklinde kullanılabilir. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, StartUp!</string> <string name="app_name">Jtpd</string> </resources> res/values/ dizininde başka xml dosyaları tutarak iş bölümü yapabiliriz. res/values/color.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#fff</color> <color name="black">#000</color> <color name="gelecekonline_red">#d11517</color> <color name="gelecekonline_gray">#323232</color> <color name="gelecekonline_light_gray">#efefef</color> </resources> 23 28.06.2010 Activity Android ekranlarının her biri bir android.app.Activity sınıfından extend olmak zorundadır. Event handling için Listener interface’lerini implemente etmeleri gerekir. public class StartUp extends Activity implements OnClickListener Activity Android ekranlarının her biri için layout tanımlamak gerekir. Örnek : res/layout/nextactivity.xml Bir Activity’den diğer Activity’ye erişmek için, örneğin bir click eventi içerisinden: public void onClick(View v) { Intent itemintent = new Intent(this, NextActivity.class); startActivity(itemintent); } 24 28.06.2010 Droiddraw Android için görsel olarak GUI tasarımı yapmaya olanak tanıyan bir uygulamadır. http://www.droiddraw.org/ Site üzerinde çalışan applet ya da indirilebilen Swing uygulaması ile XML olarak GUI çıktısı alınabilir. Android Market’e Uygulama Gönderme 25 28.06.2010 Android Market’e Uygulama Gönderme Android Market’e Uygulama Gönderme 26 28.06.2010 Kaynakça: http://wikipedia.org http://www.android http://www. android.com .com http://developer.android.com Teşekkürler 27