RSS Feed

‘Android’ Category

  1. Android için gerçek zamanlı “push” servisi

    December 17, 2011 by Oğuz Yarımtepe

    Android için gerçek zamanlı “push” servisine ihtiyacımız vardı. Hem Internet hem de Intranette çalışssın istiyorduk. Android için böylesi bir araÅŸtırma yapınca ilk akla gelen c2dm oluyor. android 2.2 ile gelen bu servis Google sunucularını kullanarak gerçek zamanlı olarak cihazınıza mesaj göndermenizi saÄŸlıyor. Gel gör ki bunu için Internet gerekiyor. En tipik örneÄŸi cihaz kapalı iken, Android Markete girip bir uygulamayı indir dedikdten sonra cihazınız açılıp Internete baÄŸlandıktan sonra o uygulamayı indirmeye baÅŸlaması.

    Biraz araÅŸtırınca MQTT kullanarak, bir aracı sunucu ile de bu iÅŸin yapılabileceÄŸini gördüm. Hatta yapılmış örnekler de bulmak mümkün. Ben buradaki örnek uygulamasını Android projesi olarak Eclipse’e aktardım. Yerelime “broker” denilen ve MQTT üzerinden iletiÅŸip gönderdiÄŸiniz mesajları Android cihazlara yollayacak olan bir sunucu kurdum. Tercihim Mosquitto‘dan yana oldu. Ubuntu için


    apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

    demek ve sonrasında mosquitto paketini kurmak yeterli. Ayar dosyasında cihaz erişimleri için güvenlik tanımlamaları yapmak mümkün. Kullanıcı adı tanımlamak, üye olunacak başlıkları belirlemek ve bu başlıklar için cihaz IDleri tanımlamak mümkün.

    Varsayılan ayarlarla da örnek Android uygulaması çalışıyor. Derlemenin olabilmesi için MQTT için bir jar dosyasına ihtiyaç var. IBM sayfasından indirilebilir. wmqtt.jar dosyasını (J2SE dizini altındaki) Android projenizin derleme yoluna harici bir jar olarak eklemeniz gerekiyor.

    Gelen arşiv dosyası içerisinde wmqttSample.jar isimli bir de istemci örneği var. J2SE dizini altındaki bu uygulamayı yerelinizde


    java -jar wmqttSample.jar

    deyip çalıştırabiliyorsunuz. Gelen ekranda “Connect” kısmına tıklayıp sonrasında da “testing” dite bir baÅŸlığa üye olup yazdığınız mesajları “Publish” kısmına tıklayarak Android uygulamanızda görebilirsiniz.  Kaynak koddaki String topics[] = { “testing/#” }; kısmını testing olarak deÄŸiÅŸtirdim.

    Bu sayede yerel aÄŸda/Internet’te çalışan bir MQTT sunucu kullanarak bir API aracılığı ile (Python APIsi var) Android cihazlarınıza yerel/Internet üzerinden gerçek zamanlı mesajlar göndermiÅŸ olabilirsiniz.


  2. Andorid iso ile sanal makinede Android koÅŸturmak

    December 13, 2011 by Oğuz Yarımtepe

    Android için uygulama yazarken genel olarak Eclipse ve Android SDK kullanarak yazılan kod derleme sırasında sanal bir cihazda test ediliyor. Sanal makinenin açılması, oluÅŸan derlenmiÅŸ apknın makineye kurulması, kurulduktan sonra sizin açılan sanal cihazda etkileÅŸim ile menulerde gezinmeniz bazen yavaÅŸ olabiliyor. Beraber çalıştığımız öğrenciler X86 için derlenmiÅŸ ve sanal makineye kurmanızı saÄŸlayan bir iso bulmuÅŸlar. Projenin sayfasında sadece 2.2 için deÄŸil 2.3 ve farklı donanımlar için derlenmiÅŸ isoları da bulmak mümkün. Ben 2.2 olanını VirtualBox’a kurdum. Kurulum yapıldıktan sonra çıkan “Create Fake SD Card” seçeneÄŸini de aktif edip kurulumdan sonra sanal bir SD kart oluÅŸturulmasını saÄŸlamak gerekiyor. Android’in kurulacağı bir disk yanında Virtualbox’ta oluÅŸturulan sanal makineye ikinci bir disk ekleyip ext2 ile formatlayıp, etiket olarak SDCARD atanması da söyleniyor.[1][2]

    Sonuçta elinizde daha hızlı çalışan bir Android oluyor. Bu sanal Android’e dışarıdan bir apk kurmak da epey kolay. Bunun için Android SDK içerisinden çıkan adb komutunu kullanmak lazım:

    adb connect :5555

    ile cihaza bağlandıktan sonra


    adb install -r apk_dosyasi.apk

    komutu ile kurulum yapmak mümkün.

    Bu komut sonunda eğer sertifika hatası alınıyor ise uygulamanın kök dizininde önce


    update project --target hedef_cihaz_numarası --path .

    demek gerekiyor. Hedef cihaz numarası da


    android list targets

    komutu ile öğrenilebiliyor. android komutu da android-sdk içerisinde bulunuyor. Bu işlemden sonra


    ant -Dsdk.dir=android_sdk_yolu release

    ile uygulamanın bulunduğu dizinde bin altında imzalanmamış bir apk oluşturmak mümkün. Oluşan apkyı imzalamak için ise http://developer.android.com/guide/publishing/app-signing.html#ExportWizard adresinde yazılanları takip etmek yeterli. Sonrasında uygulamayı adb ile kurup sanal makinede denemek mümkün.