100
Muharrem Taç Muharrem Taç M2 Bilişim M2 Bilişim Gelecekonline Gelecekonline

Muharrem Taç M2 Bilişim Gelecekonline

  • Upload
    kateb

  • View
    118

  • Download
    4

Embed Size (px)

DESCRIPTION

Muharrem Taç M2 Bilişim Gelecekonline. Android Nedir. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Muharrem Taç M2 Bilişim Gelecekonline

Muharrem TaçMuharrem TaçM2 BilişimM2 Bilişim

GelecekonlineGelecekonline

Page 2: Muharrem Taç M2 Bilişim Gelecekonline

Android NedirAndroid Nedir

Page 3: Muharrem Taç M2 Bilişim Gelecekonline

Android Nedir ?Android Nedir ?

Google’ın 5 Kasım 2007’de 34 şirket ile birlik olarak Google’ın 5 Kasım 2007’de 34 şirket ile birlik olarak çalışmalarına başladığı mobil işletim sistemi projesidir. Şu çalışmalarına başladığı mobil işletim sistemi projesidir. Şu an 65 şirket bu birliktedir.an 65 şirket bu birliktedir.

Bu birliğin adı Bu birliğin adı Open Handset AllianceOpen Handset Alliance’dır ve web sitesi : ’dır ve web sitesi : http://www.openhandsetalliance.com http://www.openhandsetalliance.com

Android sadece bir işletim sistemi değildir.Android sadece bir işletim sistemi değildir.

Yazılım geliştirme platformu, SDK’sı, Eclipse Plugini, Yazılım geliştirme platformu, SDK’sı, Eclipse Plugini, API’si ve Android Market ile birlikte dev bir ekosistemdir.API’si ve Android Market ile birlikte dev bir ekosistemdir.

Page 4: Muharrem Taç M2 Bilişim Gelecekonline

Open Handset AllianceOpen Handset Alliance Android Nedir ?Android Nedir ?

Page 5: Muharrem Taç M2 Bilişim Gelecekonline

Android Nedir ?Android Nedir ?

Pek çok cihaz, donanım,Pek çok cihaz, donanım,Pek çok sensör,Pek çok sensör,Pek çok farklılaşmış sürüm,Pek çok farklılaşmış sürüm,Pek çok AR-GE projesi,Pek çok AR-GE projesi,Pek çok uygulama mağazası,Pek çok uygulama mağazası,Pek çok geliştirme ortamı, dili ve teknolojisi,Pek çok geliştirme ortamı, dili ve teknolojisi,İçeren bir EKOSİSTEMDİR.İçeren bir EKOSİSTEMDİR.

Page 6: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in ÖzellikleriLinux kerneliLinux kerneliUygulama çatısıUygulama çatısıDalvik Virtual Machine (Java)Dalvik Virtual Machine (Java)Webkit tabanlı dahili internet tarayıcısıWebkit tabanlı dahili internet tarayıcısıSQL Lite veritabanıSQL Lite veritabanıVideo-Ses desteği Video-Ses desteği (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)GSM telefon desteğiGSM telefon desteği3B ve 2B gelişmiş grafikler, LG Real 3D ile 3 boyutlu 3B ve 2B gelişmiş grafikler, LG Real 3D ile 3 boyutlu cihazlar,cihazlar,Bluetooth, Bluetooth, NFC, NFC, EDGE, 3G, EDGE, 3G, veve WiFi WiFi (donanıma bağımlı)Ön ve arka kÖn ve arka kamera, GPS, amera, GPS, pusula ve akselerometre pusula ve akselerometre (ivmeölçer) (ivmeölçer) (donanıma bağımlı)Zengin uygulama geliştirme ortamı Zengin uygulama geliştirme ortamı (emülatör, Eclipse plugin)Android MarketAndroid MarketMultitaskingMultitaskingWidgetWidgetNotificationNotification

Page 7: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in ÖzellikleriHandset layoutsHandset layouts

The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts.OpenGL ES 2.0 specifications, and traditional smartphone layouts.

StorageStorageSQLite, a lightweight relational database, is used for data storage purposes.SQLite, a lightweight relational database, is used for data storage purposes.

ConnectivityConnectivityAndroid supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.

MessagingMessagingSMS and MMS are available forms of messaging, including threaded text messaging and SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud To Device Messaging (C2DM) is also a part of Android Push Messaging now Android Cloud To Device Messaging (C2DM) is also a part of Android Push Messaging service.service.

Multiple language supportMultiple language supportAndroid supports multiple languages.[41]Android supports multiple languages.[41]

Web browserWeb browserThe web browser available in Android is based on the open-source WebKit layout engine, The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores 100/100 on the Acid3 coupled with Chrome's V8 JavaScript engine. The browser scores 100/100 on the Acid3 test on Android 4.0, however does have some rendering issues.test on Android 4.0, however does have some rendering issues.

Page 8: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in ÖzellikleriJava supportJava support

While most Android applications are written in Java, there is no Java Virtual Machine in the While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on Dalvik, a specialized virtual machine designed specifically for executables and run on Dalvik, a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party applications.J2ME support can be provided via third-party applications.

Media supportMedia supportAndroid supports the following audio/video/still media formats: WebM, H.263, H.264 (in Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP.[78]MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP.[78]

Streaming media supportStreaming media supportRTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin.[79] Apple HTTP Live Streaming is supported by RealPlayer for Mobile,[80] Flash plugin.[79] Apple HTTP Live Streaming is supported by RealPlayer for Mobile,[80] and by the operating system in Android 3.0 (Honeycomb).[45]and by the operating system in Android 3.0 (Honeycomb).[45]

Additional hardware supportAdditional hardware supportAndroid can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, barometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, barometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.conversion) and accelerated 3D graphics.

Page 9: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in ÖzellikleriMulti-touchMulti-touch

Android has native support for multi-touch which was initially made available in handsets Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time).[81] Google has avoid infringing Apple's patents on touch-screen technology at the time).[81] Google has since released an update for the Nexus One and the Motorola Droid which enables multi-since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively.[82]touch natively.[82]

BluetoothBluetoothSupports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available in Android 3.1+, and in earlier versions through manufacturer support is available in Android 3.1+, and in earlier versions through manufacturer customizations and third-party applications.[83]customizations and third-party applications.[83]

