Android

Android Programının Detayları

Bu bölümde bir önceki bölümde Android 4.1 (Jelly Bean) platformunda Eclipse IDE ile oluşturduğumuz programın dizin yapısını ve detaylarını incelemeye çalışacağız:

Eclipse IDE ortamında sol tarafta yer alan Package Explorer içinde projenizin dizin yapısı ve içeriği gösterilmektedir:

1. src dizini: Android programı için oluşturulan tüm .java uzantılı kaynak dosyaları bu dizinde yer alır.

2. MainActivity.java dosyası: Android programı için oluşturulan ana aktivitenin (pencerenin) .java uzantılı kaynak dosyasıdır. Bu dosyanın içeriği aşağıdaki resimde sağ tarafta 8 rakamı ile gösterilmektedir.

3. res dizini: Programı için gerekli olan kaynakları içerir. Bir Android uygulaması program kaynak kodlarının yanısıra, resim ve ses dosyaları ile uygulamanın görsel şekli ile ilgili herşeyden oluşan kaynakları içerir. Kaynaklar program kodundan ayrı olarak tanımlanır. Bu sayede program kodunu değiştirmeden programın görsel özellikleri değiştirilebilir.

4. res/layout dizini: Programdaki her aktivite (pencerenin) için görünümü belirleyen bir .xml dosyası oluşturulmaktadır. Bu dosyaların tamamı bu dizinde yer alır.

5. activity_main.xml dosyası: res/layout dizini içinde yer alır ve içinde programdaki ana aktivitenin görünümünü belirleyen elemanların tanımı yapılır.

6. res/value dizini: Karakter dizisi ve renk tanımlamaları gibi değerlerin yer aldığı diğer .xml dosyalarının bulunduğu dizindir.

7. AndroidManifest.xml dosyası: Ana dizinde yer alır ve içinde programın temel özellikleri ve tüm bileşenleri tanımlanır.

AndroidManifest.xml dosyası

Programın AndroidManifest.xml dosyası içinde; programın çalışması için gereken en düşük SDK sürümü ve programın oluşturulduğu SDK sürümü, application etiketleri arasında ise tek bir aktivite ve içinde bir intent-filter tanımı yapılmıştır.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.denemeprog" android:versionCode="1" android:versionName="1.0">

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />

    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity.java dosyası

Programın ana aktivite kaynak dosyasıdır. Activity sınıfından MainActivity adlı bir sınıf türetilir. Sınıf oluşturulduğunda çalışan onCreate() fonksiyonunun kod içeriği yeniden yazılır. Önce üst sınıfın metodu çağrılır, sonra setContentView()metodu ile ana aktivite pencere elemanlarını içeren activity_main.xml dosyası çağrılarak program giriş penceresi ekranda gösterilir.

package com.example.denemeprog;

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

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);      // Üst sınıf metodunu çağırma
        setContentView(R.layout.activity_main);  // Ana aktivite .xml dosyası çağırma
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

activity_main.xml dosyası

Bu dosyada programın ana penceresindeki elemanlar yer almaktadır. Halen, pencerede sadece tek bir TextView elemanı vardır.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"    // Genişlik metine göre
        android:layout_height="wrap_content"   // Yükseklik metine göre
        android:layout_centerHorizontal="true" // Yatay olarak merkezde 
        android:layout_centerVertical="true"   // Dikey olarak merkezde 
        android:text="@string/hello_world"     // Karakter dizisinin adı 
        tools:context=".MainActivity" />       // Ait olduğu sınıf adı

</RelativeLayout>

Eclipse IDE ortamında sol tarafta yer alan Package Explorer içinde res/layout dizini altındaki activity_main.xml dosyasına tıkladığınızda sağ tarafta ön tanımlı olarak dosyanın metin içeriği görüntülenir. Eğer sağ tarfta aşağıdaki resimde gösterilen Graphical Layout sekmesine tıklarsanız aktivite grafik olarak ekranda gösterilir:

strings.xml dosyası

Bu dosyada programda kullanılan karakter dizisi değişkenleri yer almaktadır.

<resources>

    <string name="app_name">Deneme Prog</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>

</resources>

Dosyalar arasındaki İlişki

Aşağıdaki resim dosyalar arasındaki sınıf ve diğer isimler üzerinden kurulan bağlantıyı göstermektedir: