androıd

advertisement
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Android
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. 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 free-software 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. (Wikipedia : http://tr.wikipedia.org/wiki/Android_(i%C5%9Fletim_sistemi) )
Android İşletim Sistemi, İlk Çıktığı Tarihten İtibaren, Günümüze Kadar Bir Çok Değişikliğe Uğraşmıştır.
Bu Değişiklikler İki Farklı Güncelleme Şeklinde Çıkartılmıştır (Major Değişken Ana Sürüm Numaraları
Ve Minor, Değişken Son Hane Sürüm Numaraları ) Her Sürümün Farklı Bir API Numarası Vardır. Farklı
Android İşletim Sistemi Versionları (4.1.2 Gibi ) İçin, Geliştiriciler Daha Çok API Numarası Kullanır (API
17)
Android İşletim Sistemi Yapı Olarak, Kernel, Kütüphaneler, Uygulama SDK’ları Ve Uygulamalar’dan
Oluşmaktadır. Bu Ana Yapılar Kendi İçlerinde Bir Çok Alt Bölüme Ayrılabilmektedir.
Emir Civaş – i.am@live.jp
Sayfa 1
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Günümüzde Android Yazılımları Çoğunlukla Cep Telefonlarında Ve Tabletlerde Çalışmaktadırlar.
Ancak Mimarisi İzin Verirse, Linux OS Çalıştıran Çoğu Cihazda Android İşletim Sistemi
Çalışabilmektedir.
Android İşletim Sisteminin Sunduğu İmkanlar, İşletim Sisteminin Versionuna Göre Değişken Olup,
OS’a Uygun Uygulamalar Yazılarak Zenginleştirilebilir. Bu İşletim Sisteminde Kendine Ait Dosya
Sistemi & Katman Yapısı Vardır.
Bir Dosya Sistemi, Bir İşletim Sisteminin Çalıştırılacağı Sürücünün, Belli Bir Formatta Biçimlenmesidir.
Android İşletim Sistemi Linux Tamanlı Olduğu İçin, ExFAT, EXT2, EXT3, Yaffs2 Dosya Sistemlerine
Destek Vermektedir. (Bu Destek Tabii, Cihaz Üreticilerinin Tutumunada Bağlı Olarak Değişkenlik
Gösterebilir)
Temelde, İşletim Sisteminin Açılması 3 Evrenin Yüklenmesiyle Gerçekleşir
1 – Bootlader : Herşeyden Önce Çalışan, Kod
2 – Kernel : İşletim Sistemlerinde Olan Bir Yazılım (Yazılımlar Bütünü) Kernel Yazılımlar İle Donanımlar
Arasında Köprü Sağlayan Bir Yapıdır.
3 – OS : Bootloader ve Kernel Yüklendikten Sonra. İşletim Sistemi Yüklenmeye Başlanır.
Emir Civaş – i.am@live.jp
Sayfa 2
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Android’te Dosya Katman Yapısı Linux’un Katman Yapısında Benzer. Windows’taki C:\ Android İçin “/”
‘dir Ve Buna Root Denir.
Root Klasörünün Altında, Çeşitli Klasörler Vardır. (Bu Klasörler & Bu Klasörlerde Bulunan Dosyalar
Android İşletim Sistemi Versionu & Cihaz Üreticisine Göre Değişebilir). Bu Klasörlerden Bazıları :
/data
Kullanıcıların Yüklediği Uygulamalar & Yaptığı Ayarlar İle İlgili Verilerin Kutulduğu
Klasör
/mnt
Android OS’ta Bağlanan Mediaların Bulunduğu Klasör (Örn : /mnt/sdcard)
/system
Android OS’ta İşletim Sistemi İle İlgili Dosyaların Tutulduğu Klasör
Bunun Dışında “Root” Kelimesinin Başka Bir Anlamı Daha Vardır. Linux Evreninde Root, Tüm Yetkilere
Sahip Olan Kullanıcı Demek. Root Kullanıcısı, Dahil Olduğu Sistemdeki Tüm Dosyalara & Ayarlara
Erişim Yetkisi Olan Kullanıcı Demek. Çoğu Cihaz Üreticileri, Kendi İşletim Sistemi
Implementasyonlarında (Ki Bunlara ROM Denir) Root Kullanıcılarını Sistemde Erişilemez Hale
Getirmişlerdir.
Version
Kod Adı
Yayınlama Tarihi
API Level
Kullanım Oranı
1.5
Cupcake
30.04.2009
3
%0
1.6
Donut
15.09.2009
4
% 0.1
2.0 – 2.1
Eclair
26.10.2009
7
% 1.5
2.2
Froyo
20.05.2010
8
% 3.2
2.3 – 2.3.2
Gingerbread
06.12.2010
9
% 0.1
2.3.3 – 2.3.7
Gingerbread
09.02.2011
10
% 36.4
3.1
Honeycomb
10.05.2011
12
%0
3.2
Honeycomb
15.06.2011
13
% 0.1
4.0.x
IceCreamSandwich 16.12.2011
15
% 25.6
4.1.x
Jelly Bean
09.06.2012
16
% 29
4.2.x
Jelly Bean
13.11.2012
17
%4
5.0
Lime Pie
???
???
???
Yukarıdaki Tablo, Bugune Kadar Çıkan İşletim Sistemlerinin Version Numaralarını, Kod Adlarını,
Yayınlama Tarihlerini, OS’ların API Numaralarını ve 2013 Yılına Göre, Dünyadaki Kullanım Oranlarını
Göstermektedir.
1.5 – 2.3.7 Arası Versionlar Sadece Cep Telefonları İçindir. 3.0 – 3.1 – 3.2 Versionları Sadece Tablet
Bilgisayarlar İçindir.
Ama Ice Cream Sandwich’ten (4.0) Sonrasındaki Bütün Sürümler Tak Çatı Altında Toplanıp Hem
Telefon Hemde Tablet İçin Çıkartılmıştır.
Emir Civaş – i.am@live.jp
Sayfa 3
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Android Development
Android İşletim Sistemleri İçin Uygulama Geliştirmek Herşeyden Önce Zevkli Bir Uğraştır. Siz
Uygulama Geliştirirken, Sistemin Size Sunmuş Olduğu Olanakları Görüp Sevinirken, Bir Taraftan
Getirmiş Olduğu Kısıtlamaları Görünce Üzüleceksiniz 
Android İşletim Sisteminde, İşletim Sistemine Yazılan Uygulamalar APK Uzantılı Dosyalarda Tutulurlar.
Android
Package
Anlamına
Gelen
Bu
Dosya
Uzantısının
MIME
Türü
:
application/vnd.android.package-archive ‘dır.
Uygulama Mimarisinden Bahsetmek Gerekirse. Android İşletim Sistemindeki Uygulamalar, Java Bazlı
Yazılır. Fakat Android İşletim Sisteminde Yerleşik Bir Java VM’i Bulunmadığı İçin, Bunlar Dalvik VM
Denen Bir Sanal Makinenin Çalıştırabilmesi İçin Dex Byte Code’a Çevrilir.
Java İle Birlikte, Uygulamalarınızın Bir Bölümünü İhtiyacınıza Göre Native (C/C++) Şeklinde
Yazabilirsiniz. Fakat Bu Native Kod Olayını, Komple Uygulama Yazmak Olarak Düşünmeyin. Ama
Diyelim Ki Uygulamanızın Bir Bölümü Gerçekten Yüksek Performans’a İhtiyaç Duyuyor, VM’yerine
Native’de Çalışması Daha Mantıklı, Bu Durumlarda Faydalanabileceğiniz Bir Teknoloji.
Bunun Dışında Uygulamalarınız, Android İşletim Sisteminin Belirli Özelliklerini Kullanacaksa (Örn :
Bluetooth, Internet, Dosya Yazma, Kamera İle Resim Çekme, Mikrofon İle Ses Kaydı Vb..)
Uygulamanızın Gerekli İzinlere Sahip Olması Gerekmektedir. Bu Güvenlik Amacıyla Kurulmuş Bir
Mekanizmadır. Böylelikle, Ne Yaptığını Bilmediğiniz Bir Uygulamayı Kurmadan Önce, Kurulum
Ekranında Gereken İzinleri Görebilir, Uygulamayı Kurabilir Yada Kurulumu İptal Edebilirsiniz. (Bunun
Daha Sonra Detaylı Bir Şekilde Üstünde Duracağız)
Java İle Uygulama Geliştirme Konusunda Dönecek Olursak; Öncelikle Bilgisayarınıza Bir Android
Geliştirme Ortamı Kurmanız Gerekmektedir. Bu Geliştirme Ortamı Windows, Linux ve MAC’te
Kurulabiliyor.
İhtiyacınız Olanlar :
Java 6 JDK
Bir IDE (Eclipse Yada Android Studio)
IDE İçin Android Geliştirme PlugIn’i (ADT)
Ve Android SDK.
Günümüz İtibariyle AndroidStudio Çok Yeni Bir Ürün (Şu Anki Versionu 0.1.1) Dolayısıyla Eğitim Boyu
IDE Bazlı Oluşabilecek Hataların Önüne Geçmek İçin Eclipse Kullanacağız.
Java JDK + JRE Kurulum Yönergelerini Önceki Dökümanlardan Bulabilirsiniz.
Emir Civaş – i.am@live.jp
Sayfa 4
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Android Geliştirme Ortamı
http://developer.android.com/sdk/index.html Adresine Girin.
Android SDK’nın Son Sürümünün 32 Bit Versionunu İndirin.
Bu İndirdiğiniz Paket, Android Yazılım Geliştirmek İçin Gerekli Olan Bütün Araçları Size Sunan Bir
Paket. İçinde :





Eclipse (Google Rev) + ADT PlugIn
Android SDK Tools
Android Platform Tools
Son Android Srümü
Emulator İçin Son Android Sistem Imaji Mevcuttur.
İndirdiğiniz Dosya Bir Zip Dosyası. Bu Dosyayı Açtığınızda İçindeki Eclipse Klasörüne Girip, Eclipse’i
Çalıştırmaya Başlayın.
Öncelikle SDK Manager & AVD Manager’dan Bahsetmek İstiyorum.
SDK & AVD Manager’a Eclipse IDE Menusu > Window Seçeneği Altından
Erişebilirsiniz.
Emir Civaş – i.am@live.jp
Sayfa 5
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
SDK Manager : Çeşitli Araçları, Ve Android OS Sürümlerini (Ve Ek Özelliklerini) İndirmenize Yarayan
Bir Uygulama. Başka Hiç Bir İşlevi Yok. Farklı Sürümler İçin İndirdiğiniz Bu Dosyalar İse, Eclipse’te
Uygulama Geliştirmenize Ve Emulator İle İstediğiniz OS Sürümünü Çalıştırmanızı Sağlar.
Yüklemek İstediğiniz Paketlerin Checkbox’ını Seçip, Install Packages Diyebilirsiniz. Bir Android
Uygulaması Geliştirmek İçin, Buradaki Tüm Paketlerin Yüklenmesi Gerekmiyor Zaten. Hele Android
2.2 Altındaki Hiç Bir Sürümü Yüklemeyin Bile 
Tools Klasörünün Altındaki 3 Seçeneği Her Zaman Yükleyin.
Bir OS Sürümünde (API xx)
Mutlaka SD Platform’u Yükleyin. Eğer, Bu Sürümde Google Apps Ile İşiniz Olucaksa, Google APIs’ide
Yükleyin. Eğer Bu Sürümü Emulator’de Çalıştıracaksınız System Image’ida Yükleyin (ARM Olanı)
AVD Manager : AVD (Android Virtual Device) Manager, Geliştirdiğiniz Uygulamaları Test Etmek İçin,
SDK Manager İle Yüklediğiniz OS’lar İçin Emulator Cihazlar Oluşturmanızı Sağlar.
Emir Civaş – i.am@live.jp
Sayfa 6
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Eclipse Android Proje Yapısı
Eclipse’ten File > New > Android Project Menusunde İlerleyin. İlk Ekranda Proje İle İlgili Bilgileri
Gireceksiniz.
İlk Ekranı Geçtikten Sonra, Karşınıza Uygulamanızda Kullanılacak Simge Ve Activity Ekleme Ekranı
Gelecektir. (Activity : Android’te Uygulamanın Çalışan Bölümlerinin Yazıldığı Java Classları)
Emir Civaş – i.am@live.jp
Sayfa 7
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Daha Sonra İse Activity’nizin Layout Türünü Belirtiyorsunuz.
Ve Yeni Bir Activity & O Activity Çalıştığı Zaman Ekranda Gösterilecek Layout’u Oluşturuyorsunuz.
En Sonunda Finish’e Basıp Projemizi Oluşturuyoruz. Proje Oluştuğunda Eclipse Proje İçinde Bir Ağaç
Yapısı Oluşturuyor. Bu Ağaç Yapısındaki Çeşitli Dosyaların & Klasörlerin Ne Oldukları Aşağıda
Gösterilmiştir :
Emir Civaş – i.am@live.jp
Sayfa 8
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Emir Civaş – i.am@live.jp
Sayfa 9
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Eğer Hiçbir Değişiklik Yapmadan, Eclipse’ten Dosyayı Derleyip Çalıştırırsanız, Uygulama Bağladığınız
Cep Telefonunda, Yada Oluşturduğunuz Emulator’de Açılacak Ve XML’de Tanımlanan Arayüz
Karşınıza Gelecektir. Uygulamanızı Oluştururken, Android’in Görsel Elemanlarını (Bunlara Widget
Yada View Deniyor) Layout’unuzun Üzerinde Sürükleyip Bırakarak, İstediğiniz Tarzda Bir Arayüz
Oluşturabilirsiniz. Bu Viewlar, Farklı Amaçlar İçin Yaratılmış, Kendi İçinde Bir Çok Şekilde
Özelleştirilebilien Yapılardır.
Emir Civaş – i.am@live.jp
Sayfa 10
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Arayüz Tasarlarken, Kullanmış Olduğunuz Bu Sürükle Bırak Mekanizması, Aslında Sadece Bir Kısayol
Aracıdır. Çünkü Sizin Sürükle Bırak Yaparak, Layout’a Oluşturduğunuz Herşey, Arkaplanda Bir XML
Dosyası Olarak Tutulur (Evet, Layout Dosyaları Basit Birer XML Dosyasıdır  )
Layout’tan Birşeyler Ekleyip, Değişiklik Yapabileceğiniz Gibi, XML Dosyasından’da Direkt Bu
Değişiklikleri Yapabilirsiniz.
Layout’a Eklediğiniz Her View’a Android Otomatik Olarak Bir ID Atar. Bu Id’leri Her Zaman Kendiniz
Verin, Neyin Ne Olduğunu Bilin. Örneğin 3-5 Ekranlı, İçinde 25-30 Tane Metin Kutusunun Olduğu Bir
Projede Bu Metin Kutularının ID’leri textView1, textView2, textView3, ... textView29.. Şeklinde
Olacaktır. Neyin Ne Olduğunu, Bir Süre Sonra Hatırlamanız Neredeyse Mümkün Olmayacaktır. O
Yüzden ID’leri Kendiniz Verin 
Arayüze Eklemiş Olduğunuz Bir View Otomatik Olarak gen Klasöründeki R.java’ya İşlenir. R.java Özel
Bir Dosyadır. Sizin Sürükle Bırak Şeklinde Hazırladığınız UI Ekranlarındaki View’ları Koda Bağlamanıza
Yarar.
Emir Civaş – i.am@live.jp
Sayfa 11
29.06.2013 – Wissen Akademie Java / Android Ders Notları #5
Burada Gördüğünüz Gib, XML’ile Yaratılan Herşey R.java’da Sizin Verdiğiniz ID İle Tanımlanmış
Karşısındada Bir HexaDecimal Sayı Değeri Verilmiştir.
Projenize Eklediğiniz Resimler (Drawable Klasörüne Ekledikleriniz); drawable class’ı Altına;
Layout Dosyalarınız; layout class’ı Altına;
Layoutlara Eklediğiniz View’lar; id class’ı Altına;
Eklenir. Daha Sonra Bu ID’leri Kullanarak, Kodunuzun İçinden, Bu Arayüz Elemanlarına Ulaşabilirsiniz.
Yandaki Snippet’ta Bir TextView Instance’ı
Oluşturuldu (adı tw).
Ve Bu instance, R.java’nın id class’ı Altındaki
textView1 ID’sine Bağlandı.
Artık TextView Objesinin Methodlarını Kullanarak
UI View’ında Değişiklikler Yapılabilir.
Emir Civaş – i.am@live.jp
Sayfa 12
Download