Video callingVideo callingAndroid does not support native video calling, but some handsets have a customized Android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UMTS network (like the version of the operating system that supports it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later. Gingerbread allows Nexus S to place Internet calls with a SIP account. This 2.3.4 and later. Gingerbread allows Nexus S to place Internet calls with a SIP account. This allows for enhanced VoIP dialing to other SIP accounts and even phone numbers. Skype allows for enhanced VoIP dialing to other SIP accounts and even phone numbers. Skype 2.1 offers video calling in Android 2.3, including front camera support.2.1 offers video calling in Android 2.3, including front camera support.

Page 10: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in ÖzellikleriMultitaskingMultitasking

Multitasking of applications is available.[84]Multitasking of applications is available.[84]Voice based featuresVoice based featuresGoogle search through voice has been available since initial release.[85] Voice actions for Google search through voice has been available since initial release.[85] Voice actions for calling, texting, navigation, etc. are supported on Android 2.2 onwards.[86]calling, texting, navigation, etc. are supported on Android 2.2 onwards.[86]

TetheringTetheringAndroid supports tethering, which allows a phone to be used as a wireless/wired Wi-Fi Android supports tethering, which allows a phone to be used as a wireless/wired Wi-Fi hotspot. Before Android 2.2 this was supported by third-party applications or manufacturer hotspot. Before Android 2.2 this was supported by third-party applications or manufacturer customizations.[87]customizations.[87]

Screen captureScreen captureAndroid natively supports the ability to capture a screenshot by method of pressing both Android natively supports the ability to capture a screenshot by method of pressing both the power and volume-down buttons at the same time on an Android device. This native the power and volume-down buttons at the same time on an Android device. This native support was first included within the Android 4.0 (Ice Cream Sandwich) update, which is support was first included within the Android 4.0 (Ice Cream Sandwich) update, which is first seen on the Galaxy Nexus smartphone.[88] Previously, Android did not feature native first seen on the Galaxy Nexus smartphone.[88] Previously, Android did not feature native support for screen capturing which would have likely been due to security concerns. support for screen capturing which would have likely been due to security concerns. Furthermore, prior manufacturer and third-party customizations as well as using a PC Furthermore, prior manufacturer and third-party customizations as well as using a PC connection (DDMS developer's tool) were the only known methods of capturing a connection (DDMS developer's tool) were the only known methods of capturing a screenshot on Android.screenshot on Android.

Page 11: Muharrem Taç M2 Bilişim Gelecekonline

Android’in ÖzellikleriAndroid’in Özellikleri

System C library - System C library - a BSD-derived implementation of the standard C a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devicessystem library (libc), tuned for embedded Linux-based devicesMedia Libraries - Media Libraries - based on PacketVideo's OpenCORE; the libraries based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNGAMR, JPG, and PNGSurface Manager - Surface Manager - manages access to the display subsystem and manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple seamlessly composites 2D and 3D graphic layers from multiple applicationsapplicationsLibWebCore -LibWebCore - a modern web browser engine which powers both the a modern web browser engine which powers both the Android browser and an embeddable web viewAndroid browser and an embeddable web viewSGL - SGL - the underlying 2D graphics enginethe underlying 2D graphics engine3D libraries - 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizerincluded, highly optimized 3D software rasterizerFreeType - FreeType - bitmap and vector font renderingbitmap and vector font renderingSQLite - SQLite - a powerful and lightweight relational database engine available a powerful and lightweight relational database engine available to all applicationsto all applications

Page 12: Muharrem Taç M2 Bilişim Gelecekonline

Android MimarisiAndroid Mimarisi

Page 13: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Page 14: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlarVersiyon 1 ve 1.1 ilk sürümler (Astro ve Bender ile Versiyon 1 ve 1.1 ilk sürümler (Astro ve Bender ile başlıyor)başlıyor)

Versiyon 1.5 CupcakeVersiyon 1.5 Cupcake

Versiyon 1.6 DonutVersiyon 1.6 Donut

Versiyon 2.X Versiyon 2.X (2.0, 2.1)(2.0, 2.1) Eclair Eclair

Versiyon 2.2 FroyoVersiyon 2.2 Froyo

Versiyon 2.3.X Versiyon 2.3.X (2.3.1 - 2.3.7)(2.3.1 - 2.3.7) Gingerbread Gingerbread

Versiyon 3.X Versiyon 3.X (3.1,3,2)(3.1,3,2) Honeycomb Honeycomb

Versiyon 4.X Versiyon 4.X (4.0.1 - 4.0.3)(4.0.1 - 4.0.3) Ice Cream Sandwich Ice Cream Sandwich

Page 15: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

http://developer.android.com/resources/dashboard/platform-versions.html

Page 16: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Android 1.1 BenderAndroid 1.1 Bender Android 1.5 CupcakeAndroid 1.5 Cupcake

Page 17: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Android 1.6 DonutAndroid 1.6 DonutAndroid 2.0 ve 2.1Android 2.0 ve 2.1

EclairEclair

Page 18: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Android 2.2 FroyoAndroid 2.2 FroyoAndroid 2.3 GingerbreadAndroid 2.3 Gingerbread

Page 19: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Android 3.0 HoneycombAndroid 3.0 Honeycomb

Page 20: Muharrem Taç M2 Bilişim Gelecekonline

VersiyonlarVersiyonlar

Android 4.0 Ice Cream SandwichAndroid 4.0 Ice Cream Sandwich

Page 21: Muharrem Taç M2 Bilişim Gelecekonline

Enteresan UygulamalarEnteresan Uygulamalar

Page 22: Muharrem Taç M2 Bilişim Gelecekonline

Enteresan UygulamalarEnteresan Uygulamalar

Android’in ve donanımın desteklediği özelliklere göre Android’in ve donanımın desteklediği özelliklere göre pusula, akseloremetre, GPS gibi özellikleri kullanan pusula, akseloremetre, GPS gibi özellikleri kullanan uygulamalar yaygınlaşmaktadır.uygulamalar yaygınlaşmaktadır.

Özellikle “Layar” Augmented Reality konseptiyle bakılan Özellikle “Layar” Augmented Reality konseptiyle bakılan yer hakkında görsel bilgiler vermektedir.yer hakkında görsel bilgiler vermektedir.

Bunun yanında pusulalar, Panoramio gibi konum bilgisine Bunun yanında pusulalar, Panoramio gibi konum bilgisine dayalı fotoğrafçılık uygulamaları, Google Maps API dayalı fotoğrafçılık uygulamaları, Google Maps API kullanan uygulamalar, Jedi ışın kılıcı, Zippo çakmak, her kullanan uygulamalar, Jedi ışın kılıcı, Zippo çakmak, her türden harekete duyarlı oyunlar vs. Android üzerinde türden harekete duyarlı oyunlar vs. Android üzerinde çalışmakta ve geliştirilmektedir.çalışmakta ve geliştirilmektedir.

Sosyal ağ uygulamaları (Google Plus, Twitter, Facebook, Sosyal ağ uygulamaları (Google Plus, Twitter, Facebook, Foursquare) Foursquare)

Page 23: Muharrem Taç M2 Bilişim Gelecekonline

Enteresan UygulamalarEnteresan Uygulamalar

LayarLayar

Page 24: Muharrem Taç M2 Bilişim Gelecekonline

Android Uygulama MağazalarıAndroid Uygulama Mağazaları

Page 25: Muharrem Taç M2 Bilişim Gelecekonline

Android Uygulama MağazalarıAndroid Uygulama MağazalarıAndroid MarketAndroid Market Android PazarıAndroid Pazarı

Page 26: Muharrem Taç M2 Bilişim Gelecekonline

Turkcell UygulamalarTurkcell UygulamalarSamsung S-AndoidSamsung S-Andoid

Android Uygulama MağazalarıAndroid Uygulama Mağazaları

Page 27: Muharrem Taç M2 Bilişim Gelecekonline

Android cihazlarıAndroid cihazları

Page 28: Muharrem Taç M2 Bilişim Gelecekonline

Google telefonlarıGoogle telefonları

Page 29: Muharrem Taç M2 Bilişim Gelecekonline

Android ArayüzleriAndroid Arayüzleri

HTC SenseHTC Sense Samsung TouchwizSamsung Touchwiz Sony TimescapeSony Timescape

Page 30: Muharrem Taç M2 Bilişim Gelecekonline

3D API’ler3D API’ler

HTC 3DHTC 3D LG 3DLG 3D

Page 31: Muharrem Taç M2 Bilişim Gelecekonline

Android Yazılım GeliştirmeAndroid Yazılım Geliştirme

Page 32: Muharrem Taç M2 Bilişim Gelecekonline

Android Yazılım GeliştirmeAndroid Yazılım GeliştirmeJava ile Yazılım Geliştirme: Java ile Yazılım Geliştirme: Google tarafından önerilen altyapıdır, Android’in içerisindeki uygulamaların Google tarafından önerilen altyapıdır, Android’in içerisindeki uygulamaların pekçoğu Java ile yazılmıştır, Eclipse, Netbeans, IntelliJ Idea IDE’leri kullanılabilir,pekçoğu Java ile yazılmıştır, Eclipse, Netbeans, IntelliJ Idea IDE’leri kullanılabilir,

HTML5 ile Yazılım Geliştirme:HTML5 ile Yazılım Geliştirme:Phonegap gibi sistemlerle uygulama içersinde HTML5 çalıştırmak mümkündür.Phonegap gibi sistemlerle uygulama içersinde HTML5 çalıştırmak mümkündür.

Adobe Flex ile Yazılım Geliştirme:Adobe Flex ile Yazılım Geliştirme:Adobe’nin Flash Builder aracı ile ActionScript kullanarak yazılım geliştirilebilir.Adobe’nin Flash Builder aracı ile ActionScript kullanarak yazılım geliştirilebilir.

Mono for Android ile Yazılım Geliştirme:Mono for Android ile Yazılım Geliştirme:.NET altyapısı ile C# dilinde yazılım geliştirilebilir..NET altyapısı ile C# dilinde yazılım geliştirilebilir.

Page 33: Muharrem Taç M2 Bilişim Gelecekonline

Android Yazılımlarında BileşenlerAndroid Yazılımlarında Bileşenler

Aktiviteler(Activities):Aktiviteler(Activities): Aktiviteler çalıştırılabilir kodun belirli kısımlarını oluşturan ve zamanın belirli Aktiviteler çalıştırılabilir kodun belirli kısımlarını oluşturan ve zamanın belirli bölgelerinde kullanıcı ile ve sistemle etkileşime geçerek gerekli veriyi sağlayan, bölgelerinde kullanıcı ile ve sistemle etkileşime geçerek gerekli veriyi sağlayan, sonunda da kullanılmadıkları zaman sistem tarafından sonlandırılan parçalardır.sonunda da kullanılmadıkları zaman sistem tarafından sonlandırılan parçalardır.

Servisler (Services): Servisler (Services): Servisler bilgisayarlardan da tanıdık olduğumuz arkaplanda çalışan ve Servisler bilgisayarlardan da tanıdık olduğumuz arkaplanda çalışan ve uygulamanın bir parçası olan kısımlardır. Aygıt kapanana kadar arkaplanda hazır uygulamanın bir parçası olan kısımlardır. Aygıt kapanana kadar arkaplanda hazır olarak çalışırlar.Genellikle kullanıcı arayüzü olarak sunulmazlar. Uygulamaların olarak çalışırlar.Genellikle kullanıcı arayüzü olarak sunulmazlar. Uygulamaların ihtiyacı olan verilerin ve hizmetlerin sağlanmasında kullanılırlar.ihtiyacı olan verilerin ve hizmetlerin sağlanmasında kullanılırlar.

Kaynak : http://androidgelistir.blogspot.com/2010/07/android-ile-uygulamasnn-bilesenleri-ve.html

Page 34: Muharrem Taç M2 Bilişim Gelecekonline

Android Yazılımlarında BileşenlerAndroid Yazılımlarında Bileşenler

Broacast and Intent Receivers:Broacast and Intent Receivers:Broadcast bilinen broadcast uygulamaları gibi aygıtın temel mesajlarını algılayan Broadcast bilinen broadcast uygulamaları gibi aygıtın temel mesajlarını algılayan kısımlardır. Düşük pil uyarısı yada zaman dilimi değiştirilmesi gibi olaylarda aygıt, kısımlardır. Düşük pil uyarısı yada zaman dilimi değiştirilmesi gibi olaylarda aygıt, uygulamaların tümünü bu durumlardan haberdar eder. Intent receivers ise belirli uygulamaların tümünü bu durumlardan haberdar eder. Intent receivers ise belirli bir amaca göre bazı varolan uygulamalardan ve servislerden bilgi toplanmasıdır. bir amaca göre bazı varolan uygulamalardan ve servislerden bilgi toplanmasıdır. Varolan bir uygulamayı kullanarak uygulama geliştirildiğinde bu tür olay Varolan bir uygulamayı kullanarak uygulama geliştirildiğinde bu tür olay yakalayıcılar kullanılır.yakalayıcılar kullanılır.

İçerik Sağlayıcılar(Content Provider): İçerik Sağlayıcılar(Content Provider): Aygıt üzerindeki uygulamalar dosya sisteminde yada dosya sistemi üzerindeki Aygıt üzerindeki uygulamalar dosya sisteminde yada dosya sistemi üzerindeki SQLite veritabanı üzerinde uygulamaya ait verileri saklarlar. Diğer uygulamaların SQLite veritabanı üzerinde uygulamaya ait verileri saklarlar. Diğer uygulamaların da belirli veri tiplerine uygun olarak bu verileri kullanabilmesi Content Provider ile da belirli veri tiplerine uygun olarak bu verileri kullanabilmesi Content Provider ile sağlanır. Content provider uygulamalara bu verilere erişim için bazı metodlar sağlanır. Content provider uygulamalara bu verilere erişim için bazı metodlar sunar.sunar.

Kaynak : http://androidgelistir.blogspot.com/2010/07/android-ile-uygulamasnn-bilesenleri-ve.html

Page 35: Muharrem Taç M2 Bilişim Gelecekonline

Android SDKAndroid SDK

Eclipse Android PluginEclipse Android Plugin

Page 36: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriği

Emülatörler, Emülatörler,

Dökümanlar, Dökümanlar,

Örnek kodlar, Örnek kodlar,

USB sürücüleri (usb_driver/android_winusb.inf), USB sürücüleri (usb_driver/android_winusb.inf),

Versiyonlar,Versiyonlar,

Güncelleme sihirbazı,Güncelleme sihirbazı,

Araçlar…Araçlar…

Page 37: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual DevicesVirtual Devices

Page 38: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 1.1Virtual Devices Emulator 1.1

Page 39: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 1.5Virtual Devices Emulator 1.5

Page 40: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 1.6Virtual Devices Emulator 1.6

Page 41: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 2.0Virtual Devices Emulator 2.0

Page 42: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 2.1Virtual Devices Emulator 2.1

Page 43: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 2.2Virtual Devices Emulator 2.2

Page 44: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiVirtual Devices Emulator 2.3Virtual Devices Emulator 2.3

Page 45: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiInstalled PackagesInstalled Packages

Page 46: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiAvailable PackagesAvailable Packages

Page 47: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiSettingsSettings

Page 48: Muharrem Taç M2 Bilişim Gelecekonline

Android SDK İçeriğiAndroid SDK İçeriğiAboutAbout

Page 49: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse Plugin

Page 50: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse Plugin

Eclipse ile Android üzerinde yazılım geliştirme, Eclipse ile Android üzerinde yazılım geliştirme, development, debugging , test ve deployment yapılmasına development, debugging , test ve deployment yapılmasına imkan veren plugindir.imkan veren plugindir.

Eclipse Help-> Install New Software yolu ile giderek Eclipse Help-> Install New Software yolu ile giderek aşağıdaki adres eklenir:aşağıdaki adres eklenir:

https://dl-ssl.google.com/android/eclipse/ https://dl-ssl.google.com/android/eclipse/

Page 51: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse Plugin

Page 52: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse Plugin

Eclipse Android plugin şunları sağlar :Eclipse Android plugin şunları sağlar :

Dalvik Debug Monitor Server (DDMS)Dalvik Debug Monitor Server (DDMS) perspective, perspective,Eclipse içinden Android SDK and AVD Manager bağlantısı,Eclipse içinden Android SDK and AVD Manager bağlantısı,Allocation Tracker view,Allocation Tracker view,Devices view,Devices view,Emulator control view,Emulator control view,File Explorer view,File Explorer view,Heap view,Heap view,LogCat view,LogCat view,Resource Explorer view,Resource Explorer view,Threads view ,Threads view ,New Android Project MenuNew Android Project Menu

Page 53: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse PluginDalvik Debug Monitor Server (DDMS)Dalvik Debug Monitor Server (DDMS) Perspective Perspective

Page 54: Muharrem Taç M2 Bilişim Gelecekonline

Android Eclipse PluginAndroid Eclipse Plugin

Eclipse’e Android Plugin yüklenince workspace’de SDK tanımlaması Eclipse’e Android Plugin yüklenince workspace’de SDK tanımlaması yapılmadıysa bir ekran geliyor.yapılmadıysa bir ekran geliyor.

Page 55: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android Projesi

Eclipse File -> New -> Other… Android -> Android ProjectEclipse File -> New -> Other… Android -> Android Project

Page 56: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android Projesi

Önceki versiyonlarda tek Önceki versiyonlarda tek sayfada gerçekleşen proje sayfada gerçekleşen proje oluşturma süreci sihirbaz oluşturma süreci sihirbaz halinde sayfalara bölünmüştür.halinde sayfalara bölünmüştür.

Project name : Project name : Proje adıProje adı

Page 57: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android Projesi

Build target : Build target : Android Android versiyonu, mutlaka seçiyoruz,versiyonu, mutlaka seçiyoruz,

Page 58: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android Projesi

Application Name : Application Name : Android’in Android’in uygulamayı göreceği isim.uygulamayı göreceği isim.Package name : Package name : Uygulamanın Uygulamanın kullanacağı paketlendirme, kullanacağı paketlendirme, mecburi alan.mecburi alan.Create Activity : Create Activity : Uygulama Uygulama oluşturulurken örnek activity oluşturulurken örnek activity oluşması sağlanabilir. oluşması sağlanabilir.

Page 59: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android Projesi

Projemiz yaratıldı.Projemiz yaratıldı.Klasörler şöyle :Klasörler şöyle :src,src,gen,gen,res.res.--------------------------------------------------------------------------------------------AndroidManifest.xml AndroidManifest.xml vevedefault.properties adında iki dosya default.properties adında iki dosya var.var.

Page 60: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android ProjesiProje içerisinde bir de çalışmaya hazır Activity var. Bu haliyle Proje içerisinde bir de çalışmaya hazır Activity var. Bu haliyle çalıştırabiliriz.çalıştırabiliriz.

Page 61: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android ProjesiProje üzerinde sağ tuş -> Run As -> Android Application Proje üzerinde sağ tuş -> Run As -> Android Application

Page 62: Muharrem Taç M2 Bilişim Gelecekonline

Yeni Android ProjesiYeni Android ProjesiProjemizin çalışır hali. Tabii ki “Hello World”Projemizin çalışır hali. Tabii ki “Hello World”

Page 63: Muharrem Taç M2 Bilişim Gelecekonline

Projedeki Önemli DosyalarProjedeki Önemli DosyalarAndroidManifest.xmlAndroidManifest.xmlActivity adını verdiğimiz ekranların bilgisini, uygulama bazlı global bilgileri tutar. 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.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="com.m2bilisim.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>

Page 64: Muharrem Taç M2 Bilişim Gelecekonline

Projedeki Önemli DosyalarProjedeki Önemli Dosyalarres/layout/main.xmlres/layout/main.xmlHer bir Activity için görsel tasarım öğelerini içerir.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>

Page 65: Muharrem Taç M2 Bilişim Gelecekonline

Projedeki Önemli DosyalarProjedeki Önemli Dosyalarres/values/strings.xmlres/values/strings.xmlMesaj metinlerinin tutulduğu dosyadır.Mesaj metinlerinin tutulduğu dosyadır.Activity’ler için düzenlenen xml’lerden Activity’ler için düzenlenen xml’lerden android:text=“@string/hello” şeklinde şeklinde kullanılabilir.kullanılabilir.

<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, StartUp!</string> <string name="app_name">tbd</string></resources>

res/values/ dizininde başka xml dosyaları tutarak iş bölümü yapabiliriz. res/values/ dizininde başka xml dosyaları tutarak iş bölümü yapabiliriz. res/values/color.xmlres/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>

Page 66: Muharrem Taç M2 Bilişim Gelecekonline

ActivityActivity

Bir aktivite 3 duruma sahip olabilir :Bir aktivite 3 duruma sahip olabilir :

•Aktif ya da çalışır durumda uygulama kullanıcıya odaklanmıştır Aktif ya da çalışır durumda uygulama kullanıcıya odaklanmıştır ve kullanıcıdan gelecek verilere göre sonuçlar üretilir,ve kullanıcıdan gelecek verilere göre sonuçlar üretilir,

•Bekleme modunda başka bir uygulama çalışmaya başlamış, Bekleme modunda başka bir uygulama çalışmaya başlamış, uygulama arkaplana itilmiş fakat aynı şekilde çalışmaya devam uygulama arkaplana itilmiş fakat aynı şekilde çalışmaya devam etmektedir. Uygulama bekleme modunda düşük bellek etmektedir. Uygulama bekleme modunda düşük bellek durumlarında sistem tarafından yokedilebilir,durumlarında sistem tarafından yokedilebilir,

•Durdurulmuş durumda uygulama tamamen çalışmaz durumdadır Durdurulmuş durumda uygulama tamamen çalışmaz durumdadır buna rağmen en son verilere sahiptir. Uygulamaya ayrılmış bellek buna rağmen en son verilere sahiptir. Uygulamaya ayrılmış bellek sistem tarafından gerektiğinde kullanılabilir. sistem tarafından gerektiğinde kullanılabilir.

Kaynak : http://androidgelistir.blogspot.com/2010/07/android-ile-uygulamasnn-bilesenleri-ve.html

Page 67: Muharrem Taç M2 Bilişim Gelecekonline

ActivityActivity

Aktivite bir durumdan diğer duruma geçerken aşağıdaki metodları Aktivite bir durumdan diğer duruma geçerken aşağıdaki metodları çalıştırır.çalıştırır.

void onCreate(Bundle savedInstanceState)void onCreate(Bundle savedInstanceState)void onStart()void onStart()void onRestart()void onRestart()void onResume()void onResume()void onPause()void onPause()void onStop()void onStop()void onDestroy()void onDestroy()

Kaynak : http://androidgelistir.blogspot.com/2010/07/android-ile-uygulamasnn-bilesenleri-ve.html

Page 68: Muharrem Taç M2 Bilişim Gelecekonline

ActivityActivity

Page 69: Muharrem Taç M2 Bilişim Gelecekonline

ActivityActivity

Android ekranlarının her biri bir Android ekranlarının her biri bir android.app.Activityandroid.app.Activity sınıfından extend olmak sınıfından extend olmak zorundadır.zorundadır.

Event handling için Listener interface’lerini implemente etmeleri gerekir.Event handling için Listener interface’lerini implemente etmeleri gerekir.

public class MainActivity extends Activity implements OnClickListener

Page 70: Muharrem Taç M2 Bilişim Gelecekonline

ActivityActivity

Android ekranlarının her biri için layout tanımlamak gerekir.Android ekranlarının her biri için layout tanımlamak gerekir.

Örnek : Örnek : res/layout/nextactivity.xmlres/layout/nextactivity.xml

Bir Activity’den diğer Activity’ye erişmek için, örneğin bir click eventi içerisinden: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);

}

Page 71: Muharrem Taç M2 Bilişim Gelecekonline

IntentIntent

Intent kelime anlamı olarak niyet demektir. Android’de işler Intent’ler üzerinden Intent kelime anlamı olarak niyet demektir. Android’de işler Intent’ler üzerinden yürür diyebiliriz. Bir Activity başlatmak, bir servis çalıştırmak, bir sisteme yürür diyebiliriz. Bir Activity başlatmak, bir servis çalıştırmak, bir sisteme broadcast yapmak, broadcast dinlemek gibi işlemler için önce Intent oluşturulmalı broadcast yapmak, broadcast dinlemek gibi işlemler için önce Intent oluşturulmalı daha sonra bu Intent başlatılmalıdır.daha sonra bu Intent başlatılmalıdır.  //Yeni activity acmak//Yeni activity acmakIntent activityIntent = new Intent(getApplicationContext(), Intent activityIntent = new Intent(getApplicationContext(), YeniActivity.class);YeniActivity.class);startActivity(activityIntent);startActivity(activityIntent);

//Bir numara cevirmek//Bir numara cevirmekIntent telefonIntent = new Intent(Intent.ACTION_DIAL, Intent telefonIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:05051110011"));Uri.parse("tel:05051110011"));startActivity(telefonIntent);startActivity(telefonIntent);

//Web site baslatmak//Web site baslatmakIntent webIntent = new Intent(Intent.ACTION_VIEW, Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://gomobil.in"));Uri.parse("http://gomobil.in"));startActivity(webIntent);startActivity(webIntent);

Page 72: Muharrem Taç M2 Bilişim Gelecekonline

LayoutLayout

Layout dosyaları, Activity veya görsel elemanlar (View’lar) içersinde öğelerin Layout dosyaları, Activity veya görsel elemanlar (View’lar) içersinde öğelerin nerede ve nasıl durması gerektiğini belirleyen şemalar gibi düşünülebilir. nerede ve nasıl durması gerektiğini belirleyen şemalar gibi düşünülebilir. Activity’nin ne şekilde duracağı, içerisinde ne gibi öğelerin olacağı bilgisi xml Activity’nin ne şekilde duracağı, içerisinde ne gibi öğelerin olacağı bilgisi xml dosyalarıyla belirlenir. Projedeki res dizini altında bulunan layout dizini içerisinde dosyalarıyla belirlenir. Projedeki res dizini altında bulunan layout dizini içerisinde Activity veya View’lar için xml uzantılı dosyalar düzenlenir. Bu dosyaların Activity veya View’lar için xml uzantılı dosyalar düzenlenir. Bu dosyaların içerisindeki bilgi Android tarafından okunarak Activity’ler veya View’lar üzerine içerisindeki bilgi Android tarafından okunarak Activity’ler veya View’lar üzerine yüklenir.yüklenir.

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);}

Buradaki main aslında layout dizinindeki main.xml adlı layout dosyasına karşılık gelir.

Activity’ler içerisinde çeşitli View’lar olabileceği gibi yazılımcı tarafından Activity’ler içerisinde çeşitli View’lar olabileceği gibi yazılımcı tarafından geliştirilmiş özel View’lar da Layout dosyalarında düzenlenebilir.geliştirilmiş özel View’lar da Layout dosyalarında düzenlenebilir.

Page 73: Muharrem Taç M2 Bilişim Gelecekonline

LayoutLayout

gen dizininde bulunan R.java dosyası; res dizininde bulunan layout dizinine eklenen her xml dosyasını otomatik olarak kendi içerisinde yaratmaktadır. Bu yöntem ile xml tasarım şema (layout) dosyalarına Java sınıflarından erişim mümkün olmaktadır.

Page 74: Muharrem Taç M2 Bilişim Gelecekonline

LayoutLayout

AbsoluteLayout :AbsoluteLayout : Ekran üzerinde hangi görsel elemanın nerede duracağını piksel Ekran üzerinde hangi görsel elemanın nerede duracağını piksel piksel sabitler. Örneğin bir butonun soldan 20 piksel, üstten 20 piksel piksel sabitler. Örneğin bir butonun soldan 20 piksel, üstten 20 piksel koordinatlarında durmasını istersek AbsoluteLayout kullanmalıyız.koordinatlarında durmasını istersek AbsoluteLayout kullanmalıyız.

LinearLayout : LinearLayout : Bütün eklenen görsel elemanları alt alta veya yan yana çizgisel Bütün eklenen görsel elemanları alt alta veya yan yana çizgisel olarak dizer.olarak dizer.

RelativeLayout : RelativeLayout : Görsel öğelerin ekranda üst-sol, üst-sağ, üst-orta, dikey-orta, Görsel öğelerin ekranda üst-sol, üst-sağ, üst-orta, dikey-orta, yatay -orta, taban-sol, taban-orta, taban-sol gibi ekran boyununa bağlı olmaksızın yatay -orta, taban-sol, taban-orta, taban-sol gibi ekran boyununa bağlı olmaksızın ayarlanmasını sağlar.ayarlanmasını sağlar.

TableLayout : TableLayout : Ekran öğelerini tablolar halinde göstermek için kullanılabilen Ekran öğelerini tablolar halinde göstermek için kullanılabilen layouttur. Herbir TableLayout içerisinde TableRow’lar halinde tablo satırları layouttur. Herbir TableLayout içerisinde TableRow’lar halinde tablo satırları oluşturulabilir.oluşturulabilir.

FrameLayout : FrameLayout : En basit türde layout sistemdir. İçerisine eklenen görsel öğeleri En basit türde layout sistemdir. İçerisine eklenen görsel öğeleri sola dayalı olarak gösterir ve eğer birden fazla öğe eklerseniz bunları üst üste sola dayalı olarak gösterir ve eğer birden fazla öğe eklerseniz bunları üst üste gösterir. Resim dosyalarının üzerine yazı eklemek için kullanılabilir. FrameLayout gösterir. Resim dosyalarının üzerine yazı eklemek için kullanılabilir. FrameLayout yapısı sekmeli ekran yapımında da kullanılmaktadır.yapısı sekmeli ekran yapımında da kullanılmaktadır.

Page 75: Muharrem Taç M2 Bilişim Gelecekonline

ViewView

Activity’lerde kullanılan görsel yapılara View denilmektedir. Activity’lerde kullanılan görsel yapılara View denilmektedir.

View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler. View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler.

ListView : Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi yapılarını doğrudan ekrana basabilmektedir.yapılarını doğrudan ekrana basabilmektedir.

TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer.pekçok programlama dilinde Label olarak geçer.TextView’lara metin girişi birkaç yöntemle yapılabilir:TextView’lara metin girişi birkaç yöntemle yapılabilir:

WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır.View’dır.

ScrollView : Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.

Page 76: Muharrem Taç M2 Bilişim Gelecekonline

ViewView

Activity’lerde kullanılan görsel yapılara View denilmektedir. Activity’lerde kullanılan görsel yapılara View denilmektedir.

View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler. View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler.

ListView : Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi yapılarını doğrudan ekrana basabilmektedir.yapılarını doğrudan ekrana basabilmektedir.

TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer.pekçok programlama dilinde Label olarak geçer.TextView’lara metin girişi birkaç yöntemle yapılabilir:TextView’lara metin girişi birkaç yöntemle yapılabilir:

WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır.View’dır.

ScrollView : Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.

Page 77: Muharrem Taç M2 Bilişim Gelecekonline

ViewView

Activity’lerde kullanılan görsel yapılara View denilmektedir. Activity’lerde kullanılan görsel yapılara View denilmektedir.

View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler. View’lar ListView, TextView, WebView, ScrollView gibi çeşitli şekillerde olabilirler.

ListView : Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi Alt alta dizilecek görsel öğeleri göstermede kullanılır. Java’nın dizi yapılarını doğrudan ekrana basabilmektedir.yapılarını doğrudan ekrana basabilmektedir.

TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer.pekçok programlama dilinde Label olarak geçer.TextView’lara metin girişi birkaç yöntemle yapılabilir:TextView’lara metin girişi birkaç yöntemle yapılabilir:

WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır.View’dır.

ScrollView : Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek Uzun içeriklerin kaydırma çubuğu ile aşağıya doğru inilerek görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin görüntülenmesini sağlayan View’dir. Sözgelimi içerisinde çok sayıda bilginin bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana bulunduğu bir ListView ScrollView içerisinde gösterilebilir. Böylece ekrana sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.sığmayan listeler kullanıcı tarafından aşağıya doğru kaydırılarak görüntülenebilir.

Page 78: Muharrem Taç M2 Bilişim Gelecekonline

ViewViewimport android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class Main extends Activity {

private ListView listView; private String yazarlar[]={"Erol Dizdar","Egemen Mede","Selçuk Yavuz"};

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.yazarlarView); listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , yazarlar)); }

}

Page 79: Muharrem Taç M2 Bilişim Gelecekonline

ViewView

WebView

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webviewornek);

WebView webView = (WebView) findViewById(R.id.webview); webView.loadUrl("http://www.gelecekonline.com/mobile");

}

Aşağıdaki şekilde internet erişim izni alınmalıdır:

<uses-permission android:name="android.permission.INTERNET"/>

Page 80: Muharrem Taç M2 Bilişim Gelecekonline

View (Form elemanları)View (Form elemanları)

Kullanıcıdan veri almak için kullanılan yapılar da birer View’dır.Kullanıcıdan veri almak için kullanılan yapılar da birer View’dır.Mesela EditText, Button, Radio Button, DatePicker, Spinner, gibi çok sayıda form Mesela EditText, Button, Radio Button, DatePicker, Spinner, gibi çok sayıda form elemanı vardır ve bunlar da aslında View sınıfından türemiştir.elemanı vardır ve bunlar da aslında View sınıfından türemiştir. View’lar çeşitli event’ları listen edebilirler (dinleyebilirler) vardır. View’lar çeşitli event’ları listen edebilirler (dinleyebilirler) vardır.

Örneğin Button için Örneğin Button için OnClickListenerOnClickListener event’ı vardır. event’ı vardır.

ListView’ın ListView’ın OnItemClickListenerOnItemClickListener event’ı bulunmaktadır. event’ı bulunmaktadır.

Bu listener’ları kullanabilmek için Bu listener’ları kullanabilmek için OnClickListenerOnClickListener Interface’inden dinamik sınıf Interface’inden dinamik sınıf yaratmak gereklidir. Örnek:yaratmak gereklidir. Örnek:

Button ornekButton = (Button)findViewById(R.id.ornekButton); ornekButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {TextView textView = (TextView)findViewById(R.id.ornekText);textView.setText("Butona tıklandı");

}});

Page 81: Muharrem Taç M2 Bilişim Gelecekonline

View (Form elemanları)View (Form elemanları)

ListView için OnItemClickListener Interface’i kullanılabilir.ListView için OnItemClickListener Interface’i kullanılabilir.

listView.setOnItemClickListener(this);

public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();}

Page 82: Muharrem Taç M2 Bilişim Gelecekonline

DialoglarDialoglar

Android’de çok sayıda iletişim kutusu seçeneği vardır.Android’de çok sayıda iletişim kutusu seçeneği vardır.

Dialog : Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout Dialog : Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout yüklenebilir.yüklenebilir.

AlertDialog : Uyarı mesajıdır. Tamam – iptal gibi görünümleri olabilir.AlertDialog : Uyarı mesajıdır. Tamam – iptal gibi görünümleri olabilir.

ProgressDialog : İşlem yapıldığında kullanılabilen mesaj kutusudur.ProgressDialog : İşlem yapıldığında kullanılabilen mesaj kutusudur.

DatePickerDialog : Tarih seçim mesajıDatePickerDialog : Tarih seçim mesajı

TimePickerDialog : Zaman seçim mesaj kutusuTimePickerDialog : Zaman seçim mesaj kutusu

Custom Dialog : Özelleştirilmiş bir mesaj kutusudur. İçerisinde başka View’lar Custom Dialog : Özelleştirilmiş bir mesaj kutusudur. İçerisinde başka View’lar olabilir.olabilir.

Page 83: Muharrem Taç M2 Bilişim Gelecekonline

DialoglarDialoglar

Dialog :Dialog : Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout yüklenebilir.yüklenebilir.

final Dialog dialog = new Dialog(DialogTestActivity.this);dialog.setTitle("Basit dialog");dialog.show();

AlertDialog :AlertDialog : Evet/hayır şeklinde mesaj kutusu çıkarır. Evet/hayır şeklinde mesaj kutusu çıkarır. AlertDialog.Builder builder = new AlertDialog.Builder(DialogTestActivity.this); builder.setMessage("Uygulamadan çıkılsın mı?"). setCancelable(false).setPositiveButton("Evet",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { finish();}}).setNegativeButton("Hayır", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel();}});AlertDialog alert= builder.create();alert.show();

Page 84: Muharrem Taç M2 Bilişim Gelecekonline

DialoglarDialoglar

AlertDialog :AlertDialog : Liste şeklinde mesaj kutusu çıkarır. Liste şeklinde mesaj kutusu çıkarır.

final CharSequence[] items = {"Kirmızı", "Yeşil", "Mavi"};

AlertDialog.Builder builder = new AlertDialog.Builder(DialogTestActivity.this);builder.setTitle("Pick a color");builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); }});AlertDialog alert = builder.create();alert.show();

Page 85: Muharrem Taç M2 Bilişim Gelecekonline

DialoglarDialoglar

AlertDialog :AlertDialog : Seçim listesi şeklinde mesaj kutusu çıkarır. Seçim listesi şeklinde mesaj kutusu çıkarır.

final CharSequence[] items = {"Kirmızı", "Yeşil", "Mavi"};

AlertDialog.Builder builder = new AlertDialog.Builder(DialogTestActivity.this);builder.setTitle("Pick a color");builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); }});AlertDialog alert = builder.create();alert.show();

Page 86: Muharrem Taç M2 Bilişim Gelecekonline

MenuMenu

Activity içerisinde Activity içerisinde onPrepareOptionsMenu() onPrepareOptionsMenu() metoduyla menu oluşturabiliyoruz.metoduyla menu oluşturabiliyoruz.

public boolean onPrepareOptionsMenu(Menu menu) {public boolean onPrepareOptionsMenu(Menu menu) {menu.add(0, 0, 1, R.string.BaseMenu);menu.add(0, 0, 1, R.string.BaseMenu);menu.add(0, 1, 2, R.string.About);menu.add(0, 1, 2, R.string.About);return super.onPrepareOptionsMenu(menu);return super.onPrepareOptionsMenu(menu);

}}

Seçilen menu elemanını Seçilen menu elemanını onOptionsItemSelectedonOptionsItemSelected((MenuItem itemMenuItem item)) metoduyla metoduyla algılayabiliriz. Örnek : algılayabiliriz. Örnek : public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case 0:finish();case 1:final CharSequence[] items = {"Kirmızı", "Yeşil", "Mavi"};

AlertDialog.Builder builder = new AlertDialog.Builder(DialogTestActivity.this);builder.setTitle("Pick a color");builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); }});AlertDialog alert = builder.create();alert.show();}return false; }

Page 87: Muharrem Taç M2 Bilişim Gelecekonline

ThemeTheme

Android’in kendine ait temaları bulunmaktadır. Android’in kendine ait temaları bulunmaktadır. Default tema siyah zemin üzerine beyaz yazılar şeklindedir. Ama bu temanın Default tema siyah zemin üzerine beyaz yazılar şeklindedir. Ama bu temanın alternatifleri vardır. alternatifleri vardır. Bir activity’nin temasını değiştirmek için AndroidManifest.xml’de : Bir activity’nin temasını değiştirmek için AndroidManifest.xml’de :

Beyaz zemin üzerine siyah yazılar için :android:theme="@style/android:Theme.Light" tanımlaması yapabiliriz. tanımlaması yapabiliriz.

Şeffaf arkaplan için : Şeffaf arkaplan için : android:theme="@style/android:Theme.Translucent“

Ekrana diyalog kutusu şeklinde Activity basmak için :Ekrana diyalog kutusu şeklinde Activity basmak için :

android:theme="@style/android:Theme.Dialog"

Page 88: Muharrem Taç M2 Bilişim Gelecekonline

Theme – Custom ThemeTheme – Custom Theme

Programcı isterse kendine ait temalar da oluşturabilir.Programcı isterse kendine ait temalar da oluşturabilir.Bunu yapabilmek için Bunu yapabilmek için /res/values/res/values içerisinde içerisinde styles.xmlstyles.xml adında bir dosya oluşturup adında bir dosya oluşturup tanımlamalarını bu dosyada yapar.tanımlamalarını bu dosyada yapar.

<resources><resources><style name="Theme.<style name="Theme.NtvNtv" parent="android:Theme.Light">" parent="android:Theme.Light"><item name="android:windowBackground">@drawable/bg</item><item name="android:windowBackground">@drawable/bg</item></style> </style> </resources></resources>

Android themes.xml : http://goo.gl/P8hv1 Android themes.xml : http://goo.gl/P8hv1 Android styles.xml : http://goo.gl/d46Zf Android styles.xml : http://goo.gl/d46Zf

Page 89: Muharrem Taç M2 Bilişim Gelecekonline

ThreadThreadThread yönetimi iki şekilde yapılıyor:Thread yönetimi iki şekilde yapılıyor:Klasik yöntem ve AsnycTask ileKlasik yöntem ve AsnycTask ile

Klasik yöntem:Klasik yöntem:

Activity’yi Runnable Interface’inden türetmek : Activity’yi Runnable Interface’inden türetmek : implements Runnable implements Runnable

Bir Thread çalıştırmak :Bir Thread çalıştırmak :

Thread thread = new Thread(Main.this); thread.start();

run() methodu yazmak : run() methodu yazmak :

public void run() {                pi_string = Pi.computePi(800).toString();                handler.sendEmptyMessage(0);        }

Handler sınıfı içerisindeki handleMessage() ile buradan dönecek mesajı yakalamak:Handler sınıfı içerisindeki handleMessage() ile buradan dönecek mesajı yakalamak:

