Android İle İlk Program

Bu konuyu okuyanlar

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
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 :)

res1.png


Karşımıza gelen formdan "Android Project" seçeneğini seçiyoruz ve "Next" butonuna basıyoruz.

res2o.png


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.

res3.png


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 :)

res4.png


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;

res6n.png


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);
kodunu siliyoruz ve yerine "TextView" nesnesini kullanmak için gerekli kodlarımızı yazıyoruz.

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);
        
    }
}
*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.

res7.png


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ı.

res8.png


Sanal cihaz bir kere açıldıktan sonra kapatmanıza gerek olmadığını da belirtmeliyim.

Ve biraz bekledikten sonra sonuç karşımızda :)

res9v.png


Sorun yaşayan olursa buradan devam edebiliriz. Umarım işinize yarayan bir çalışma olmuştur. Herkese iyi çalışmalar. :)
 

N3CAT1

Dekan
Emektar
Katılım
20 Nis 2008
Mesajlar
6,609
Reaksiyon puanı
140
Puanları
63
Tebrikler :) Çok güzel anlatım gerçekten.

Üyelerimizin bu konudan daha etkin yararlanması için bir süreliğine bu 2 konuyu sabit başlığa alıyorum :)
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
:) Şukular gelmiş hemen:D
Teşekkür ederim, elimden geldiğince yazmaya çalışacağım. :clover:
 

hanxhanx

Asistan
Katılım
16 Eki 2009
Mesajlar
355
Reaksiyon puanı
4
Puanları
0
çok güzel bir anlatım olumş emeğinize sağlık.
 

Mert Ahmet

Dekan
Katılım
16 May 2010
Mesajlar
5,708
Reaksiyon puanı
40
Puanları
48
kurması biraz karış geldi bana ama kurabilirsem bunu deniycem :D

SDN Android Market te oluşturabilriz aslında :D yaptığımız uygulamaları oraya koyarız :D
gerçi bu daha sonraki adım olur ama aklınızda bulunsun :)
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
Bende android ile yeni tanıştım. Özellikle vektörel grafiklerin olduğu örnek uygulamalar geliştirip, bu konu hakkında yazılar yazmaya çalışacağım. Takip eden arkadaşlar olacaksa tavsiyem, Java öğrensinler, eclipse' i kurup, kurcalasınlar, eclipse eklentilerini kursunlar ve öğrensinler. Kolay gelsin :)
 

steinmetz

Asistan
Katılım
4 May 2008
Mesajlar
275
Reaksiyon puanı
6
Puanları
0
Hocam anlatım çok güzel, devamını bekliyoruz, bu uygulamayı derleyip, gerçek bir telefona atılabilecek şekle nasıl getirebiliriz? Jar/Jad dosyası mı yapmamız gerekiyor?
 

Mert Ahmet

Dekan
Katılım
16 May 2010
Mesajlar
5,708
Reaksiyon puanı
40
Puanları
48
android uygulamalarının uzantısı apk dir ;)
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
Selam, Android Uygulamaları java dili ile, Android kütüphaneleri kullanılarak yazılıyor. Bu yüzden de biraz java dilinin yapısına hakim olmak gerekiyor. Ayrıca Java ve flash ile yapılmış uygulamalar çalıştırılabiliyor. Kolay gelsin :clover:
 

BluE_Boi

Öğrenci
Katılım
22 Ara 2010
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
teşekkürler güzel bi anlatım olmuş.. "başarılarının" devamını diliyorum desem ne demek istediğimi anlarsın heralde ;)
 

REDFOKS

Rektör
Katılım
31 Ocak 2009
Mesajlar
18,035
Reaksiyon puanı
187
Puanları
63
bu forumda androide dair olması gereken konulardan biride rom değiştirme yakın zamanda detaylı olarak biri yazarsa iyi olur aslında
 

host

Asistan
Katılım
29 Kas 2010
Mesajlar
107
Reaksiyon puanı
0
Puanları
0
teşekürler en kısa zamanda bende androidli bir cihaza gececegim
 

futureng

Asistan
Katılım
3 Eki 2007
Mesajlar
310
Reaksiyon puanı
1
Puanları
0
Elinize sağlık. teşekkürler. Nerden başlayaum diyenler için iyi bir kaynak
 

