Android Nedir? Google'ın Android Inc şirketini alışı



Benzer belgeler
1 - Button Kontrolu Nasıl Yapılır?

MOBİL UYGULAMA GELİŞTİRME

Proje 1. Arayüz Tasarımı

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi. Genel Bilgiler ve Uygulama. BLM401 Dr.Refik SAMET

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME

Android Ders Notları

ANDROİD. Melih Hilmi Uludağ. «Bir tutkunun sonucu»

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. Genel Bilgiler ve Uygulama Geliştirme Ortamının Kurulumu. BLM401 Dr.

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

MOBİL İŞLETİM SİSTEMLERİ (MOBILE OPERATING SYSTEMS)

Android Platformunda Uygulama Geliştirme.

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

Android Kaynakları (Resources)

Android ile SQLLite Veri Tabanı

Androıd ile Arduıno. Nazir Doğan

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Muhar a r r e r m e T a T ç J PT Gel e e l c e e c k e o k nli l n i e And n r d oi o d i Nedi d r

Activity Context.startActivity Activity, AndroidManifest

Android Cep Telefonu Programlama

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü


ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)


Bazı Akıllı Telefon Sensörleri

Java Programlamaya Giriş

JAVA MOBIL UYGULAMALAR

MOBIL UYGULAMA GELIŞTIRME

UYGULA İÇİ SATIN ALMA. <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.android.vending.

e-imzatr Kurulum Klavuzu

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi KULLANICI ARAYÜZ. BLM401 Dr.Refik SAMET

Android e Giriş. Öğr.Gör. Utku SOBUTAY


Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

HSancak Nesne Tabanlı Programlama I Ders Notları

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

ASP.NET ile Bir Web Sitesi Oluşturma

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi YAYIN ALICILARI. BLM401 Dr.Refik SAMET

MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu

Görsel Komponentler. TextView. Metin değerlerini ekranda göstermek için kullanılır.

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

ANDROID AÇIK AKSESUAR API & AKSESUAR GELİŞTİRME. Dr. Fatma Cemile Serçe

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

JAVA PROGRAMLAMAYA GİRİŞ

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Android Studio Dersleri

Elektronik Belge Yönetim Sistemi Kullanım Kılavuzu

İŞLETİM SİSTEMLERİ. Enformatik Bölümü

TAKSİ-DURAK MÜŞTERİ TAKİP PROGRAMI

ÇANKRI KARATEKİN ÜNİVERSİTESİ

Kullanım Kılavuzu

E-İMZA OTOMATİK KURULUM PAKETİ DÖKÜMANI

Burak Kıymaz JAVA FX

İdari Birimler Yönetim Paneli Kullanma Kılavuzu Bilgi İşlem Daire Başkanlığı Web Tasarım Ve Yazılım Birimi

ELEKTRONİK BELGE YÖNETİM SİSTEMİ KOORDİNATÖRLÜĞÜ (EBYS KOORDİNATÖRLÜĞÜ) ELEKTRONİK İMZA KURULUM AŞAMALARI VE EBYS PROGRAMI SİSTEM GEREKSİNİMLERİ

XMail. Kurulum ve Senkronizasyon Ayarları Rehberi

C için tümleşik geliştirme ortamı (IDE) kurulumları

T.C. GEBZE YÜKSEK TEKNOLOJİ ENSTİTÜSÜ

BEUN VPN Hizmeti. VPN Nedir?

VitalSource Bookshelf Nedir? Bookshelf e Giriş Kayıt Kitap Ekleme. Masaüstü ve Dizüstü Bilgisayarda

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

e-imzatr Kurulum Klavuzu

BQTEK SMS Asistan. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

NİTELİKLİ ELEKTRONİK SERTİFİKA KURULUM AŞAMALARI

WAMP SERVER KURULUMU

K12NET Eğitim Yönetim Sistemi

19 Şubat 2016 Cuma

2. SCADA PROGRAMI. TEOS' un size sunduğu bir çok hizmet içerisinde en önemlilerini şöyle sıralayabiliriz:

ANDROİD TABANLI DOKUMATİK EKRAN PANOSU

Data Structures Lab Güz

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Code Composer Studio İndirilmesi ve Kurulması

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

UYGULAMALAR. İkinci liste kutusu (List 2) Birinci liste Kutusu (List 1) Metin Kutusu

Nevşehir Hacı Bektaş Veli Üniversitesi. Moodle Uzaktan Eğitim Sistemi. Öğretim Elemanı Bilgilendirme Kılavuzu

Response : Sunucunun istemciye veri yollamasını

ELEKTRONİK BELGE YÖNETİM SİSTEMİ KULLANICI GİRİŞ VE E-İMZA İŞLEMLERİ KLAVUZU

Program Kurulum. Turquaz Muhasebe. İçindekiler

NİTELİKLİ ELEKTRONİK SERTİFİKA KURULUM AŞAMALARI

CİSCO ANY CONNECT UYGULAMASI İLE İÇ KAYNAKLARA ERİŞİMİ KLAVUZU

UZAKTAN EĞİTİM YÖNETİM SİSTEMİ (MMYO)EĞİTMEN YARDIM KILAVUZU

B2B Sistemi Kullanımı Hakkında Bilgiler

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

Toplu Kayıt Kullanıcı Kitapçığı

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

MEBWEB OKUL/KURUM WEB SİTELERİ KULLANIM KLAVUZU TEMEL İŞLEMLER

1. KAMU DENETÇİLİĞİ KURUMU ELEKTRONİK BELGE VE ARŞİV YÖNETİM SİSTEMİNE ERİŞİM

Transkript:

Android Nedir? Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilen, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil işletim sistemidir. Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir geliştirici grubuna sahiptir. Android için halihazırda 250,000'den fazla uygulama bulunmaktadır. Google Play ise, Android işletim sistemi uygulamalarının çeşitli sitelerden indirilebilmesinin yanısıra, Google tarafından işletilen kurumsal uygulama mağazasıdır. Geliştiriciler, ilk olarak aygıtı, Google'ın Java kütüphanesi aracılığıyla kontrol ederek Java dilinde yazmışlardır. Open Handset Allience, 5 Kasım 2007'de Android'i kurduğunu duyurmuştur ve ardından 34 adet donanım, yazılım ve telekom şirketi, mobil cihazlar için telif hakkı olmayan bir işletim sisteminin teknolojinin gelişimi için yararlı olduğu konusunda hemfikir olmuşlardır. 2008'de piyasaya sürüldüğünde, birçok Android İşletim Sistemi Apache freesoftware ve Açık Kaynak Kodu lisansıyla geliştirilmeye açık hale gelmiştir. Android, linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir, bu sistemde ara katman yazılımı, kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzerine kurulu java-uyumlu kütüphaneler ihtiva eden uygulama iskeleti üzerinden çalışır. Android, derlenmiş java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinasını kullanır ve cihazların fonksiyonerliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir. Google'ın Android Inc şirketini alışı Temmuz 2005'te Google, Android Inc.'i almış ve ufak bir başlangıç şirketini Palo Alto'da kurmuştur. Android'in kurucuları, Google'a çalışmak için giden Andy Rubin (Danger'in kurucusu), Rich Miner (WildFire'ın kurucusu), Nick Sears ve Chris White'dır. (WebTV'de çalışan ilk mühendislerden biri). Bu arada, Android Inc.'in işlevleri daha önce yaptıkları mobil işletim sistemleri kadar iyi bilinmemektedir ve bu da Google'ın Mobil

Cihazlar pazarına gireceği söylentisini başlatmıştır. Buna karşın, bu süreç içinde pazara ne çeşit ürünle çıkacakları tam olarak belli olmamıştır. Google'da, ekip (Rubin tarafından izin verilen) Linux tabanlı, taşınabilir cihazlar için geliştirdikleri, esnek, güncelleştirilebilir İşletim Sistemini yazmışlardır. Raporlara göre Google çoktan donanım serilerini, yazılım partnerlerini ve taşınabilir cihazlarda çeşitli derecelerde birlikte çalışacağı sinyalini vermiştir. Android'in Gelişimi Google, Android'i satın aldıktan sonra telefon üreticilerini yanına alarak Open Handset Alliance (OHA) birliğini kurdu. Android'in gelişimi OHA eliyle yönetilmeye başlandı. Android.0 HTC Dream'in işletim sistemi olarak telefonlara ilk adımını attı.bu sürüm; kamera desteği Wi-Fi, bluetooth, klasörler, bir web tarayıcısı, uyarılar, sesli arama, YouTube, alarmlı saat, galeri gibi özellikler sunuyordu. 9 Şubat 2009 da Android. yayınlandı.bu sürüm bir önceki sürümdeki sistem hatalarını düzeltmeyi ve API'yı geliştirmeyi amaçlıyordu. 30 Nisan 2009'da Android.5 [Cupcake) yayınlandı.bluetooth desteği, kamera kaydı, video gösterimi, Picasa,sık kullanılan klasör ve widgetları kişiselleştirebilme, yazı tahmin edebilen klavye ve animasyonlu ekran özellikleri Android'e kazandırıldı. 5 Eylül 2009'da Android.6 (Donut) yayınlandı.ekran çözünürlüğü yükseltildi. Doğru çeviri yapma ve okutma özelliği,geliştirilmiş android market,galeride çoklu silme, sesli arama, WVGA ekran çözünürlük desteği Android'e kazandırıldı. 29 Ekim 2009'da Android 2.0 ve 2. (Eclair) yayınlandı. HTML 5 ve Bluetooth 2. desteği kazandırıldı. Sanal klavye ve yüksek ekran çözünürlüğü desteği ile özelleştirilebilen arayüz özelliği eklendi. Geliştirilmiş Google Maps, hareketli duvar kağıtları ve dijital zoom özelliği de kazandırıldı. Mayıs 200'da Android 2.2 (Froyo) yayınlandı. 720p ekran çözünürlüğü desteği,usb bağlantı,wi-fi tarayıcı özelliği,flash Player 0. desteği eklendi. Şubat 20'de Android 2.3 (Gingerbread) yayınlandı. Çoklu kamera ve çoklu dokunmatik desteği eklendi. XGA (366 768) ekran çözünürlük desteği,video arama özelliği eklendi. Yine Şubat 20'de Android 3.0 (Honeycomb) yayınlandı. Android işletim sistemi, tabletlerle uyumlu hale getirildi. Ekim 20'de Android 4.0 (IceCream Sandwich) yayınlandı.yüz tanıma fonksiyonları ve NFC ile dosya paylaşımı özellikleri eklendi. Mart 202'de Android Market'in adı Google Play olarak değiştirildi. Temmuz 202'de 4. (Jelly Bean) yayınlandı. Aynı anda iki uygulama açma özelliği Android'e kazandırıldı. Butter project(takılmadan kayan ekran) ve enerji verimliliği sağlandı.

Ekim 202'de 4.2 (Jelly Bean Plus) yayınlandı.çoklu kullanıcı,360 derece panoramik fotoğraf,swype klavye kazandırıldı. Şubat 203'te 4.2.2 (Jelly Bean Plus) yayınlandı.bu güncelleme "performansı ve kararlılığı artırır" temasıyla çıkarıldı.isınma ve donma problemleri giderildi. 24 Temmuz 203'te 4.3 (Jelly Bean) yayınlandı.çoklu kullanıcı için ebeveyn kontrolü,oyunlar için OpenGL ES 3.0 desteği,diğer teknolojik aletlere bağlanmak için ilk akıllı bluetooth teknolojisi,wifi'yı açıp kapatmak yerine otomatik açılıp kapanabilen akıllı wifi teknolojisi eklendi. Bölümleri Android işletim sistemi beş kısımdan oluşur. Çekirdek:Linux kernelidir. Güvenlik, hafıza yönetimi, süreç yönetimi, ağ yığınları ve sürücü modellerini içerir. Android Runtime: Sanal makinedir. Dalvik Sanal Makinesini de içerir. Kütüphaneler: Veritabanı kütüphaneleri, web tarayıcı kütüphaneleri, grafik ve arayüz kütüphanelerini içerir. Uygulama Çatısı: Uygulama geliştiricilere geniş bir platform sunan kısımdır. Uygulama Katmanı: Doğrudan Java (programlama dili) yle geliştirilmiş uygulamaları içerir. Geliştirme 2 Kasım 2007'de OHA, Android'in yazılım geliştirme teçhizatının önizlemesini yayınlamıştır ve bu önizleme, geliştirici ve hata giderici, kütüphane setleri, aygıt emülasyonu, dökümantasyon, örnek tasarılar, eğitim, SSS ve fazlasını içermektedir. Geliştiriciler, eğer Windows XP, Vista veya Mac OS çalıştıran x86 tabanlı ya da Linux kullanıyorlarsa Android- SDK'yı indirip kurmaları gerekmektedir. Gereklilikler şunları da kapsamaktadır: Java Development Kit Apache Ant Python 2.2 veya yüksek versiyonu Eclipse (yazılım) 3.2 veya yüksek versiyonu Özellikler Android'in son sürümleri, çoklu-görev (multitasking), çoklu-dokunuş (multitouch) ve Flash desteğiyle beraber gelmektedir. Android Market ile uygulamalar yüklenebilmektedir. Handset Çizimler Sistem, VGA, 2D grafik arşivler, OpenGL ES 3.0 tabanlı 3D Grafik arşivlerine ve geleneksel telefon çıkışlarına son derece kolay

uyum sağlar. Depolama Bilgi: depolama amaçlı SQLite kullanılmaktadır. Bağlanabilirlik: Android, GSM, Bluetooth, EDGE, 3G, NFC ve Wi-Fi bağlantısını destekler. Mesajlaşma: Hem SMS hem de MMS desteği vardır. Web Tarayıcısı: Android'in web tarayıcısı açık kaynak kodlu WebKit application framework üzerine kuruludur. Medya Destekleri: Android, MPEG-4, MP4, H.264, MP3, ve AAC, AMR, JPEG, PNG, GIF gibi ses/video/resim formatlarını desteklemektedir. Ek Donanımları: Android, anti-titremeli video/foto kameraları, touchscreenler, GPS, pusulalar, accelerometrelerde son derece yeteneklidir. Android SDK ve Eclipse ADT Kurulumu Ayrıntılı Anlatım Video Olarak Android ve Sdk Kurulumu: Aşağıdaki Linki Kullanarak Adım Adım Android Kurulumu Gerçekleştirebilirsiniz. http://www.youtube.com/watch?v=bugxalne4vw Bilgisayarınızda JDK kurulu değilse, JDK indirip bilgisayarınıza kurmanız gerekir. Kurulum için http://java.sun.com/javase/downloads/index.jsp adresinden JDK indirilip kurulur. Kurulum yapılmazsa hatayla karşılaşılır. Sadece bilgisayarınızda JRE kurulu olması Android için yeterli değildir. JDK kurulumundan sonra SDK nın kurulması gerekiyor. Bunun için Android SDK sayfasına gidilmesi gerekiyor. http://developer.android.com/sdk/index.html adresinden indirebilirsiniz. Recommended olan indirilirse, direk olarak exe dosyasından kurarsınız. C:\Program Files\Android\android-sdk-windows klasörü içine kuracaktır. Bu iki kurulumdan sonra Eclipse programının indirilmesi ve kurulması gerekir. Eclipse programınıhttp://www.eclipse.org/downloads/packages/eclipse-classic- 372/indigosr2adresinden indirebilirsiniz. ZIP dosyasını programı çalıştırmak istediğiniz bir yere açınız. Eclipse programı kuruluma ihtiyaç duymaz, zaten kurulu olarak Eclipse isimli klasörde yer alır. Programı çalıştırmak için eclipse.exe tıklanır. Program açıldıktan sonra Eclipse a ADT kurulumu yapılması gerekiyor. Böylece Android menü içerisinde görülebilecektir. ADT kurulumu için Help -> Install New Software seçeneği seçilir ve Work with kısmına http://dl-ssl.google.com/android/eclipse/ linki eklenir. Add tıklanarak açılan pencerede Location sekmesine de aynı adres yapıştırılır. Name kısmı önemli değildir. Yüklemeler tamamlandıktan sonra Eclipse programına Android eklenmiş olacaktır.

Son adım olarak Android kütüphanelerinin tanıtılması gerekiyor. SDK yolunu (C:\Program Files\Android\android-sdk-windows) Windows -> Preferences seçeneğinde Android sekmesini seçerek SDK Location bölümüne yapıştırılır. İlk Android Uygulaması Merhaba Dünya Programı Öncelikle bir Android projesi açıp projemizin dosyalarını tanımaya başlayalım. Eclipse yi çalıştıralım. İlk çalıştırdığımızda bizden projelerimizi kaydetmemiz için klasör konumunu isteyecek. Değişiklik yapmazsak yeni projelerimiz default klasöre kaydedilecektir. New Project alanından bir adet yeni proje açıyoruz. Proje ismimizi Merhaba olarak belirtip Next diyoruz. Application Name: Uygulamanızın ismidir. Play Store da ve Ayarlar altındaki Uygulama Listesinde bu isim kullanılır. Project Name: Proje dosyasının ismidir. Sadece Eclipse tarafından kullanılır. Workspace içerisinde benzersiz olmalıdır. Genelde Application Name ile aynı verilir. Package Name: Kullanılan java paketinin gösterir. Minimum Required SDK: Uygulamanın çalışacağı minimum Android SDK sürümüdür. Uygulamanız daha alt sürümlerde çalışmaz. Örnekte seçilen API 8 seviyesi markette bulunan telefonların ve tabletlerin %90 ından fazlasını destekleyeceğiniz anlamına gelir. Target SDK: Uygulamanızı geliştirdiğiniz esas Android SDK sürümüdür. Compile With: Uygulamanızı derleyeceğiniz sürüm bilgisidir. Theme: Uygulama için seçilecek temel temadır.

Daha sonra açılan pencerede Android 4.0.3 seçip devam ediyoruz. (2. de seçilebilir örneğin size bağlı) Sonraki pencerese Package Name veriyoruz. Bu isim unique bir değer olmalıdır. Genellikle url ler ters yazılarak belirlenir. com. merhaba şeklinde. Next deyip yeni projemizi açmış oluyoruz. Sol kısımda Package Explorer kısmında projemizin dosyalarını görebiliyoruz. Bu dosyaları tanıyalım: src klasörü: Uygulamamızın kaynak kodlarını içerir. Burada bulunan kaynak dosyamız editörün bizim için yaratmış olduğu java uzantılı dosya. gen klasörü: Burada bir R.java dosyası yer almaktadır. Biz uygulamamıza yeni kaynaklar ekledikçe bu dosya kendiliğinden otomatik olarak güncellenecektir. R sınıfını uygulamayı yazarken kullanırız. assets: Uygulamamız ile birlikte paketlenmesini istediğiniz dosyaları koymamız gereken klasör. res: içerisinde çok sayıda klasör barındırıyor. Buradaki layout un altındaki main.xml projenin grafiksel görünümünü ve kod kısmını içerir. values klasörünün altında bulunan strings.xml dosyasında stringlerimizi belirleyebiliyoruz. AndroidManifest.xml: Uygulama ve bileşenlerinin tanımlandığı XML dosyasıdır. project.properties Projenin özellik dosyasıdır. Merhaba Dünya uygulamasını yazmaya hazırız: Package Explorer penceresine genel bir bakış attıktan sonra values klasörünün altında bulunan strings.xml dosyasına tıklayalım. Kod kısmına aşağıdaki kodu yazıp kaydedelim:? <string name="text">tıkla</string> Daha sonra main.xml dosyamızı açacağız. Grafik sekmesinde sol bölümde uygulamamıza dahil edeceğimiz kontrollerimizi göreceğiz. Form Widgets kısmından bir adet Button u sürükleyip bırakıyoruz. Kod kısmına geçiyoruz. Kodlarımızın görünümü aşağıdaki şekildedir: <?xml version=".0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button"

android:text="button" /> </LinearLayout> Butonun layout_width özelliğini değiştirelim: android:layout_width="fill_parent" Bunu buton tüm ekranı kaplasın diye yaptık. android:text="@string/text" /> Bunu yazarak butonun textini değiştiriyoruz. Direk görüntülenmesini istediğimiz metni yazarsak uyarı alırız, doğru olan bu şekilde string tanımlayarak sonra bu stringi butonun textine vermek. Grafik arayüz kısmında butona sağ tıklayıp Show In Properties seçersek sağda kontrolümüzün özellik ve olaylarını gösteren bir pencere açılacak. Buraya kadar buton ekleyip butonun textini değiştirdik. Sıra geldi bu butona tıkladığımızda ekrana Merhaba Dünya yazdırmaya Button Properties penceresinden Onlick kısmına MerhabaClick yazalım. Daha sonra src klasörünün altında bulunan java dosyasını açalım. İlk hali bu şekilde olacak. package com.yazilimciblog.merhaba; import android.app.activity; import android.os.bundle; public class MerhabaActivity extends Activity { /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Buraya öncelikle metodumuzu yazacağız. public void MerhabaClick(View v)

{ şeklinde olacak. ctrl+shift+o ile import android.view.view; ekleyeceğiz. Daha sonra scope alanına yazalım: public void MerhabaClick(View v) { Toast.makeText(getApplicationContext(), "Merhaba Dünya", Toast.LENGTH_LONG).show(); Kaydedip uygulamayı emulatorde çalıştıralım. Bunun için üst kısımda bulunan yeşil Run tuşuna basıyoruz. İlk uygulamamız bu kadar. Butona basıldığında başarı ile ekrana Merhaba Dünya yazdırmış olduk. Subactivities örneği : Bu örneğimizde activities ler arasındaki erişimi gösteriyoruz 3 adet java classımız var ve 3 adet te layout umuz yani görünümüz var. Baslangic. Java package com.example.subactivities; import android.support.v7.app.actionbaractivity; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.toast; public class Baslangic extends ActionBarActivity { private static final int CEVAP_SORGULA = 0; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_baslangic);

public void degistiractivity(final View view){ switch(view.getid()){ case R.string.sf_subactivity: startactivity(new Intent(this,SubActivity.class)); break; case R.string.sf_subactivity_cevap : startactivityforresult(new Intent(this,SubActivityCevap.class),CEVAP_SORGULA); break; protected void onactivityresult(int requestcode, int resultcode, Intent data){ if(resultcode == Activity.RESULT_OK && requestcode == CEVAP_SORGULA){ Toast.makeText(this, "Cevabınız :", + Toast.LENGTH_SHORT).show(); super.onactivityresult(requestcode, resultcode, data); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.baslangic, menu); return true; public boolean onoptionsitemselected(menuitem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getitemid(); if (id == R.id.action_settings) { return true; return super.onoptionsitemselected(item); Burada yapılan işlem :

public void degistiractivity(final View view){ switch(view.getid()){ case R.string.sf_subactivity: startactivity(new Intent(this,SubActivity.class)); break; case R.string.sf_subactivity_cevap : startactivityforresult(new Intent(this,SubActivityCevap.class),CEVAP_SORGULA); break; metodu ile gerçekleşmektedir. Değiştriactivity metodu activity ler arasında geçiş yapmamızı sağlar. Dikkat edersek switch bloğunun içinde sf_subactiviy ve sf_subactivitycevap layout larımıza erişim sağlamış olduk. Yani başlangıc layout üzerinde değiştiractivity metodu ile diğer iki layout a geçiş yapabildik. Subactivity.java package com.example.subactivities; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; public class SubActivity extends Activity{ protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.subactivity); public void cevapver(final View view){ final Intent intent = new Intent(); intent.putextra("cevap", 55); setresult(result_ok,intent); finish(); Burada yapılan işlem ise cevapver metodu ile cevap ver subactivity layout undna bulunan butonuno basıldığında ne iş yapılacağı anlatıldı. Subactivitycevap.java package com.example.subactivities;

public class SubActivityCevap { Layout larımız aşağıdaki gibidir : yani ekran görünümlerimiz. Activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.example.subactivities.baslangic" > <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="26dp" android:layout_margintop="4dp" android:text="@string/sf_subactivity" android:onclick="degistiractivity" /> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_alignleft="@+id/button" android:layout_below="@+id/button" android:layout_margintop="26dp" android:text="@string/sf_subactivity_cevap" android:onclick="degistiractivity" /> </RelativeLayout> Bakarsak başlangıç ekranımızda 2 adet butonumuz var. Bunların id leri button ve button 2 dir. Aynı zaman da button içinde yazılacak olan metin android:text="@string/sf_subactivity" android:text="@string/sf_subactivity_cevap" kodlarıyla string.xml dosyası içinde belirtilmiştir. String.xml dosyasında baktığımızda buttonların string değerleri içinde hangi değerin yazıcağını görebiliriz.

Subactivity.xml <?xml version=".0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textview" android:text="@string/tx_subactivity" /> </LinearLayout> Subactivity görünümünde adet textview vardır. Ve aynı button larda olduğu gibi bu textview içinde ne yazılacağı android:text="@string/tx_subactivity" ile string.xml dosyasında görülmektedir. Subactivitycevap.xml <?xml version=".0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textview" android:text="@string/tx_subactivity_cevap" /> <Button android:id="@+id/button" android:text="@string/sf_subactivity_cevap_ver" android:onclick="cevapver" /> </LinearLayout> Bu görünümde textview ve button bulunmaktadır. Aynı süreçler bu layout içinde geçerlidir. Şimdi string.xml dosyasına bakalım. Bütün form elemanlarının string değerleri bu xml dosyamız içerisindedir. <?xml version=".0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <string name="app_name">subactivities</string> <string name="sf_subactivity">sub Activity Cagır</string>

<string name="tx_subactivity">sub Activity iã indesiniz</string> <string name="sf_subactivity_cevap">sub Activity Sorgula</string> <string name="tx_subactivity_cevap">hayä±rdä±r GenÃ???</string> <string name="sf_subactivity_cevap_ver">cevap Ver</string> <string name="action_settings">settings</string> </resources> Ekran görünümleri Hesap makinesi programı MainActivity.java package com.example.calculator; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview; public class MainActivity extends ActionBarActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final EditText sayi = (EditText)findViewById(R.id.sayi); final EditText sayi2 = (EditText)findViewById(R.id.sayi2); final TextView sonuc = (TextView)findViewById(R.id.sonuc);

Button topla = (Button)findViewById(R.id.btntopla); Button cıkar = (Button)findViewById(R.id.btncikar); Button carp = (Button)findViewById(R.id.btncarp); Button bol = (Button)findViewById(R.id.btnbol); Button yuzde =(Button)findViewById(R.id.btnyuzde); Button temizle = (Button)findViewById(R.id.btntemizle); topla.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub float sayifloat = Float.parseFloat(sayi.getText().toString()); float sayi2float = Float.parseFloat(sayi2.getText().toString()); sonuc.settext(string.valueof(sayifloat+sayi2float)); ); cıkar.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { float sayifloat = Float.parseFloat(sayi.getText().toString()); float sayi2float = Float.parseFloat(sayi2.getText().toString()); sonuc.settext(string.valueof(sayifloatsayi2float)); ); carp.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub float sayifloat = Float.parseFloat(sayi.getText().toString()); float sayi2float = Float.parseFloat(sayi2.getText().toString()); sonuc.settext(string.valueof(sayifloat*sayi2float)); ); bol.setonclicklistener(new View.OnClickListener() { public void onclick(view v) {

// TODO Auto-generated method stub float sayifloat = Float.parseFloat(sayi.getText().toString()); float sayi2float = Float.parseFloat(sayi2.getText().toString()); sonuc.settext(string.valueof(sayifloat/sayi2float)); ); yuzde.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub float sayifloat = Float.parseFloat(sayi.getText().toString()); float sayi2float = Float.parseFloat(sayi2.getText().toString()); sonuc.settext(string.valueof(sayifloat*sayi2float/00)); ); temizle.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // TODO Auto-generated method stub sayi.gettext().clear(); sayi2.gettext().clear(); sonuc.settext(" "); ); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true; public boolean onoptionsitemselected(menuitem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getitemid(); if (id == R.id.action_settings) { return true;

return super.onoptionsitemselected(item); Oncreate metodunda butonlar textview lar ve sonuç etiketlerinmizin tanımlanmalarını yapıyoruz. Ve bunları final EditText sayi = (EditText)findViewById(R.id.sayi); Ile layout da eklediğimiz form elemanlarını findviewbyid diyerek eşleştirmesini yapıyoruz topla.setonclicklistener(new View.OnClickListener() ile topla işlmeninde neler yapılacağını belirtiyoruz. Bu işlemler çıkarma, bölme çaprma temizle işlemleri içinde geçerlidir. Ve bundan sonra da her seferinde public void onclick(view v) metodu override edilip bu işlemler için hangi fonksiyonların kullanıcağını belirliyoruz. Ekran görünümünü Inceleyelim <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.example.calculator.mainactivity" > /> <TextView android:id="@+id/textview" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="28dp" android:layout_margintop="2dp" android:text="@string/birincisayi" android:textappearance="?android:attr/textappearancelarge" <EditText android:id="@+id/sayi" android:layout_alignleft="@+id/textview"

android:layout_below="@+id/textview" android:layout_margintop="2dp" android:ems="0" android:text="@string/sayi"> <requestfocus /> </EditText> /> <TextView android:id="@+id/textview2" android:layout_alignleft="@+id/sayi" android:layout_below="@+id/sayi" android:layout_margintop="8dp" android:text="@string/ikincisayi" android:textappearance="?android:attr/textappearancelarge" <EditText android:id="@+id/sayi2" android:layout_alignleft="@+id/textview2" android:layout_below="@+id/textview2" android:ems="0" android:text="@string/sayi2" /> <Button android:id="@+id/btntopla" android:layout_alignparentleft="true" android:layout_centervertical="true" android:layout_marginleft="20dp" android:text="@string/topla" /> <Button android:id="@+id/btncikar" android:layout_alignbaseline="@+id/btntopla" android:layout_alignbottom="@+id/btntopla" android:layout_marginleft="4dp" android:layout_torightof="@+id/btntopla" android:text="@string/cikar" /> <Button android:id="@+id/btnyuzde" android:layout_alignleft="@+id/btncikar" android:layout_below="@+id/btncikar" android:text="@string/yuzde" /> <Button

android:id="@+id/btntemizle" android:layout_alignbaseline="@+id/btnyuzde" android:layout_alignbottom="@+id/btnyuzde" android:layout_alignleft="@+id/btncarp" android:text="@string/temizle" /> <Button android:id="@+id/btncarp" android:layout_above="@+id/btnyuzde" android:layout_marginleft="5dp" android:layout_torightof="@+id/btnyuzde" android:text="@string/carp" /> <Button android:id="@+id/btnbol" android:layout_above="@+id/btntemizle" android:layout_marginleft="20dp" android:layout_torightof="@+id/btntemizle" android:text="@string/bol" /> <TextView android:id="@+id/sonuc" android:layout_alignleft="@+id/sayi2" android:layout_below="@+id/btnyuzde" android:layout_margintop="2dp" android:text="@string/sonuc" /> </RelativeLayout> String.xml dosyamıza göz atalım <?xml version=".0" encoding="utf-8"?> <resources> <string name="app_name">calculator</string> <string name="hello_world">hello world!</string> <string name="action_settings">settings</string> <string name="birincisayi">birinci Sayıyı Giriniz</string> <string name="ikincisayi">ä kinci Sayıyı Giriniz</string> <string name="sayilar"></string> <string name="topla">+</string> <string name="bol">/</string> <string name="carp">*</string> <string name="yuzde">%</string> <string name="temizle">c</string> <string name="sonuc">sonuc :</string> <string name="sayi"></string> <string name="sayi2"></string>

<string name="cikar">-</string> </resources> Var olan tek layout un görünümü de aşağıdaki gibdir. BasitForm Örneği 2 adet java classımız var Birtanesi book java adından bilgileri tutun class. Diğer main classımız da işlemleri yapan class tır. Aynı zamanda book class ına da erişim sağlayabilir.

Book. Java package com.example.basitform; public class Book { private String isim=""; private String soyisim=""; public String getname(){ return isim; public void setname(string isim){ this.isim= isim; public String getsoyisim(){ return soyisim; public void setsoyisim(string Soyisim){ this.soyisim= soyisim; BasitFormActivity.Java package com.example.basitform; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; public class BasitFormActivity extends ActionBarActivity { Book b = new Book(); protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_basit_form); Button kaydet = (Button)findViewById(R.id.button); kaydet.setonclicklistener(onsave); { private View.OnClickListener onsave = new View.OnClickListener() public void onclick(view v) {

// TODO Auto-generated method stub EditText isim = (EditText)findViewById(R.id.editText); EditText soyisim = (EditText)findViewById(R.id.editText2); b.setname(isim.gettext().tostring()); b.setname(soyisim.gettext().tostring()); ; public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.basit_form, menu); return true; public boolean onoptionsitemselected(menuitem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getitemid(); if (id == R.id.action_settings) { return true; return super.onoptionsitemselected(item); Button kaydet = (Button)findViewById(R.id.button); kaydet.setonclicklistener(onsave); işlemi ile buttuon kaydetme işlemi yapar. SetOnClickListener buton a basılınca ne yapılacağını belirler. Burda onsave metodu buton a basılınca çalışacaktır. Yani setonclicklistener hangi metodu çalıştıracağını belirtiyor. Burada yaptığımız işlem; Activity çalıştığında kitap sınıfından bir nesne yarattık. Buton nesnemizi findviewbyid() metodu ile tasarım bölümünde yarattığımız butona bağladık ve listener ile butona tıklandığında yapacağı işleri belirledik. Listener içinde ise iki tane edittext i yine findviewbyid ile tasarımdaki edittext ler ile bağladık. Daha sonra bu iki edittext içerisindeki değerleri model nesnemiz olan kitap içine yazdık.

Basit form uygulamamız bu kadar, Eğer uygulamanızın ikonunu değiştirmek istiyorsanız. 48 48 pixellik bir resim bulup, bu resmi drawable/ altına attıktan sonra AndroidManifest.xml dosyamızda android:icon= @drawable/ic_launcher bölümündeki ic_launcher bölümünü kendi resim dosyanız ile değiştirmeniz gerekiyor. Activity_basit_form.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.example.basitform.basitformactivity" > <TextView android:id="@+id/textview2" android:text="@string/isim" /> <TextView android:id="@+id/textview" android:layout_alignleft="@+id/textview2" android:layout_below="@+id/textview2" android:layout_margintop="26dp" android:text="@string/soyisim" /> <EditText android:id="@+id/edittext" android:layout_alignbaseline="@+id/textview2" android:layout_alignbottom="@+id/textview2" android:layout_torightof="@+id/textview" android:ems="0" android:text="@string/edtisim" > <requestfocus /> </EditText> <EditText android:id="@+id/edittext2" android:layout_alignbaseline="@+id/textview"

android:layout_alignbottom="@+id/textview" android:layout_centerhorizontal="true" android:ems="0" android:text="@string/edtsoyisim" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_below="@+id/edittext2" android:layout_margintop="5dp" android:layout_torightof="@+id/textview2" android:text="@string/btnkaydet" /> </RelativeLayout> burada 3 satırlık form elde ettik. İlki kitap ismi, ikincisi yazarı ve üçüncüsü de kaydet butonu olacak. Şimdi programımızı Android Application olarak çalıştıralım. Eğer daha önceden emülator eklemediyseniz. Window->AVD Manager bölümünden ekleyebiliriz. New dedikten sonra Name bölümüne emülator ismi, target bölümüne emülatorun çalışacağı android sürümü, ve gerekli alanları doldurduktan sonra Edit AVD diyebiliriz. String.Xml <?xml version=".0" encoding="utf-8"?> <resources> <string name="app_name">basitform</string> <string name="hello_world">hello world!</string> <string name="action_settings">settings</string> <string name="isim">isim :</string> <string name="soyisim">soyisim :</string> <string name="edtisim"></string> <string name="edtsoyisim"></string> <string name="btnkaydet">kaydet</string> </resources>

Android ile Sesi Yazıya Çevirme Bu çevrimde asıl işi yapacak olan RecognizerIntent intent idir. Uygulama başladığındarecognizerintent.action_recognize_speech intentini ses tanıma işlemi (action)

yapacak şekilde tetikleyecek. Tetiklenen INTENT kullanıcıdan birşeyler söylemesini bekler, kullanıcı konuşup sustuktan sonra da konuştuklarının yazıya çevrilmiş haliniarray şeklinde bize verecektir. Bu Array olası doğru sonuçları içeriyor, o nedenle kullanıcının asıl demek istediği Array ın herhangi bir elemanı olabilir fakat; daha çok baştaki elemanlar asıl demek isteneni içerir. Uygulamamızda bütün elemanları sınayacağız. MainActivity.java dosyası içerisinde çevrim INTENT ini başlatan kod bloğu: 2 3 4 5 6 7 private void CeviriBaslat() { Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); i.putextra(recognizerintent.extra_language, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); i.putextra(recognizerintent.extra_prompt, "Haydi birşeyler söyle!"); startactivityforresult(i, check); Başlattığımız INTENT ten gelen sonuçları işleyeceğimiz metodumuz: onactivityresult(int requestcode, int resultcode, Intent data) bu metod içerisinde sonuçları ListView e iliştiriyoruz. Eğer kullanıcı android evreni demiş isehttp://www.androidevreni.com un açılmasını sağlıyoruz. 2 3 4 5 6 7 8 9 0 2 3 4 5 protected void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == check && resultcode == RESULT_OK) { results = data.getstringarraylistextra(recognizerintent.extra_results); lv.setadapter(new ArrayAdapter<String>(this, android.r.layout.simple_expandable_list_item_, results)); // eğer android evreni demiş ise; android evrenine gitsin :). for (int i = 0; i < results.size(); i++) { if (results.get(i).tolowercase().equals("android evreni")) { String url = "http://www.androidevreni.com"; Intent ii = new Intent(Intent.ACTION_VIEW); ii.setdata(uri.parse(url)); startactivity(ii); break; Daha başka sınamalar yaparak uygulamanın başka işler de yapmasını sağlayabilirsiniz. Mesela Flash ı açtırın, rehberdeki birilerini aratın, müzik çaldırın daha neler neler :). Proje dosyalarının tam içeriği aşağıdaki gibidir. activity_main.xml dosyası : 2 3 4 5 6 7 8 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin"

9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_weight="" > </ListView> <Button android:id="@+id/bcevir" android:layout_width="match_parent" android:text="konuş" /> </LinearLayout> MainActivity.java dosyası: 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 26 27 28 29 30 3 32 33 34 35 36 37 38 39 40 4 42 package com.example.androidevrenisesceviryazi; import java.util.arraylist; import android.app.activity; import android.content.intent; import android.net.uri; import android.os.bundle; import android.speech.recognizerintent; import android.view.menu; import android.view.view; import android.widget.arrayadapter; import android.widget.button; import android.widget.listview; public class MainActivity extends Activity { int check = 000; ListView lv; Button bcevir; ArrayList<String> results; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); lv = (ListView) findviewbyid(r.id.listview); bcevir = (Button) findviewbyid(r.id.bcevir); bcevir.setonclicklistener(new View.OnClickListener() { ); CeviriBaslat(); public void onclick(view arg0) { CeviriBaslat(); private void CeviriBaslat() { Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

43 44 45 46 47 48 49 50 5 52 53 54 55 56 57 58 59 60 6 62 63 64 65 66 67 68 69 70 7 72 73 74 75 76 77 78 79 80 i.putextra(recognizerintent.extra_language, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); i.putextra(recognizerintent.extra_prompt, "Haydi birşeyler söyle!"); startactivityforresult(i, check); protected void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == check && resultcode == RESULT_OK) { results = data.getstringarraylistextra(recognizerintent.extra_results); lv.setadapter(new ArrayAdapter<String>(this, android.r.layout.simple_expandable_list_item_, results)); // eğer android evreni demiş ise; android evrenine gitsin :). for (int i = 0; i < results.size(); i++) { if (results.get(i).tolowercase().equals("android evreni")) { String url = "http://www.androidevreni.com"; Intent ii = new Intent(Intent.ACTION_VIEW); ii.setdata(uri.parse(url)); startactivity(ii); break; public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true; Android Titreşim Sınıfı ve Kullanımı Merhaba, bu dersimizde Android teki Vibrator (titreştirici olarak Türkçeye çevirebiliriz) sınıfından bahsedicem ve uygulamalı bir örnek ile kullanımını anlatmaya çalışıcağım. Vibrator Sınıfı Bu sınıf cihazdaki titreştiriciyi çalıştırır. Eğer başlattığımız bir işlem biterse ya da bu işlemden çıkılırsa bu işlemle birlikte başlattığımız titreşim de duracaktır. Cihazdaki titreştiricinin durumunu öğrenmek için şu komutu kullanmamız yeterli olacaktır. getsystemservice(context.vibrator_service); Android teki vibratöre ulaşabilmemiz için AndroidManifest.xml dosyasına şu izin kodunu eklememiz gerekir: <uses-permission android:name="android.permission.vibrate"/> Peki izin aldık, durumunu da sorduk, titreşimi nasıl başlatıcaz?

Titreşimi başlatmak için tek yapmanız gereken öncelikle bir Vibrator objesi oluşturmak sonra da vibrate(süre) komutunu kullanmaktır. Süreyi ms cinsinden giriniz. Uygulama örneğimizi kodlamaya başlayalım. Öncelikle arayüzü tasarlayalım. Bir butonumuz ve altında da bir tane fotoğraf olsun. Arkaplan rengi griye yakın bir renk olsun. Bunlar için aşağıdaki koduactivity_main.xml dosyasına ekleyiniz. 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 26 27 28 29 30 3 32 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#d2d2d2" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > <Button android:id="@+id/btn_titresim" android:layout_width="20dp" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:layout_margintop="0dp" android:background="#b8bb4" android:onclick="baslat_fonk" android:text="titreşim" android:textcolor="#ffffff" /> <ImageView android:id="@+id/imageview" android:layout_below="@+id/btn_titresim" android:layout_centerhorizontal="true" android:layout_margintop="20dp" android:src="@drawable/arkaplan" /> </RelativeLayout> Burda kullandığım fotoğrafı kodları indir linkinden indirdiğiniz dosyada bulabilirsiniz. Bu adımdan sonra AndroidManifest.xml dosyasına aşağıdaki izin kodunu ekliyoruz. <uses-permission android:name="android.permission.vibrate"/> Artık MainActivity.java dosyasının kodlarını yazmaya başlayabiliriz. MainActivity.java kodlar: package com.androidevreni.titresimandroid; 2 3 import android.os.bundle; 4 import android.os.vibrator; 5 import android.app.activity; 6 import android.content.context; 7 import android.view.menu; 8 import android.view.view; 9 import android.widget.button; 0 public class MainActivity extends Activity {

2 3 4 5 6 7 8 9 20 2 22 23 24 25 26 27 28 29 30 3 32 33 protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Button titrestir = (Button) findviewbyid(r.id.btn_titresim); titrestir.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { Vibrator vib = (Vibrator) getsystemservice(context.vibrator_service); vib.vibrate(500); ); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true; Titreşim kısmı için açıklamaları yazının başında yaptım. Buton ve ona ait setonclicklistener metodunu daha önceki derslerimizde anlatmıştım. Kolay gelsin. Seek Bar ve Kullanımı Seekbar Nedir? Seekbar aslında bir işlem çubuğunun(progress bar) biraz genişletilmiş halidir. Bir işlem çubuğuna kaydırılabilir ya da sürüklenebilir bir nesne eklersek bir Seek bar elde etmiş oluruz. Kullanıcı seek bar ın işlem seviyesini ve durumunu dokunma ile değiştirebilir. Bunların bir max değeri olur, bu değeri geliştirici layout dosyasından belirleyebilir. Bu değerin değişimine göre geliştirici uygulamasında yapmak istediği şeyleri yapar veya yaptırır. Peki kullanıcı tarafından Seekbar ın işlem seviyesinini(level) değiştirildiğini nasıl anlayacağız? Burda imdadımıza OnSeekBarChangeListener arayüzü yetişiyor. Bu arayüz progress level(işlem seviyesi) değiştirildiğinde kod için bazı metodları çağırıcak, biz de bu metodlar içinde çalıştırmak istediğimiz kodlarımızı çalıştırıcağız. Seekbar sınıfı ile ilgili daha ayrıntılı bilgiye şu linkten ulaşabilirsiniz. OnSeekBarChangeListener

OnSeekBarChangeListener arayüzünün bu derste kullanacağımız 3 metodunun aşağıda özetle ne işe yaradıklarını verdim. Public Methods abstract onprogresschanged(seekbar seekbar, int progress, boolean fromuser) void Bu metod seek bar ın seviyesi değiştirildiğinde çağrılır. abstract onstarttrackingtouch(seekbar seekbar) void Bu metod kullanıcı seek bar ın seviyesini değiştirmeye başladığı anda çağrılır. abstract onstoptrackingtouch(seekbar seekbar) void Bu metod kullanıcı seek bar ı değiştirmeyi bıraktığı anda çağrılır. OnSeekBarChangeListener arayüzü hakkında daha detaylı bilgiye buradanulaşabilirsiniz. Bu gerekli açıklamalardan sonra artık uygulama örneğimize geçebiliriz. Uygulama Örneği Uygulama örneğimizde 3 tane seek bar kullanarak arkaplan rengini değiştirmeye çalışıcaz. Seek barların her biri red, green ve blue renk kodlarından birini temsil edecek. Yani arkaplan rengini değiştirmek için RGB kodu kullanacaz. Arayüz Uygulamamızın arayüzünde 3 tane seek bar olsun. Ve seek barların maksimum alabileceği değer 255 olsun. Çünkü red,green ve blue renk kodları 0 ila 255 arasında değişir. Aşağıdaki kodları alıp activity_main dosyanıza yapıştırın. activity_main.xml dosyamız : 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 <?xml version=".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" android:id="@+id/myscreen" > <SeekBar android:id="@+id/bar_red" android:layout_width="fill_parent" android:max="255" android:progress="0"/> <SeekBar android:id="@+id/bar_green" android:layout_width="fill_parent"

9 android:max="255" 20 android:progress="0"/> 2 <SeekBar 22 android:id="@+id/bar_blue" 23 android:layout_width="fill_parent" 24 25 android:max="255" 26 android:progress="0"/> 27 </LinearLayout> Activity (Java Kodumuz) Burada arayüze eklediğimiz seek barları tanımlayacaz. Seek barlara listener ekleyecez ve seek barlardan herhangi biri değiştirildiğinde arkaplaniguncelle() adlı metodumuzu çağıracağız. Bu metodla seekbarların değerlerini alıp arkaplan rengini değiştiricez. MainActivity.java dosyamız 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 26 27 28 29 30 3 32 33 34 35 36 37 38 39 40 4 42 43 44 45 package com.eeecoder.seekbackgroundcolor; import android.os.bundle; import android.app.activity; import android.widget.linearlayout; import android.widget.seekbar; public class MainActivity extends Activity { private int seekbarr, seekbarg, seekbarb; SeekBar red_bar, green_bar, blue_bar; LinearLayout mscreen; /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mscreen = (LinearLayout) findviewbyid(r.id.myscreen); red_bar = (SeekBar) findviewbyid(r.id.bar_red); green_bar = (SeekBar) findviewbyid(r.id.bar_green); blue_bar = (SeekBar) findviewbyid(r.id.bar_blue); arkaplaniguncelle(); red_bar.setonseekbarchangelistener(seekbarchangelistener); green_bar.setonseekbarchangelistener(seekbarchangelistener); blue_bar.setonseekbarchangelistener(seekbarchangelistener); private SeekBar.OnSeekBarChangeListener seekbarchangelistener = new SeekBar.OnSeekBarChangeListener() { public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) { // TODO Auto-generated method stub arkaplaniguncelle(); public void onstarttrackingtouch(seekbar seekbar) { // TODO Auto-generated method stub

46 47 48 49 50 5 52 53 54 55 56 57 58 59 60 6 62 63 64 65 public void onstoptrackingtouch(seekbar seekbar) { // TODO Auto-generated method stub ; private void arkaplaniguncelle() { seekbarr = red_bar.getprogress(); seekbarg = green_bar.getprogress(); seekbarb = blue_bar.getprogress(); mscreen.setbackgroundcolor( 0xff000000 + seekbarr * 0x0000 + seekbarg * 0x00 + seekbarb ); Uygulama örneğimizin çalışması için herhangi bir izne gerek olmadığıdan AndroidManifest.xml dosyasına herhangi bir izin eklemenize gerek yoktur. AndroidManifest.xml dosyamız: 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 23 24 25 26 27 <?xml version=".0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.eeecoder.seekbackgroundcolor" android:versioncode="" android:versionname=".0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="8" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.eeecoder.seekbackgroundcolor.mainactivity" 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> </manifest> ListActivity ile Menü Oluşturma ListActivity Nedir?

ListActivity android te bulunan tamamen bir liste oluşturmak için kullanılan bir aktivitedir. Yapısında bir tane liste içerir. Bu liste komplex ve çok uzun olabilir, alt dallanmalar olabilir. Bu tamamen geliştiriciye kalmıştır. Bu yüzden uygulamamızı kodlarken direk ListActivity ile extend edeceğiz. Bu bize direk olarak bir listeyi ve bu sınıfın içerdiği metodları kullanmamızı sağlayacak. Array Nedir? Array dizi demektir, dizide bazı datalar saklayacağız. Bunlar herhangi bir sayı ya da bir karekter dizisi olabilir. Biz listemizin elemanlarını bir string array de saklayacağız. ArrayAdapter Nedir? ArrayAdapter Array deki elemanları listeye eklenecek şekilde adapte(uyumunu sağlar) eder. ListAdapter Nedir? ListAdapter ArrayAdapter dan aldığı datayı/elemanları listeye ekler. Liste adaptörü setlistadapter komutu ile oluşturulur. Evet bu kısa ve gerekli açıklamalardan sonra uygulamamızı kodlamaya geçebiliriz. activity_main dosyamızda herhangi bir ek yapmamız gerek yoktur çünkü onu kullanmayacağız. Dediğim gibi ListActivity zaten yapısında bir listeyi taşıyor bu yüzden bizim ayrıca gui de yeni liste eklememize gerek yoktur. MainActivity.java(bu arada bu tutorial için ben bu dosyaya Menu.java ismini verdim.) dosyasına yazmamız gereken kodlar aşağıda verilmiştir : 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 20 2 22 package com.androidevreni.listviewtutorial; import android.app.listactivity; import android.os.bundle; import android.view.view; import android.widget.arrayadapter; import android.widget.listview; import android.widget.toast; public class Menu extends ListActivity { String sehirler[] = {"İzmir","Şanlıurfa","Ankara","İstanbul","Ağrı"; protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); setlistadapter(new ArrayAdapter<String>(Menu.this, android.r.layout.simple_list_item_, sehirler));

23 24 25 26 27 28 29 30 3 32 33 34 35 36 37 38 39 40 4 42 43 44 protected void onlistitemclick(listview l, View v, int position, long id) { // TODO Auto-generated method stub super.onlistitemclick(l, v, position, id); if(position==0){ Toast.makeText(getApplicationContext(), "İzmir", Toast.LENGTH_SHORT).show(); if(position==){ Toast.makeText(getApplicationContext(), "Şanlıurfa", Toast.LENGTH_SHORT).show(); if(position==2){ Toast.makeText(getApplicationContext(), "Ankara", Toast.LENGTH_SHORT).show(); if(position==3){ Toast.makeText(getApplicationContext(), "İstanbul", Toast.LENGTH_SHORT).show(); if(position==4){ Toast.makeText(getApplicationContext(), "Ağrı", Toast.LENGTH_SHORT).show(); Java dosyamızda göreceğiniz gibi listedeki hangi şehire tıklanırsa/touch edilirse o şehrin ismini Toast sınıfını kullanarak ekrana mesaj/bildirim olarak yazdırıyoruz. Toast sınıfı ile mesaj gösterimini daha önceki yazılarımda anlatmıştım. Tekrar bakmak isteyenler için: Toast: Kullanıcıya Mesaj Gösterme veya Geri Bildirim Mesajı Android Spinner kullanımı Spinner açılır liste şeklinde seçim olanağı sağlar. Spinner ın içerisini veri tabanında çekilen verilerle veya oluşturduğumuz diziler gibi static veriler ile doldurabiliriz. Yazdığım kodlarda spinner ın içerisini xml dosyasında oluşturduğum dizi ile dolduruyorum.yeni bir xml dosyası oluşturup içerisine aşağıdaki diziyi yaratıyoruz. 2 3 4 5 6 7 8 9 <string-array name="dizi"> <item>pazartesi</item> <item>salı</item> <item>çarşamba</item> <item>perşembe</item> <item>cuma</item> <item>cumartesi</item> <item>pazar</item> </string-array> Daha sonra spinner ı kullanacağımız layout a spinner ekliyeceğiz. activity_main.xml 2 3 4 5 6 7 8 <Spinner android:id="@+id/spinner" android:layout_gravity="fill_horizontal" android:drawselectorontop="true" > </Spinner>

Şimdi class içinde kodlarımızı yazmaya başlıyoruz ilk olarak Spinner nesnesi oluşturuyoruz.ve bunu class değişkeni olarak yapmanızı öneririm.daha sonra yazıdığım kodlar şu şekilde; spinner = (Spinner) findviewbyid(r.id.spinner); ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple_spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter); 2 3 4 ilk satırda spinner ı tanıtıyoruz. İkinci satırda bir arrayadapter olusturup veriyi çekiyoruz. Arrayadapter in ilk paremetresi içerik yani context ikincisi çekiceğimiz veri,ücüncü parametre ise spinner ın görüntüsüdür. Ücüncü satırda ise spinner ın dropdown halindeki görüntüsünü belirliyoruz.son satırdada setadapter ile adapterimizi spinnera yüklüyoruz.kodların tamamı aşağıdaki gibidir. 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 public class MainActivity extends Activity { Spinner spinner; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); spinner = (Spinner) findviewbyid(r.id.spinner); ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple _spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown _item); spinner.setadapter(adapter); spinner.setonitemselectedlistener(new OnItemSelectedListener() { public void onitemselected(adapterview<?> arg0, View arg, int arg2, long arg3) { Log.i("uyarı",String.valueOf(arg2)); public void onnothingselected(adapterview<?> arg0) { );