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.
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>
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; } }
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:
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>
Aşağıdaki resim dosyalar arasındaki sınıf ve diğer isimler üzerinden kurulan bağlantıyı göstermektedir: