Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Muharrem Taç M2 Bilişim Gelecekonline.

Benzer bir sunumlar


... konulu sunumlar: "Muharrem Taç M2 Bilişim Gelecekonline."— Sunum transkripti:

1 Muharrem Taç M2 Bilişim Gelecekonline

2 Android Nedir

3 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 ve web sitesi : 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.

4 Android Nedir ? Open Handset Alliance

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

6 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, PNG, GIF) GSM telefon desteği 3B ve 2B gelişmiş grafikler, LG Real 3D ile 3 boyutlu cihazlar, Bluetooth, NFC, EDGE, 3G, ve WiFi (donanıma bağımlı) Ön ve arka kamera, GPS, pusula ve akselerometre (ivmeölçer) (donanıma bağımlı) Zengin uygulama geliştirme ortamı (emülatör, Eclipse plugin) Android Market Multitasking Widget Notification

7 Android’in Özellikleri
Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts. Storage SQLite, a lightweight relational database, is used for data storage purposes. Connectivity Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. Messaging 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 service. Multiple language support Android supports multiple languages.[41] Web browser 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 test on Android 4.0, however does have some rendering issues.

8 Android’in Özellikleri
Java support 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 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. J2ME support can be provided via third-party applications. Media support 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 MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP.[78] Streaming media support RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> 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] and by the operating system in Android 3.0 (Honeycomb).[45] Additional hardware support Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, barometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.

9 Android’in Özellikleri
Multi-touch 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 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-touch natively.[82] Bluetooth Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available in Android 3.1+, and in earlier versions through manufacturer customizations and third-party applications.[83] Video calling 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 Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 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 2.1 offers video calling in Android 2.3, including front camera support.

10 Android’in Özellikleri
Multitasking Multitasking of applications is available.[84] Voice based features 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] Tethering 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 customizations.[87] Screen capture 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 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 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 connection (DDMS developer's tool) were the only known methods of capturing a screenshot on Android.

11 Android’in Özellikleri
System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices Media Libraries - based on PacketVideo's 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

12 Android Mimarisi

13 Versiyonlar

14 Versiyonlar Versiyon 1 ve 1.1 ilk sürümler (Astro ve Bender ile başlıyor) Versiyon 1.5 Cupcake Versiyon 1.6 Donut Versiyon 2.X (2.0, 2.1) Eclair Versiyon 2.2 Froyo Versiyon 2.3.X ( ) Gingerbread Versiyon 3.X (3.1,3,2) Honeycomb Versiyon 4.X ( ) Ice Cream Sandwich

15 Versiyonlar

16 Versiyonlar Android 1.1 Bender Android 1.5 Cupcake

17 Versiyonlar Android 2.0 ve 2.1 Eclair Android 1.6 Donut

18 Versiyonlar Android 2.3 Gingerbread Android 2.2 Froyo

19 Versiyonlar Android 3.0 Honeycomb

20 Android 4.0 Ice Cream Sandwich
Versiyonlar Android 4.0 Ice Cream Sandwich

21 Enteresan Uygulamalar

22 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. Sosyal ağ uygulamaları (Google Plus, Twitter, Facebook, Foursquare)

23 Enteresan Uygulamalar
Layar

24 Android Uygulama Mağazaları

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

26 Android Uygulama Mağazaları
Turkcell Uygulamalar Samsung S-Andoid

27 Android cihazları

28 Google telefonları

29 Android Arayüzleri HTC Sense Samsung Touchwiz Sony Timescape

30 3D API’ler HTC 3D LG 3D

31 Android Yazılım Geliştirme

32 Android 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 pekçoğu Java ile yazılmıştır, Eclipse, Netbeans, IntelliJ Idea IDE’leri kullanılabilir, HTML5 ile Yazılım Geliştirme: Phonegap gibi sistemlerle uygulama içersinde HTML5 çalıştırmak mümkündür. Adobe Flex ile Yazılım Geliştirme: Adobe’nin Flash Builder aracı ile ActionScript kullanarak yazılım geliştirilebilir. Mono for Android ile Yazılım Geliştirme: .NET altyapısı ile C# dilinde yazılım geliştirilebilir.

33 Android Yazılımlarında Bileşenler
Aktiviteler(Activities): 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, sonunda da kullanılmadıkları zaman sistem tarafından sonlandırılan parçalardır. Servisler (Services): 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 olarak çalışırlar.Genellikle kullanıcı arayüzü olarak sunulmazlar. Uygulamaların ihtiyacı olan verilerin ve hizmetlerin sağlanmasında kullanılırlar. Kaynak :

34 Android Yazılımlarında Bileşenler
Broacast and Intent Receivers: 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, 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. Varolan bir uygulamayı kullanarak uygulama geliştirildiğinde bu tür olay yakalayıcılar kullanılır. İçerik Sağlayıcılar(Content Provider): Aygıt üzerindeki uygulamalar dosya sisteminde yada dosya sistemi üzerindeki SQLite veritabanı üzerinde uygulamaya ait verileri saklarlar. Diğer uygulamaların 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 sunar. Kaynak :

35 Eclipse Android Plugin
Android SDK Eclipse Android Plugin

36 Android SDK İçeriği Emülatörler, Dökümanlar, Örnek kodlar,
USB sürücüleri (usb_driver/android_winusb.inf), Versiyonlar, Güncelleme sihirbazı, Araçlar…

37 Android SDK İçeriği Virtual Devices

38 Android SDK İçeriği Virtual Devices Emulator 1.1

39 Android SDK İçeriği Virtual Devices Emulator 1.5

40 Android SDK İçeriği Virtual Devices Emulator 1.6

41 Android SDK İçeriği Virtual Devices Emulator 2.0

42 Android SDK İçeriği Virtual Devices Emulator 2.1

43 Android SDK İçeriği Virtual Devices Emulator 2.2

44 Android SDK İçeriği Virtual Devices Emulator 2.3

45 Android SDK İçeriği Installed Packages

46 Android SDK İçeriği Available Packages

47 Android SDK İçeriği Settings

48 Android SDK İçeriği About

49 Android Eclipse Plugin

50 Android Eclipse Plugin
Eclipse ile Android üzerinde yazılım geliştirme, development, debugging , test ve deployment yapılmasına imkan veren plugindir. Eclipse Help-> Install New Software yolu ile giderek aşağıdaki adres eklenir:

51 Android Eclipse Plugin

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

53 Android Eclipse Plugin
Dalvik Debug Monitor Server (DDMS) Perspective

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

55 Yeni Android Projesi Eclipse File -> New -> Other… Android -> Android Project

56 Yeni Android Projesi Önceki versiyonlarda tek sayfada gerçekleşen proje oluşturma süreci sihirbaz halinde sayfalara bölünmüştür. Project name : Proje adı

57 Yeni Android Projesi Build target : Android versiyonu, mutlaka seçiyoruz,

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

59 Yeni Android Projesi Projemiz yaratıldı. Klasörler şöyle : src, gen,
res. AndroidManifest.xml ve default.properties adında iki dosya var.

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

61 Yeni Android Projesi Proje üzerinde sağ tuş -> Run As -> Android Application

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

63 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=" package="com.m2bilisim.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application > <activity android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

64 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=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_height="wrap_content" /> </LinearLayout>

65 Projedeki Önemli Dosyalar
res/values/strings.xml Mesaj metinlerinin tutulduğu dosyadır. Activity’ler için düzenlenen xml’lerden şeklinde 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/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>

66 Activity Bir aktivite 3 duruma sahip olabilir :
Aktif ya da çalışır durumda uygulama kullanıcıya odaklanmıştır ve kullanıcıdan gelecek verilere göre sonuçlar üretilir, Bekleme modunda başka bir uygulama çalışmaya başlamış, uygulama arkaplana itilmiş fakat aynı şekilde çalışmaya devam etmektedir. Uygulama bekleme modunda düşük bellek durumlarında sistem tarafından yokedilebilir, Durdurulmuş durumda uygulama tamamen çalışmaz durumdadır buna rağmen en son verilere sahiptir. Uygulamaya ayrılmış bellek sistem tarafından gerektiğinde kullanılabilir. Kaynak :

67 Activity Aktivite bir durumdan diğer duruma geçerken aşağıdaki metodları çalıştırır. void onCreate(Bundle savedInstanceState) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy() Kaynak :

68 Activity

69 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 MainActivity extends Activity implements OnClickListener

70 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); }