private Handler handler = new Handler() {private Handler handler = new Handler() { @Override@Override public void handleMessage(Message msg) {public void handleMessage(Message msg) { pd.dismiss();pd.dismiss(); tv.setText(pi_string);tv.setText(pi_string); }} };};

Page 90: Muharrem Taç M2 Bilişim Gelecekonline

Thread - AscyncTaskThread - AscyncTaskAsnycTask ile asenkron işlem yapmak Google tarafından önerilen yöntemdir. AsnycTask ile asenkron işlem yapmak Google tarafından önerilen yöntemdir.

Bu yöntemde Activity içersinde InnerClass olarak Bu yöntemde Activity içersinde InnerClass olarak AsyncTask sınıfından oluşturulan bir sınıf yazılır. sınıfından oluşturulan bir sınıf yazılır. Örnek : Örnek :

private class PiHesaplaTask extends AsyncTask<String, Void, Void>

Bu sınıfın execute metodu çağırılarak asenkron işlem başlatılır. Bu sınıfın execute metodu çağırılarak asenkron işlem başlatılır. Örnek : Örnek : new PiHesaplaTask().execute();

AsyncTaskAsyncTask sınıfının içerisinde süreç ilk başladığı zaman sınıfının içerisinde süreç ilk başladığı zaman onPreExecuteonPreExecute()() metodu aktifleşir. Bu metotta metodu aktifleşir. Bu metotta işlemin yapıdığına dair bir uyarı kutusu çıkarılabilir. Asenkron işlem işlemin yapıdığına dair bir uyarı kutusu çıkarılabilir. Asenkron işlem doInBackgrounddoInBackground()() metodu içerisinde metodu içerisinde gerçekleşir. gerçekleşir. onPostExecute() metodu ile işlem bittiğinde asenkron işlem sonuçlanır ve uyarı kutusu kapatılır.metodu ile işlem bittiğinde asenkron işlem sonuçlanır ve uyarı kutusu kapatılır.

Tam sınıf örneği:Tam sınıf örneği:

private class PiHesaplaTask extends AsyncTask<String, Void, Void> {private ProgressDialog progressDialog;

protected void onPreExecute() { progressDialog = ProgressDialog.show(MainAsyncTask.this, "Hesaplanıyor..", "Pi sayısı hesaplanıyor");}

@Overrideprotected Void doInBackground(String... arg0) { pitext = Pi.computePi(800).toString(); return null;}

protected void onPostExecute(final Void unused) { progressDialog.dismiss(); textView.setText(pitext); } }

Page 91: Muharrem Taç M2 Bilişim Gelecekonline

WidgetWidgetWidget’lar uygulamaların masaüstünde çalışabilen kısımlarıdır. Wndget’ların da aynen Widget’lar uygulamaların masaüstünde çalışabilen kısımlarıdır. Wndget’ların da aynen Activity gibi Layout’ları olur.Activity gibi Layout’ları olur.

AndroidManifest.xml dosyasına receiver olarak tanıtılırlar.AndroidManifest.xml dosyasına receiver olarak tanıtılırlar.

<receiver android:name=".Widget1" android:label="Widget1">

Intent-filter olarak Intent-filter olarak android.appwidget.action.APPWIDGET_UPDATE eklenir.eklenir.

AndroidManifest.xml dosyasında metadata ilavesi yapmak gereklidir. Ve metadata dosyasına AndroidManifest.xml dosyasında metadata ilavesi yapmak gereklidir. Ve metadata dosyasına widget tanımlama xml bilgisi eklenir.widget tanımlama xml bilgisi eklenir.

<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget1" />

AndroidManifest.xml ‘de bir widget tanımlamak için gereken tüm tanımlama:AndroidManifest.xml ‘de bir widget tanımlamak için gereken tüm tanımlama:

<receiver android:name=".Widget1" android:label="Widget1"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter>

<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget1" /></receiver>

Page 92: Muharrem Taç M2 Bilişim Gelecekonline

WidgetWidgetWidget’ların hangi layout’u kullanacağı, boyutlarının ne olacağı gibi bilgiler için ayrı bir xml Widget’ların hangi layout’u kullanacağı, boyutlarının ne olacağı gibi bilgiler için ayrı bir xml dosyası oluşturulur. Örnek dosyası oluşturulur. Örnek widget1.xmlwidget1.xml

<?xml version="1.0" encoding="utf-8"?><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="50dp" android:minHeight="72dp" android:updatePeriodMillis="10000" android:initialLayout="@layout/widget_layout" android:label="Hello1" />

BuradaBurada android:initialLayout="@layout/widget_layout" ile tanımlanan satır ile tanımlanan satır widget_layoutwidget_layout.xml .xml dosyasıdır.dosyasıdır.

Widget sınıfları Widget sınıfları android.appwidget. AppWidgetProvider sınıfından türetilir ve en önemli sınıfından türetilir ve en önemli metodu metodu onUpdate() metodudur.metodudur.

Page 93: Muharrem Taç M2 Bilişim Gelecekonline

DroiddrawDroiddrawAndroid için görsel olarak GUI tasarımı yapmaya olanak tanıyan Android için görsel olarak GUI tasarımı yapmaya olanak tanıyan bir uygulamadır. bir uygulamadır. http://www.droiddraw.org/ http://www.droiddraw.org/ Site üzerinde çalışan applet ya da indirilebilen Swing uygulaması Site üzerinde çalışan applet ya da indirilebilen Swing uygulaması ile XML olarak GUI çıktısı alınabilir.ile XML olarak GUI çıktısı alınabilir.

Page 94: Muharrem Taç M2 Bilişim Gelecekonline

Motodev StudioMotodev Studio

Motorola tarafından Android geliştiricileri için çıkarılmış harika bir Motorola tarafından Android geliştiricileri için çıkarılmış harika bir IDE’dir. IDE’dir.

Çok sayıda örnek kod (snippet) içerir,Çok sayıda örnek kod (snippet) içerir,görsel programlamayı kolaylaştırmaktadır,görsel programlamayı kolaylaştırmaktadır,Mevcut Eclipse Plugin’ini geliştirmiştir,Mevcut Eclipse Plugin’ini geliştirmiştir,

Page 95: Muharrem Taç M2 Bilişim Gelecekonline

Motodev StudioMotodev Studio

Page 96: Muharrem Taç M2 Bilişim Gelecekonline

Android Market’e Uygulama GöndermeAndroid Market’e Uygulama Gönderme

Page 97: Muharrem Taç M2 Bilişim Gelecekonline

Android Market’e Uygulama GöndermeAndroid Market’e Uygulama Gönderme

Page 98: Muharrem Taç M2 Bilişim Gelecekonline

Android Market’e Uygulama GöndermeAndroid Market’e Uygulama Gönderme

Page 99: Muharrem Taç M2 Bilişim Gelecekonline

Kaynakça:Kaynakça:

http://wikipedia.orghttp://wikipedia.orghttp://www.android.com http://www.android.com http://developer.android.com http://developer.android.com

Page 100: Muharrem Taç M2 Bilişim Gelecekonline

TeşekkürlerTeşekkürler