Android İle İlk Program

Konusu 'Android' forumundadır ve kosasker tarafından 8 Ekim 2010 başlatılmıştır.

  1. kosasker

    kosasker Profesör

    Katılım:
    24 Aralık 2008
    Mesajlar:
    3.220
    Beğenileri:
    45
    Ödül Puanları:
    48

    - Android İle İlk Program

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

    [​IMG]

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

    [​IMG]

    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.

    [​IMG]

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

    [​IMG]

    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;
    
    [​IMG]

    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.

    [​IMG]

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

    [​IMG]

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

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

    [​IMG]

    Sorun yaşayan olursa buradan devam edebiliriz. Umarım işinize yarayan bir çalışma olmuştur. Herkese iyi çalışmalar. :)
     
    KnUcLeS, hüzün_ ve Mert Ahmet bunu beğendi.
  2. N3CAT1

    N3CAT1 Dekan Onursal Üye

    Katılım:
    20 Nisan 2008
    Mesajlar:
    6.678
    Beğenileri:
    133
    Ödül 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 :)
     
  3. kosasker

    kosasker Profesör

    Katılım:
    24 Aralık 2008
    Mesajlar:
    3.220
    Beğenileri:
    45
    Ödül Puanları:
    48
    :) Şukular gelmiş hemen:D
    Teşekkür ederim, elimden geldiğince yazmaya çalışacağım. :clover:
     
  4. hanxhanx

    hanxhanx Asistan

    Katılım:
    16 Ekim 2009
    Mesajlar:
    358
    Beğenileri:
    4
    Ödül Puanları:
    0
    çok güzel bir anlatım olumş emeğinize sağlık.
     
  5. Mert Ahmet

    Mert Ahmet Moderatör Yönetici Moderatör

    Katılım:
    16 Mayıs 2010
    Mesajlar:
    6.021
    Beğenileri:
    29
    Ödül 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 :)
     
  6. kosasker

    kosasker Profesör

    Katılım:
    24 Aralık 2008
    Mesajlar:
    3.220
    Beğenileri:
    45
    Ödül 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 :)
     
  7. steinmetz

    steinmetz Asistan

    Katılım:
    4 Mayıs 2008
    Mesajlar:
    279
    Beğenileri:
    6
    Ödül 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?
     
  8. Mert Ahmet

    Mert Ahmet Moderatör Yönetici Moderatör

    Katılım:
    16 Mayıs 2010
    Mesajlar:
    6.021
    Beğenileri:
    29
    Ödül Puanları:
    48
    android uygulamalarının uzantısı apk dir ;)
     
  9. kosasker

    kosasker Profesör

    Katılım:
    24 Aralık 2008
    Mesajlar:
    3.220
    Beğenileri:
    45
    Ödül 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:
     
  10. BluE_Boi

    BluE_Boi Üyecik

    Katılım:
    22 Aralık 2010
    Mesajlar:
    2
    Beğenileri:
    0
    Ödül 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 ;)
     
  11. REDFOKS

    REDFOKS Kürşad'ın Kırkıncı Çerisi Yönetici Super Moderator

    Katılım:
    31 Ocak 2009
    Mesajlar:
    19.079
    Beğenileri:
    151
    Ödül Puanları:
    63
    Cinsiyet:
    Bay
    bu forumda androide dair olması gereken konulardan biride rom değiştirme yakın zamanda detaylı olarak biri yazarsa iyi olur aslında
     
  12. host

    host Asistan

    Katılım:
    29 Kasım 2010
    Mesajlar:
    108
    Beğenileri:
    0
    Ödül Puanları:
    0
    teşekürler en kısa zamanda bende androidli bir cihaza gececegim
     
  13. futureng

    futureng Asistan

    Katılım:
    3 Ekim 2007
    Mesajlar:
    310
    Beğenileri:
    1
    Ödül Puanları:
    0
    Elinize sağlık. teşekkürler. Nerden başlayaum diyenler için iyi bir kaynak
     
  14. Ahmethz

    Ahmethz Rektör

    Katılım:
    7 Eylül 2006
    Mesajlar:
    11.392
    Beğenileri:
    79
    Ödül Puanları:
    48
    Cinsiyet:
    Bay
    Yer:
    Istanbul
    Güzel anlatmissin eline saglık
     
  15. plthmz

    plthmz Üyecik

    Katılım:
    4 Eylül 2011
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül Puanları:
    0
    elinize sağlık iyi bir başlangıç oldu
     
  16. orhantigli

    orhantigli Üyecik

    Katılım:
    29 Ekim 2011
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül 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 :)
     
  17. kosasker

    kosasker Profesör

    Katılım:
    24 Aralık 2008
    Mesajlar:
    3.220
    Beğenileri:
    45
    Ödül Puanları:
    48
    Rica ederim. Gerisi size kalmış. Sözüm vardı fakat projelerden vakit ayıramıyorum.
     
  18. SDN Okuru

    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.
     
  19. SDN Okuru

    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ş.
     
  20. SDN Okuru

    SDN Okuru SDN Okuru

    indirme linkide koyarmısın ? teşekkür ederim​
     

Sayfayı Paylaş