İÇİNDEKİLER V İÇİNDEKİLER 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? 4 Kaynak Kodu 4 2 MERHABA DÜNYA 7 Android Nedir? 7 Android le Beraber Gelen Yerel (Native) Uygulamalar 9 Android SDK ile Neler Yapabilirsiniz? 9 Konum Bazlı İşlemler 10 Veritabanı İşlemleri 10 Grafik İşlemleri 11 Kamera ve Sensör İşlemleri 11 Arkaplan İşlemleri 11 Dalvik Virtual Machine (Sanal Makine) 12 Gelecekte Android 13 İlk Android Uygulamanız 14 Java Development Kit (JDK) 15 Eclipse 16 Android SDK 16 Android Development Tools (ADT) Eklentisi 18 3 UYGULAMA ELEMANLARI VE AKTİVİTE YAPISI 31 Temel Android Uygulama Elemanları 31 Activity (Aktivite) 32 Intent (Niyet) 32 Service (Servis) 34 Broadcast Receivers (Yayın Algılayıcılar) 34
VI ANDROID PROGRAMLAMA Content Providers (İçerik Sağlayıcılar) 35 Application Context (Uygulama Ortamı) 36 Manifest Dosyası (AndroidManifest.xml) 36 Aktiviteler ve Uygulama Hayat Döngüleri 41 Uygulama Öncelikleri 44 Resources (Kaynaklar) 45 String Resources 46 Color Resources (Renk Kaynakları) 48 Dimension Resources (Ölçü Kaynakları) 51 Drawable Resources (Çizim Kaynakları) 52 Layout Resources (Düzenleme Kaynakları) 53 R.java Dosyası 55 4 KİM NEREDE? 59 Proje Ekranları 60 Giriş Ekranı 60 Menü Ekranı 60 Harita Ekranı 61 Kimler Ekranı 61 Profil Ekranı 62 Ayarlar Ekranı 62 Proje Yapısı 63 5 KULLANICI ARAYÜZLERİ 65 Arayüz Geliştirme 66 Tanımsal Ekran Tasarımı 69 Programatik Ekran Tasarımı 74 View 79 Layout 83 Ortak View Özellikleri 84 layout_width ve layout_height 84
İÇİNDEKİLER VII layout_weight 85 layout_gravity 85 gravity 87 text 88 LinearLayout 88 TableLayout 89 RelativeLayout 91 FrameLayout 93 Menu 94 Options Menu (Seçenekler Menüsü) 94 Context Menu 97 Debug (Hata Ayıklama) ve Loglama 105 Fragment (Parça) 108 Fragment Hayat Döngüsü 109 Fragment Oluşturma 111 Kim Nerede 125 Giriş Ekranı 125 6 INTENT KAVRAMI VE YAYIN ALGILAYICILAR 131 Adapters (Adaptörler) 132 ArrayAdapter 133 SimpleCursorAdapter 138 Dialogs (Diyalog Ekranları) 139 Alert Dialog (Uyarı Diyaloğu) 140 Progress Dialog (İlerleme Durumu Diyaloğu) 144 Custom Dialog (Özel Diyalog) 145 Intent Kavramı ve Kullanım Amaçları 151 Activity - Intent İlişkisi 152 Intent Bileşenleri ve Intent Çözümleme 157 Component Name 157 Action 158
VIII ANDROID PROGRAMLAMA Data 158 Extra 158 Category 158 Intent Filter 158 Aktivitelerden Sonuç Döndürme 160 Broadcast - Intent İlişkisi 162 Broadcast Gönderme 162 Broadcast Dinleme 164 ActionBar 166 Kim Nerede 174 Menü Ekranı 175 7 PREFERENCES (TERCİHLER) VE DOSYA YÖNETİMİ 181 Durum Bilgisi Kaydetme 182 Shared Preferences 183 Preference Framework 191 Preference Fragment 205 Preference Header 205 Dosya Yönetimi 208 İç Sistem Belleği 208 Dış Sistem Belleği 210 Kim Nerede 214 Ayarlar Ekranı 215 8 VERİTABANI YÖNETİMİ VE CONTENT PROVIDERS (İÇERİK SAĞLAYICILAR) 225 Veritabanı Yönetimi 226 SQLite 226 Cursor 230 Content Values 231 Query (Sorgulama) 233 Insert (Ekleme) 236
İÇİNDEKİLER IX Update (Güncelleme) 236 Delete (Silme) 237 Content Providers (İçerik Sağlayıcılar) 240 MIME Type 242 Android Content Provider Uygulamaları 244 Loader Kavramı 245 Content Provider Oluşturma 248 Kim Nerede 260 Profil Ekranı 261 9 İNTERNET ERİŞİMİ, ARKAPLAN İŞLEMLERİ, SERVİS VE ALARM KAVRAMLARI 283 İnternet Erişimi 284 HTTP POST ve HTTP GET 291 Arkaplan İşlemleri 294 AsyncTask 296 Servis Kavramı 305 Intent Service 308 Alarmlar 311 Kim Nerede 323 Profil Ekranı 335 Kimler Ekranı 337 10 KONUMLANDIRMA VE HARİTA YÖNETİMİ 351 Konumlandırma 352 Mevcut Konum Algılama 354 Location Provider (Konum Sağlayıcı) Seçimi 360 Konum - Adres Çevrimleri ve Geocoder Kavramı 361 Harita Yönetimi 367 Maps API Key Oluşturma 368 MapView ile Harita Gösterme 370 Mevcut Konumu Harita Üzerinde Gösterme 374
X ANDROID PROGRAMLAMA Overlay Kavramı 379 MyLocationOverlay 385 ProximityAlert 387 Kim Nerede 391 Harita Ekranı 392 11 UYGULAMAYI ANDROID MARKET E YÜKLEME 423 Yayına Hazırlama 424 Gerekli Materyalleri Toplama 425 Key (Anahatar) Oluşturma 425 Icon (Simge) ve Screenshot (Ekran Görüntüsü) Hazırlama 425 Lisans Sözleşmesi 426 Uygulama Konfigürasyonu 426 Package Name 426 Log ve Debug Kodları 426 Proje Klasörleri 426 AndroidManifest.xml 426 Compatibility (Uyum) 427 Uygulamanın Derlenmesi 428 Sunucuların Hazırlanması 430 Test Süreci 430 Yayınlama Süreci 431 Publisher (Yayıncı) Hesabı Oluşturma 431 Android Developer Console (Geliştirici Konsolu) 434 Uygulamadan Para Kazanma 436 Paralı Uygulamalar 436 Reklamlar 437 Uygulama İçi Ücretlendirme 437