Android İçin İlk Uygulamamız: Merhaba Android

Bu yazımızda geçen yazıda incelediğimiz uygulama bileşenlerinin ve olay yakalama metodlarının çok az bir kısmını kullanarak android uygulamalarına merhaba diyeceğiz. Çok basit bir uygulama olarak programda merhaba android yazısını çıktı olarak görmeye çalışacağız. Android geliştirme ortamınızın önceki yazımızda belirtildiği şekilde çalışmaya hazır ve uygulamaların nasıl çalıştığı hakkındaki yazımıza da göz atmış olduğunuzu varsayarak işe başlıyoruz.

Uygulamamızı geliştirmeye başlarken Android ADT Plugin eklenmiş Eclipse 3.5 Galileo 'yu başlatıyoruz. File--->New--->Android Project izleyerek yeni bir android projesi oluşturuyoruz. Ekran görüntüleri çalışma ortamına uyum sağlamakta zorlandığınız noktalarda yardımcı olabilir. Sonraki yazılarımızda bu kadar çok ekran görüntüsü vermeyi düşünmüyorum.
Burada bazı özellikleri belirlememiz gerekiyor. Uygulamamızın çalışacağı hedef platformu sdk paketimizde yüklü olanlar arasından seçiyoruz. Uygulama adı olarak uygulamamızın adını giriyoruz. Paket adı kısmı ise javadaki paketleme mantığıyla çalışan ve sınıflara erişimde kolaylık ve aynı zamanda dosya sistemi olarak hiyerarşik bir düzen sunan kelimeler girmemizi bekliyor. CreateActivity kısmında  uygulamamızın temel bileşenlerinden birisi olacak aktiviteye bir isim verilmesi gerektiğinin belirtildiği alandır.Her android uygulamasının en az bir activity'e sahip olması gerekir. Yukarıdaki gibi bir proje oluşturduktan sonra Finish butonuna tıklıyoruz ve artık projemizin oluşturulduğunu package explorerdan görebiliyoruz.Projeye başlamadan önce Project->Clean tıklayarak projemizde oluşmuş hataları temizliyoruz.
Yazacağımız uygulamada çok fazla android API kullanmayacak olsak da genel olarak package explorerda gördüğümüz tüm paketleri tanımlamaya çalışacağız.
Kod Kaynak Dosyaları(/src):  Verdiğimiz paket hiyerarşisine göre uygulama kodlarının dosyalar halinde bulunduğu klasördür.
Otomatik Oluşturulan Dosyalar(/gen): Oluşturduğumu activity için  java şablonunu içeren R.java dosyasını içerir. (Resource References) Bu dosya her proje oluşturulurken SDK tarafından oluşturulur ve res klasöründeki tüm kaynaklara referanslar içerir.
Android 1.5: Android kütüphanesidir.SDK tarafından uygulamada kullanılacak framework dosyaları ve tüm sınıflar buraya yüklenir.  Android.jar ağacı genişletilirse içerdiği tüm paketler ve sınıflar görülecektir.
Assets: Uygulamaya gömülü olarak dağıtmak istediğimiz paketleri buraya koyabiliriz. Şimdilik bu uygulama için herhangi bir ek pakete ihtiyacımız yok.
Kaynaklar(/res): Uygulama tarafından kullanılan tüm nesneler burada bulunurlar. Görsel ögelerin hepsi drawable klasörü altında, uygulamanın yerleşim (layout) düzeni layout altındaki main.xml dosyasında xml formatında, string , sabit değerler ve diğer değişkenler values altında toplanırlar.
Manifest Dosyası(AndroidManifest.xml): Manifest dosyası en önemli dosyalardan birisidir. Android build sistemi uygulama hakkındaki birçok önemli bilgiye bu xml dosyasından ulaşır. Uygulamanın çalışmasında izinlerde ve birçok konuda bu dosyada tutulan veriler kullanılır.

Şimdi yukarıdaki bilgileri de elde ettiğimize göre src klasörü altındaki activity koduna bakabiliriz.

package com.blogspot.androidgelistir;

import android.app.Activity;
import android.os.Bundle;

public class merhabaactivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


Yukarıda merhabaactivity.java dosyasının tam içeriği görüntülenmektedir. Paket ve import statementlarına java programlama dilinden alışık olduğumuzu düşünerek burayı açıklamadan geçiyorum.Buradan merhabaactivity sınıfının activity sınıfından türetilerek kullanıldığını anlıyoruz. onCreate() metodunun override edilerek kullanılabileceğini geçen yazımızda belirtmiştik ve burada da @Override annotation'ı  ile metodun yeniden yazıldığını görebilirsiniz. onCreate() metodu uygulama bellekte ilk defa oluşturulduğunda çalıştırılan bir metod olduğu için devamında türetilen sınıfa ait onCreate() metodunu çağırarak (bknz java super) eğer aynı uygulamadan çalışmakta olan kopyalar varsa o uygulama verilerini yeni oluşturulan uygulamada kullanmak için kullanılır.
setContentView(R.layout.main) satırı ile androidin ekran nesnelerini yerleştirirken layout altındaki main.xml dosyasını kullandığını söylemiştik. Burada  içerik görünümünü ve yerleşimi main.xml e göre yapılacak şekilde ayarlanıyor.
Şimdi de layout altındaki main.xml dosyasına bakalım.

Xml tanımlama başlığı her dosyada bulunması gereken bir satır olarak yine yerini almış. LinearLayout javadaki yerleşim stillerine benzer şekilde android üzerindeki layout türlerinden en basiti ve şu an için bize yeterli olanıdır. TextView ise görüntülenebilir ve düzenlenebilir text alanı sunan bir kontroldür. android:text="@string/hello" satırı bize TextView nesnesinin görüntüleyeceği text'in dışarıdan bir resource olduğunu ve string dosyasında olacağını ayrıca isminin de hello olacağını söylüyor. Gerçekten de resources klasörü altındaki values klasörü içindeki string.xml dosyasına eclipse package editör üzerinden tıklarsak ADTnin bize sunduğu özel bir editörle bu değeri görebiliriz ve değiştirebiliriz. 
Burada uygulamanın hello değişkenine ait değerini "Merhaba Android" olarak değiştiriyoruz. Böylece TextView'in gösterdiği değer de değişmiş olacak.
Ayrıca uygulama adını da string.xml dosyasındaki app_name değerini düzenleyerek değiştirebiliriz.

Uygulamanın Çalıştırılması:
Tüm yapılan değişiklikleri kaydettikten sonra artık test sürüşüne çıkabiliriz. Bunun için package explorer da uygulamanın kök dosyası/dizini seçiliyken (bu uygulama için MerhabaAndroid olacaktır) Run->Run'a tıklıyoruz. Burada bir Run-As dialog penceresi açılabilir. Buradan Android Application 'ı seçerek ilerliyoruz. Eğer burada hata mesajı alırsanız Project->Clean seçerek projeyi tekrar build etmeyi deneyebilirsiniz. Eclipse önceden seçtiğimiz sanal aygıta projeyi gönderecek ve çalıştıracaktır.
Uygulama ismini ve TextView üzerinde yaptığımız değişiklikleri emulator üzerinde gördük. Merhaba Android uygulamamızın sonuna geldik. Bir başka uygulamada görüşmek üzere.
Written on July 27, 2010