Ahmethz

Rektör
Emektar
Katılım
7 Eyl 2006
Mesajlar
12,441
Reaksiyon puanı
395
Puanları
83
Güzel anlatmissin eline saglık
 

plthmz

Öğrenci
Katılım
4 Eyl 2011
Mesajlar
1
Reaksiyon puanı
0
Puanları
0
elinize sağlık iyi bir başlangıç oldu
 

orhantigli

Öğrenci
Katılım
29 Eki 2011
Mesajlar
1
Reaksiyon puanı
0
Puanları
0
Müthiş bir anlatım olmuş. Dediklerini aynen yaptım ve Android ile ilk programımı yazmış oldum. Teşekkürler paylaşım için :)
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
Rica ederim. Gerisi size kalmış. Sözüm vardı fakat projelerden vakit ayıramıyorum.
 
S

SDN Okuru

SDN Okuru
Merhabalar Ben uygulamayı yaptım fakat yeniden yapılandır diye bir hata almaktayım hatanın orjinali aşağıdaki gibidir. Yardımcı olursanız çok sevinirim.

An internal error occurred during: "Launching New_configuration".
Path for project must have only one segment.
 
S

SDN Okuru

SDN Okuru
çok eski yazı eclipse ve sdk güncellendi güncel yazıya androtronik ten ulaşabilirsiniz. düzenli ders yayınlıyor bir arkadaş.
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
Evet buradaki anlatım çok eski. Ayrıca koyduğum resimlerde uçmuş, gitmiş. Arkadaşlar inanın 3 senedir üzerine birşeyler koymak için zaman ayıramadım. Arkadaşlara söz verdiğim projeler var, beraber yaparız diye, kendi işimden, gücümden onlara dahi bakamıyorum malesef.

15.02.2013 10:21 de yazan sayın SDN okuru. İndirme linklerinin tamamı http://developer.android.com/sdk/index.html adresinde bulunabilir.

Söz vermiyeyim, bu konuda birşeyler yazmaya çalışacağım.

İsteyen [MENTION=171462]electrocoder[/MENTION] hocamı sıkıştırabilir. Yeterince ikna edebilirseniz, o birşeyler hazırlayabilir eğitim dökümanı olarak.
Saygılar.
 

muhammedyakup

Doçent
Katılım
11 Nis 2012
Mesajlar
563
Reaksiyon puanı
4
Puanları
18
bende yazın biraz araştırdım uygulama geliştirmek istedim fakat ing kısıtlılığı ile türkçe kaynak sıkıntısı olunca üstüne birde android uygulamayı çalıştırcak telefonuda alamayınca bıraktım fakat hala öğrenmek istediğim bir konu tabi öncesinde java bilgisinin olması gerek sanırsam :)
 

kosasker

Profesör
Katılım
24 Ara 2008
Mesajlar
3,195
Reaksiyon puanı
47
Puanları
48
bende yazın biraz araştırdım uygulama geliştirmek istedim fakat ing kısıtlılığı ile türkçe kaynak sıkıntısı olunca üstüne birde android uygulamayı çalıştırcak telefonuda alamayınca bıraktım fakat hala öğrenmek istediğim bir konu tabi öncesinde java bilgisinin olması gerek sanırsam :)

Java bilgisi süreci sizin için hızlandıracaktır. Zaten burada kullanılan dil java. Ciddi geliştiriciler için ingilizce olmazsa olmaz.
 

muhammedyakup

Doçent
Katılım
11 Nis 2012
Mesajlar
563
Reaksiyon puanı
4
Puanları
18
Java bilgisi süreci sizin için hızlandıracaktır. Zaten burada kullanılan dil java. Ciddi geliştiriciler için ingilizce olmazsa olmaz.
şu sıralar ing çalışıyorum bitirme projesiylede uğraşıyorum zaman bulunca ilk işim java bilgimi biraz daha ilerletip androide atılmak olcak inş :D
 
S

SDN Okuru

SDN Okuru
Paylaşımiyi olmuş... Bide java dilini bilmeyip android programı geliştirmek isteyen, c# ve VB kullanıcıları Monodroid SDK ssını indirip visual studio ile çalışabilir...
 

Son mesajlar

Üst