Pardus’ta Android uygulama yazmak? Pek tabiki mümkün!

Hergün 400 bin aktive edilen mobil cihaz ile 100 milyona ulaşan aktif cihaz, 200 bin civarı seçilmiş ve markette yerini almış uygulama, 450 binin üzerinde geliştirici. Sayılar, Google’ın “Open Handset Alliance” çerçevesinde bizlere sunduğu mobil işletim sistemi Android‘in önemini pek bir vurguluyor. Linux temelli olması, üzerinde koşan uygulamaların Java ile yazılması, geliştirim araçlarının birçok platformda desteklenmesi, Android’in iOS’a göre bariz artıları.

Peki, bu dünyaya dalmak isteyen -Android uygulamalar geliştirmek isteyen- Pardus kullanıcıları için işler ne kadar karışık? Cevap: Yok öyle bir karışıklık :) Yazının ilerleyen bölümünde Pardus 2011′de Android uygulamalar geliştirmek için takip edilecek adımlardan bahsedince hak vereceksiniz. Başlayalım:

Gerekenler

  1. Pardus 2011 64-bit
    /* Adımlar bu mimari üzerinde koşan Pardus için denendi, 32-bit Pardus üzerinde de denemekten çekinmeyin. */
  2. Eclipse Indigo (v3.7)
    /*
    Eğer sisteminizde Eclipse Helios (v3.6) varsa bunu Indigo’ya yükseltin.

    $ sudo pisi up eclipse

    */

  3. Android SDK’yı aşağıdaki adresten indirin ve edindiğiniz sıkıştırılmış arşiv dosyasını sisteminizde uygun bir yere açın (/home/uid/android etc.).

    http://dl.google.com/android/android-sdk_r13-linux_x86.tgz

  4. Eclipse’i Android geliştirim ortamına çevirmek için Eclipse ADT plugine ihtiyaç var. Bunu temin etmek için Eclipse üzerinde iken aşağıdaki alt adımları izleyin:
    1. Help>Install New Software seçin.
    2. http://dl-ssl.google.com/android/eclipse sitesini ekleyin:
    3. Gelen listeden “Developer Tools”ın yanındaki kutucuğu işaretleyip ilerleyin.
    4. Lisans sözleşmesini kabul ettikten sonra araçların sisteminize yüklenmesi için biraz bekleyin.
    5. Çıkan güvenlik uyarısını “Tamam”a basarak geçin ve sonrasında Eclipse’i yeniden başlatın.
  5. Buraya kadar sorunsuz gelmiş olmalısınız, Artık Eclipse’te Android projesi oluşturabilecek durumdayız. Ama öncesinde daha önce indirip açtığımız Android SDK’yı Eclipse’e göstermemiz lazım. Bunun için Window>Preferences>Android yolunu izleyerek Android SDK yolunu giriyoruz. Çıkan uyarıları geçip bir sonraki adım olan SDK platform araçlarını yükleme işine koyuluyoruz:
  6. Window>Android SDK and AVD Manager>Available Packages takip ederek üzerinde çalışmayı istediğimiz platformu (Froyo -v2.2- Android cihaza sahip biri SDK Platform Android 2.2 API’yi kullanmak isteyecektir) ve platform araçlarını seçiyoruz:
  7. Platform ve araçlarını yükledikten sonra (console penceresinde hata görürseniz şimdilik ihmal edebilirsiniz) ilk Android projenizi File>New>Project>Android>Android Project izleyerek oluşturabilirsiniz:
  8. Eğer 64-bit sistem üzerinde çalışıyorsanız, proje oluştuktan sonra console ekranında zlib kitaplığının yüklenemediği ile ilgili bir hata alacaksınız:

    HelloApplication] /home/go/android/android-sdk-linux_x86/platform-tools/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

    Bunu aşmak için 32-bit emul zlib paketini kurmanız gerekiyor:

    $ sudo pisi it zlib-32bit

    Değişikleri yansıtmak için Eclipse’i yeniden başlattıktan sonra benzer bir hatayla ncurses kitaplığının yüklenmesi esnasında karşılaşacaksınız:

    /home/go/android/android-sdk-linux_x86/platform-tools/adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
    [2011-09-27 01:25:54 - adb]‘adb version’ failed!

    Bu sefer ihtiyacınız olan ncurses’in 32-bit emul paketini yüklemek:

    $ sudo pisi it ncurses-32bit

Uygulamamızla Dünyayı Selamlayalım

    1. Öncelikle geliştireceğimiz uygulamayı cihazımıza yüklemeden test etmek için sistemimizde sanal bir cihaz oluşturmamız (AVD: Android Virtual Device) gerekiyor. Window>Android SDK and AVD Manager>Virtual Devices seçerek geliştirim ortamımız için uygun bir sanal cihaz oluşturuyoruz:
    2. Halihazırda ADT plugini sizin için çok sayıda iş yapıyor (Activity ve R sınıflarını üretme, layout ayarlama vb.) Aşağıdaki sınıf bunlardan biri. Bir iki küçük değişiklikle “Hello World” ritüelini yerine getiriyoruz:
      package com.example.hello;
      
      import android.app.Activity;
      import android.os.Bundle;
      import android.widget.TextView;
      
      public class HelloApplicationActivity extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              TextView textview = new TextView(this);
              textview.setText("Hello world, this is little tiny android app!");
              setContentView(textview);
          }
      }
      
    3. Kodu çalıştırdıktan sonra console ekranında libX kaynaklı şu hatayla karşılaşmalısınız:

      SDL init failure, reason is: No available video device

      Bu hata da daha öncekilerde olduğu gibi 64-bit sistemde 32-bit kitaplıklarla çalışmak durumunda kaldığımızdan ötürü karşımıza çıktı. Sorun Android SDK’nın 32-bit sistemleri desteklemesi, Pardus bu konuda masum :) . Sorunu çözmek için aşağıdaki kurulumları yapıyoruz:

      $ sudo pisi it libX11-32bit
      $ sudo pisi it libXext-32bit
      $ sudo pisi it libXrender-32bit
      $ sudo pisi it libXrandr-32bit

    4. Uygulamınızı yeniden çalıştırdığınızda, sanal cihaz sorunsuz yüklenmeli ve uygulamanız selamını vermeli :) :

      Bu arada sanal cihazınız gerçek Android telefonunuzdan çok ta farklı değil:

Peki yazdığımız uygulamayı Android cihazımıza nasıl yükleyip kendisine hayat vereceğiz. O da bir sonraki yazının konusu olsun :)