71 Intent 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 broadcast yapmak, broadcast dinlemek gibi işlemler için önce Intent oluşturulmalı daha sonra bu Intent başlatılmalıdır. //Yeni activity acmak Intent activityIntent = new Intent(getApplicationContext(), YeniActivity.class); startActivity(activityIntent); //Bir numara cevirmek Intent telefonIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel: ")); startActivity(telefonIntent); //Web site baslatmak Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(" startActivity(webIntent);

72 Layout 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. 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 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 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 geliştirilmiş özel View’lar da Layout dosyalarında düzenlenebilir.

73 Layout 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.

74 Layout AbsoluteLayout : Ekran üzerinde hangi görsel elemanın nerede duracağını piksel piksel sabitler. Örneğin bir butonun soldan 20 piksel, üstten 20 piksel koordinatlarında durmasını istersek AbsoluteLayout kullanmalıyız. LinearLayout : Bütün eklenen görsel elemanları alt alta veya yan yana çizgisel olarak dizer. RelativeLayout : 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 ayarlanmasını sağlar. TableLayout : Ekran öğelerini tablolar halinde göstermek için kullanılabilen layouttur. Herbir TableLayout içerisinde TableRow’lar halinde tablo satırları oluşturulabilir. FrameLayout : 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 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.

75 View Activity’lerde kullanılan görsel yapılara View denilmektedir. 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 yapılarını doğrudan ekrana basabilmektedir. TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer. TextView’lara metin girişi birkaç yöntemle yapılabilir: WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır. ScrollView : 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 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.

76 View Activity’lerde kullanılan görsel yapılara View denilmektedir. 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 yapılarını doğrudan ekrana basabilmektedir. TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer. TextView’lara metin girişi birkaç yöntemle yapılabilir: WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır. ScrollView : 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 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.

77 View Activity’lerde kullanılan görsel yapılara View denilmektedir. 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 yapılarını doğrudan ekrana basabilmektedir. TextView : Ekranda metin içeriği göstermede kullanılabilen View türüdür. Diğer pekçok programlama dilinde Label olarak geçer. TextView’lara metin girişi birkaç yöntemle yapılabilir: WebView : HTML içeriklerini ve web sayfalarını Activity’ler içerisinde açabilen View’dır. ScrollView : 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 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.

78 View import 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)); }

79 View WebView public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webviewornek); WebView webView = (WebView) findViewById(R.id.webview); webView.loadUrl(" } Aşağıdaki şekilde internet erişim izni alınmalıdır: <uses-permission android:name="android.permission.INTERNET"/>

80 View (Form elemanları)
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 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. Örneğin Button için OnClickListener event’ı vardır. ListView’ın OnItemClickListener event’ı bulunmaktadır. Bu listener’ları kullanabilmek için OnClickListener Interface’inden dinamik sınıf 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ı"); } });

81 View (Form elemanları)
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(); }

82 Dialoglar Android’de çok sayıda iletişim kutusu seçeneği vardır.
Dialog : Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout yüklenebilir. AlertDialog : Uyarı mesajıdır. Tamam – iptal gibi görünümleri olabilir. ProgressDialog : İşlem yapıldığında kullanılabilen mesaj kutusudur. DatePickerDialog : Tarih seçim mesajı TimePickerDialog : Zaman seçim mesaj kutusu Custom Dialog : Özelleştirilmiş bir mesaj kutusudur. İçerisinde başka View’lar olabilir.

83 Dialoglar Dialog : Mesaj kutusu çıkarır. Genişletilebilir ve özelleştirilebilir. Layout yüklenebilir. final Dialog dialog = new Dialog(DialogTestActivity.this); dialog.setTitle("Basit dialog"); dialog.show(); AlertDialog : 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() { dialog.cancel(); }); AlertDialog alert= builder.create(); alert.show();

84 Dialoglar AlertDialog : 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();

85 Dialoglar AlertDialog : 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();

86 Menu Activity içerisinde onPrepareOptionsMenu() metoduyla menu oluşturabiliyoruz. public boolean onPrepareOptionsMenu(Menu menu) { menu.add(0, 0, 1, R.string.BaseMenu); menu.add(0, 1, 2, R.string.About); return super.onPrepareOptionsMenu(menu); } Seçilen menu elemanını onOptionsItemSelected(MenuItem item) metoduyla 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;

87 Theme Android’in kendine ait temaları bulunmaktadır.
Default tema siyah zemin üzerine beyaz yazılar şeklindedir. Ama bu temanın alternatifleri vardır. Bir activity’nin temasını değiştirmek için AndroidManifest.xml’de : Beyaz zemin üzerine siyah yazılar için : tanımlaması yapabiliriz. Şeffaf arkaplan için : Ekrana diyalog kutusu şeklinde Activity basmak için :

88 Theme – Custom Theme Programcı isterse kendine ait temalar da oluşturabilir. Bunu yapabilmek için /res/values içerisinde styles.xml adında bir dosya oluşturup tanımlamalarını bu dosyada yapar. <resources> <style name="Theme.Ntv" parent="android:Theme.Light"> <item </style> </resources> Android themes.xml : Android styles.xml :

89 Thread Thread yönetimi iki şekilde yapılıyor:
Klasik yöntem ve AsnycTask ile Klasik yöntem: Activity’yi Runnable Interface’inden türetmek : implements Runnable Bir Thread çalıştırmak : Thread thread = new Thread(Main.this); thread.start(); 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: private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { pd.dismiss(); tv.setText(pi_string); } };

90 Thread - AscyncTask AsnycTask ile asenkron işlem yapmak Google tarafından önerilen yöntemdir. Bu yöntemde Activity içersinde InnerClass olarak AsyncTask sınıfından oluşturulan bir sınıf yazılır. Ö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. Örnek : new PiHesaplaTask().execute(); AsyncTask sınıfının içerisinde süreç ilk başladığı zaman onPreExecute() metodu aktifleşir. Bu metotta işlemin yapıdığına dair bir uyarı kutusu çıkarılabilir. Asenkron işlem doInBackground() metodu içerisinde gerçekleşir. onPostExecute() metodu ile işlem bittiğinde asenkron işlem sonuçlanır ve uyarı kutusu kapatılır. 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"); } @Override protected Void doInBackground(String... arg0) { pitext = Pi.computePi(800).toString(); return null; protected void onPostExecute(final Void unused) { progressDialog.dismiss(); textView.setText(pitext);

91 Widget Widget’lar uygulamaların masaüstünde çalışabilen kısımlarıdır. Wndget’ların da aynen Activity gibi Layout’ları olur. AndroidManifest.xml dosyasına receiver olarak tanıtılırlar. <receiver android:name=".Widget1" android:label="Widget1"> Intent-filter olarak android.appwidget.action.APPWIDGET_UPDATE eklenir. AndroidManifest.xml dosyasında metadata ilavesi yapmak gereklidir. Ve metadata dosyasına widget tanımlama xml bilgisi eklenir. <meta-data android:name="android.appwidget.provider" /> AndroidManifest.xml ‘de bir widget tanımlamak için gereken tüm tanımlama: <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> </receiver>

92 Widget Widget’ların hangi layout’u kullanacağı, boyutlarının ne olacağı gibi bilgiler için ayrı bir xml dosyası oluşturulur. Örnek widget1.xml <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android=" android:minWidth="50dp" android:minHeight="72dp" android:updatePeriodMillis="10000" android:label="Hello1" /> Burada ile tanımlanan satır widget_layout.xml dosyasıdır. Widget sınıfları android.appwidget. AppWidgetProvider sınıfından türetilir ve en önemli metodu onUpdate() metodudur.

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

94 Motodev Studio Motorola tarafından Android geliştiricileri için çıkarılmış harika bir IDE’dir. Çok sayıda örnek kod (snippet) içerir, görsel programlamayı kolaylaştırmaktadır, Mevcut Eclipse Plugin’ini geliştirmiştir,

95 Motodev Studio

96 Android Market’e Uygulama Gönderme

97 Android Market’e Uygulama Gönderme

98 Android Market’e Uygulama Gönderme

99 Kaynakça: http://wikipedia.org http://www.android.com

100 Teşekkürler


"Muharrem Taç M2 Bilişim Gelecekonline." indir ppt

Benzer bir sunumlar


Google Reklamları