kosasker
Profesör
- Katılım
- 24 Aralık 2008
- Mesajlar
- 3,195
- Reaksiyon puanı
- 49
- Puanları
- 48
Merhaba arkadaşlar. 07.10.2010 tarihinde yazmış olduğum Google Android SDK (SDK-Yazılım Geliştirme Kiti) Kurulumu ve Eclipse adlı yazıdan sonra şimdi de ilk programımıza geçelim. Eğer android sdk kurulumunda sorun yaşadı iseniz yine Google Android SDK (SDK-Yazılım Geliştirme Kiti) Kurulumu ve Eclipse konusunun devamından yardım isteyebilirsiniz.
Öncelikle Android SDK'nın çalışma mantığı hakkında size bilgi vermek istiyorum. Android SDK büyük bölümü java ile yazılmış bir uygulama geliştirme aracı. Android SDK bize üzerinde çalışabilmemiz için sanal bir veya birden fazla cihaz (evet sanal telefon) ve kendi yazılım kütüphane dosyalarını sunuyor. Bu da şu demek; bu yazdığımız kodları denemek için illa ki android yüklü bir cep telefonu, PDA ya da herhangi bir elektronik cihaza ihtiyacınız yok. Uygulama ortamı içerisinde çalışma zamanında dahi bu sanal cihazı oluşturup istediğiniz özellikleri vermeniz mümkün. Android SDK nın içerisinde de ayrıca ingilizce olarak yazılmış dökümanlar var. Bunlardan rahatlıkla yararlanabilirsiniz. Ayrıca yazılım kütüphanelerinin ne işe yaradığını, neler yapabildiğini, sınırlarının ne olduğunu anlatan "referans dökümanı" da bu dökümanlar içerisinde mevcut. Tek bilmeniz gereken biraz ingilizce. Eğer ingilizce ile alakalı sorun yaşıyorsanız "google translate" hizmetinden ve internette yayında olan sözlüklerden yararlanın. Bu kısa bilgilerden sonra şimdi örneğimize geçelim isterseniz.
Yapacağımız program, android sanal cihazımız içerisine istediğimiz cümleyi yazmamızı sağlayacak. Yapacağı iş tam olarak bu. Lafı daha fazla uzatmadan anlatmaya ve kod yazmaya başlayalım. Öncelikle Eclipse yazılımını açıyoruz. Eclipse açıldığında direkt olarak " CTRL + N " tuşlarına da basarak yeni bir proje açmak için gerekli formu çağırabilirsiniz. Fare ile seçmek için aşağıda gösterildiği gibi "File\New\Other" seçeneklerini izleyin
Karşımıza gelen formdan "Android Project" seçeneğini seçiyoruz ve "Next" butonuna basıyoruz.
Gelen diğer ekranda bizden proje adı, uygulama eklenti arayüzü (API), uygulama adı, paket ismi (aşağıda açıklayacağım), etkinlik adı ve desteklenecek minimum SDK versiyonu seçmemiz isteniyor. Öncelikle bunları açıklayalım.
Project Name: Projemiz için gireceğimiz isimdir. Burada verdiğimiz ad doğrultusunda Eclipse, aynı adda klasör açar ve projede kullanacağımız dosyaları standart olarak bu klasör içerisinde biriktirir. Burada vereceğiniz ad bitişik olmalıdır. Birden fazla kelime kullanımı için alt çizgi kullanabilirsiniz.
Build Target: Yaptığımız uygulamanın çalışacağı Android sürümünü belirtir. İnternette araştırdığım kadarı ile şu an piyasada bulunan en alt Android işletim sistemi sürümü 1.6, o yüzden yine de ne olur ne olmaz 1.5 ile çalışmanızı tavsiye ediyorum.
Android' in bir güzelliği de işletim sistemi yeni olsa dahi, eski yapılan uygulamaları desteklemesi. O yüzden 1.5 sürümüne yönelik yapacağınız uygulama, eğer çalışması için 1.5' e bağımlı bir yazılım veya eklenti kullanmıyorsa, yani standartlara uygun yazılmışsa çok çok büyük bir ihtimalle en yeni sürümlerde de çalışmaya devam edecektir.
Application Name: Android uygulamamızın adıdır. Proje adı ile farkı bulunmaktadır. "Application Name" kısmında istediğiniz herhangi bir adı yazabilirsiniz. Bu yazacağınız ad, projenin "MANIFEST" (içerik) dosyasına yazılacaktır ve derlenmiş uygulamanızın adını belirtir. Yapacağınız uygulamaları derlediğinizde, derlenmiş dosya adı ve android üzerinde görünecek form başlığı buradan gelmektedir. Az sonra yazacağımız örnekte de bunu göreceksiniz
Package Name: Burası gerçekten önemli. "Package Name" aynen Java' da belirtilen "package" ya da C# da kullanılan "namespace" belirtiminin aynısını uygulamak için kullanılır.
"Package name" yazacağımız sınıf (class) nesnelerinin ait olacağı üst bağı belirtir. Bir proje için birden fazla alt proje açmamız veya birden fazla ayrı dosya açmamız gerekir. "package" belirtimi ortak isimle yapılmış dosyaların içerisine yazılmış nesnelerin ancak birbirine erişimi olabilir, farklı isimlileri ise import ederek kullanabiliriz.
Create Activity: Burada projede kullanacağımız sınıfı belirtiyoruz. İsterseniz yanındaki onay kutusunu kaldırarak boş geçebilirsiniz. Ben bu örneğimde proje ile aynı ismi vererek kullandım.
Burada yazılan isim bize hazır bir sınıf nesnesi (class) oluşturacağı için Java yazım kurallarına uygun olarak yazmanız gerekmektedir.
Kelimelerin Ilk Harfleri Büyük Olmalı,
turkce karakter kullanmamali ve
Birden_Fazla_Kelime_Kullanmak_Isterseniz_Araya_Karakter_Olarak_Sadece_Alt_Cizgi_Koyabilirsiniz.
IstersenizBitisikdeYazabilirsiniz
"Min SDK Version:" Uygulamamızı derlediğimizde çalıştıracağımız minimum android SDK versiyonunu burada belirtiyoruz. Şu an ki sürümümüz 3 serisinden olduğu için buraya rakamla "3" yazıyorum.
Yazılan tüm değerler şunlar:
Project Name:MerhabaAndroid
BuildTarget:1.5
Application Name: Merhaba Android
Package Name:com.denemeler.merhabaandroid
Create Activity: MerhabaAndroid
Min SDK Version: 3
Bu değerleri girdikten sonra "Finish" butonuna basıyorum ve proje dosyası içerisinden MerhabaAndroid.java dosyasına çift tıkladığımda aşağıdaki görüntü karşıma geliyor
Umarım buraya kadar bir sorun yaşamadınız. Evet artık elimizde bir proje dosyası olduğuna göre içerisinde istediğimiz değişiklikleri yapalım ve çalışan küçük programımızı yapalım.
Sanal cihazımızın ekranına bir yazı yazdıracağız ve bu yazıyı taşıması için bir nesnemiz var. Adı TextView. "import" belirtimini kullanarak MerhabaAndroid.java dosyamıza bu nesneyi ekleyelim.
Projeyi oluşturma aşamasında "Create Activity" seçeneğinin bizim için bir sınıf nesnesi oluşturacağını söylemiştik ve oraya MerhabaAndroid yazmıştık. Bu sınıfın oluşturulmuş olduğunu görüyoruz. Hazır oluşturulmuş kodlar içerisinde bulunan
kodunu siliyoruz ve yerine "TextView" nesnesini kullanmak için gerekli kodlarımızı yazıyoruz.
Yazdığımız kodun son hali şu şekilde
*Not: Yazımlarda büyük, küçük harf ayrımına dikkat edilmelidir.
Yazdığımız kodda bulunan satırları inceleyelim.
package com.merhab... : Daha önce de dediğim gibi burada proje sınıflarımız için kullanacağımız üst bağlamı bildiriyoruz.
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
Uygulamamızın ihtiyaç duyduğu nesneleri, import belirtimi ile projemize dahil ediyoruz.
İlk import cümlesinde; android işletim sisteminin, yazdığımız sınıf nesnesini (class) programın yürütüldüğü anda çalıştırılması için gerekli (Activity) özelliğe sahip olduğunu belirtmek için kullanıyoruz. Burada kalıtım yolu ile "Activity" nesnesinden referans alan yeni bir sınıf oluşturuyoruz ki, android işletim sistemi içerisinden uygulamamızı çalıştırdığımızda bu sınıfımızın içerisindeki kodlar çalışmaya başlasın.
İkinci import belirtiminde ise, yaptığımız uygulamanın bir android modülü ya da eklentisi gibi çalışmasını sağlamak için gerekli kütüphaneyi çağırıyoruz.
Üçüncü import da ise daha önce de dediğim gibi TextView nesnesini oluşturmak için gerekli kütüphaneyi çağırmaktayız.
public class MerhabaAndroid extends Activity {
Dikkat ederseniz birinci import cümlesinde çağırdığımız Activity nesnesini burada sınıfımıza kalıtım vermek için kullanıyoruz.
public void odCreate(Bundle.....
İkinci import belirtiminde çağırdığımız nesneyi de burada kullandığımız fonksiyonun argümanı olarak veriyoruz. "Bundle" nesnesi bizim kullandığımız fonksiyonun eklenti olarak iş yapacağını bildiriyor.
super.onCreate(savedInstanceState);
super niteliği, kullandığınız nesnenin veya nesne niteliğinin barındırdığı değer dahil tüm özellikleri ile bir üst hiyerarşide bulunan katmana aktarılmasını sağlar. Burada onCreate nesnesine ait savedInstanceState niteliğini bir üst hiyerarşiye aktarıyoruz ki, android işletim sistemi bu eklentinin varlığından haberdar olsun. Aksi takdirde zaten program çalışmaz, çünkü program içerisindeki fonksiyonu dışarıya açmayacaktır. Eğer sadece kendi sınıfımız içerisinde işlemler yapacaksak bu komutun kullanımına gerek yoktur.
TextView tv=new TextView(this);
tv.setText("\n\nMerhaba\nBu ilk uygulamamız ");
setContentView(tv);
Bu üç satırda TextView nesnemizi oluşturuyoruz ve setContentView ile de gösterilmesini sağlıyoruz.
Evet kodlamamız bu kadar şimdi de yazdığımız kodları çalıştırıp deneyelim
Eclipse' in sol tarafında bulunan "Project Explorer" a gelip, proje üzerine ters tıklayın, resimde görüldüğü gibi çalıştırın.
Eğer hata alırsanız büyük ihtimalle sanal cihazınızı eklemeyi unutmuşsunuzdur. Google Android SDK (SDK-Yazılım Geliştirme Kiti) Kurulumu ve Eclipse linkinde bulunan yazı ile beraber işlem adımlarını tekrar edin
Evet sanal cihazımız çalışıyor. Burada biraz beklememiz gerekecek, bende yaklaşık 3 dakika sürüyor sanal cihazımın açılması.
Sanal cihaz bir kere açıldıktan sonra kapatmanıza gerek olmadığını da belirtmeliyim.
Ve biraz bekledikten sonra sonuç karşımızda
Sorun yaşayan olursa buradan devam edebiliriz. Umarım işinize yarayan bir çalışma olmuştur. Herkese iyi çalışmalar.
Öncelikle Android SDK'nın çalışma mantığı hakkında size bilgi vermek istiyorum. Android SDK büyük bölümü java ile yazılmış bir uygulama geliştirme aracı. Android SDK bize üzerinde çalışabilmemiz için sanal bir veya birden fazla cihaz (evet sanal telefon) ve kendi yazılım kütüphane dosyalarını sunuyor. Bu da şu demek; bu yazdığımız kodları denemek için illa ki android yüklü bir cep telefonu, PDA ya da herhangi bir elektronik cihaza ihtiyacınız yok. Uygulama ortamı içerisinde çalışma zamanında dahi bu sanal cihazı oluşturup istediğiniz özellikleri vermeniz mümkün. Android SDK nın içerisinde de ayrıca ingilizce olarak yazılmış dökümanlar var. Bunlardan rahatlıkla yararlanabilirsiniz. Ayrıca yazılım kütüphanelerinin ne işe yaradığını, neler yapabildiğini, sınırlarının ne olduğunu anlatan "referans dökümanı" da bu dökümanlar içerisinde mevcut. Tek bilmeniz gereken biraz ingilizce. Eğer ingilizce ile alakalı sorun yaşıyorsanız "google translate" hizmetinden ve internette yayında olan sözlüklerden yararlanın. Bu kısa bilgilerden sonra şimdi örneğimize geçelim isterseniz.
Yapacağımız program, android sanal cihazımız içerisine istediğimiz cümleyi yazmamızı sağlayacak. Yapacağı iş tam olarak bu. Lafı daha fazla uzatmadan anlatmaya ve kod yazmaya başlayalım. Öncelikle Eclipse yazılımını açıyoruz. Eclipse açıldığında direkt olarak " CTRL + N " tuşlarına da basarak yeni bir proje açmak için gerekli formu çağırabilirsiniz. Fare ile seçmek için aşağıda gösterildiği gibi "File\New\Other" seçeneklerini izleyin
Karşımıza gelen formdan "Android Project" seçeneğini seçiyoruz ve "Next" butonuna basıyoruz.
Gelen diğer ekranda bizden proje adı, uygulama eklenti arayüzü (API), uygulama adı, paket ismi (aşağıda açıklayacağım), etkinlik adı ve desteklenecek minimum SDK versiyonu seçmemiz isteniyor. Öncelikle bunları açıklayalım.
Project Name: Projemiz için gireceğimiz isimdir. Burada verdiğimiz ad doğrultusunda Eclipse, aynı adda klasör açar ve projede kullanacağımız dosyaları standart olarak bu klasör içerisinde biriktirir. Burada vereceğiniz ad bitişik olmalıdır. Birden fazla kelime kullanımı için alt çizgi kullanabilirsiniz.
Build Target: Yaptığımız uygulamanın çalışacağı Android sürümünü belirtir. İnternette araştırdığım kadarı ile şu an piyasada bulunan en alt Android işletim sistemi sürümü 1.6, o yüzden yine de ne olur ne olmaz 1.5 ile çalışmanızı tavsiye ediyorum.
Android' in bir güzelliği de işletim sistemi yeni olsa dahi, eski yapılan uygulamaları desteklemesi. O yüzden 1.5 sürümüne yönelik yapacağınız uygulama, eğer çalışması için 1.5' e bağımlı bir yazılım veya eklenti kullanmıyorsa, yani standartlara uygun yazılmışsa çok çok büyük bir ihtimalle en yeni sürümlerde de çalışmaya devam edecektir.
Application Name: Android uygulamamızın adıdır. Proje adı ile farkı bulunmaktadır. "Application Name" kısmında istediğiniz herhangi bir adı yazabilirsiniz. Bu yazacağınız ad, projenin "MANIFEST" (içerik) dosyasına yazılacaktır ve derlenmiş uygulamanızın adını belirtir. Yapacağınız uygulamaları derlediğinizde, derlenmiş dosya adı ve android üzerinde görünecek form başlığı buradan gelmektedir. Az sonra yazacağımız örnekte de bunu göreceksiniz
Package Name: Burası gerçekten önemli. "Package Name" aynen Java' da belirtilen "package" ya da C# da kullanılan "namespace" belirtiminin aynısını uygulamak için kullanılır.
"Package name" yazacağımız sınıf (class) nesnelerinin ait olacağı üst bağı belirtir. Bir proje için birden fazla alt proje açmamız veya birden fazla ayrı dosya açmamız gerekir. "package" belirtimi ortak isimle yapılmış dosyaların içerisine yazılmış nesnelerin ancak birbirine erişimi olabilir, farklı isimlileri ise import ederek kullanabiliriz.
Create Activity: Burada projede kullanacağımız sınıfı belirtiyoruz. İsterseniz yanındaki onay kutusunu kaldırarak boş geçebilirsiniz. Ben bu örneğimde proje ile aynı ismi vererek kullandım.
Burada yazılan isim bize hazır bir sınıf nesnesi (class) oluşturacağı için Java yazım kurallarına uygun olarak yazmanız gerekmektedir.
Kelimelerin Ilk Harfleri Büyük Olmalı,
turkce karakter kullanmamali ve
Birden_Fazla_Kelime_Kullanmak_Isterseniz_Araya_Karakter_Olarak_Sadece_Alt_Cizgi_Koyabilirsiniz.
IstersenizBitisikdeYazabilirsiniz
"Min SDK Version:" Uygulamamızı derlediğimizde çalıştıracağımız minimum android SDK versiyonunu burada belirtiyoruz. Şu an ki sürümümüz 3 serisinden olduğu için buraya rakamla "3" yazıyorum.
Yazılan tüm değerler şunlar:
Project Name:MerhabaAndroid
BuildTarget:1.5
Application Name: Merhaba Android
Package Name:com.denemeler.merhabaandroid
Create Activity: MerhabaAndroid
Min SDK Version: 3
Bu değerleri girdikten sonra "Finish" butonuna basıyorum ve proje dosyası içerisinden MerhabaAndroid.java dosyasına çift tıkladığımda aşağıdaki görüntü karşıma geliyor
Umarım buraya kadar bir sorun yaşamadınız. Evet artık elimizde bir proje dosyası olduğuna göre içerisinde istediğimiz değişiklikleri yapalım ve çalışan küçük programımızı yapalım.
Sanal cihazımızın ekranına bir yazı yazdıracağız ve bu yazıyı taşıması için bir nesnemiz var. Adı TextView. "import" belirtimini kullanarak MerhabaAndroid.java dosyamıza bu nesneyi ekleyelim.
Kod:
import android.widget.TextView;
Projeyi oluşturma aşamasında "Create Activity" seçeneğinin bizim için bir sınıf nesnesi oluşturacağını söylemiştik ve oraya MerhabaAndroid yazmıştık. Bu sınıfın oluşturulmuş olduğunu görüyoruz. Hazır oluşturulmuş kodlar içerisinde bulunan
Kod:
setContentView(R.layout(main);
Kod:
TextView tv=new TextView(this);
tv.setText("\n\nMerhaba\nBu ilk uygulamamız :)");
setContentView(tv);
Yazdığımız kodun son hali şu şekilde
Kod:
package com.denemeler.merhabaandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MerhabaAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
tv.setText("\n\nMerhaba\nBu ilk uygulamamız :)");
setContentView(tv);
}
}
Yazdığımız kodda bulunan satırları inceleyelim.
package com.merhab... : Daha önce de dediğim gibi burada proje sınıflarımız için kullanacağımız üst bağlamı bildiriyoruz.
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
Uygulamamızın ihtiyaç duyduğu nesneleri, import belirtimi ile projemize dahil ediyoruz.
İlk import cümlesinde; android işletim sisteminin, yazdığımız sınıf nesnesini (class) programın yürütüldüğü anda çalıştırılması için gerekli (Activity) özelliğe sahip olduğunu belirtmek için kullanıyoruz. Burada kalıtım yolu ile "Activity" nesnesinden referans alan yeni bir sınıf oluşturuyoruz ki, android işletim sistemi içerisinden uygulamamızı çalıştırdığımızda bu sınıfımızın içerisindeki kodlar çalışmaya başlasın.
İkinci import belirtiminde ise, yaptığımız uygulamanın bir android modülü ya da eklentisi gibi çalışmasını sağlamak için gerekli kütüphaneyi çağırıyoruz.
Üçüncü import da ise daha önce de dediğim gibi TextView nesnesini oluşturmak için gerekli kütüphaneyi çağırmaktayız.
public class MerhabaAndroid extends Activity {
Dikkat ederseniz birinci import cümlesinde çağırdığımız Activity nesnesini burada sınıfımıza kalıtım vermek için kullanıyoruz.
public void odCreate(Bundle.....
İkinci import belirtiminde çağırdığımız nesneyi de burada kullandığımız fonksiyonun argümanı olarak veriyoruz. "Bundle" nesnesi bizim kullandığımız fonksiyonun eklenti olarak iş yapacağını bildiriyor.
super.onCreate(savedInstanceState);
super niteliği, kullandığınız nesnenin veya nesne niteliğinin barındırdığı değer dahil tüm özellikleri ile bir üst hiyerarşide bulunan katmana aktarılmasını sağlar. Burada onCreate nesnesine ait savedInstanceState niteliğini bir üst hiyerarşiye aktarıyoruz ki, android işletim sistemi bu eklentinin varlığından haberdar olsun. Aksi takdirde zaten program çalışmaz, çünkü program içerisindeki fonksiyonu dışarıya açmayacaktır. Eğer sadece kendi sınıfımız içerisinde işlemler yapacaksak bu komutun kullanımına gerek yoktur.
TextView tv=new TextView(this);
tv.setText("\n\nMerhaba\nBu ilk uygulamamız ");
setContentView(tv);
Bu üç satırda TextView nesnemizi oluşturuyoruz ve setContentView ile de gösterilmesini sağlıyoruz.
Evet kodlamamız bu kadar şimdi de yazdığımız kodları çalıştırıp deneyelim
Eclipse' in sol tarafında bulunan "Project Explorer" a gelip, proje üzerine ters tıklayın, resimde görüldüğü gibi çalıştırın.
Eğer hata alırsanız büyük ihtimalle sanal cihazınızı eklemeyi unutmuşsunuzdur. Google Android SDK (SDK-Yazılım Geliştirme Kiti) Kurulumu ve Eclipse linkinde bulunan yazı ile beraber işlem adımlarını tekrar edin
Evet sanal cihazımız çalışıyor. Burada biraz beklememiz gerekecek, bende yaklaşık 3 dakika sürüyor sanal cihazımın açılması.
Sanal cihaz bir kere açıldıktan sonra kapatmanıza gerek olmadığını da belirtmeliyim.
Ve biraz bekledikten sonra sonuç karşımızda
Sorun yaşayan olursa buradan devam edebiliriz. Umarım işinize yarayan bir çalışma olmuştur. Herkese iyi çalışmalar.