Posts Tagged Android
Robotium ile Test Yazmak
Posted by Sarp Centel in Genel on March 3rd, 2010
Robotium test framework’ü sayesinde fonksiyonel testler yazmak çok kolaylaşıyor. “Selenium gibi, ama Android için” sloganını kullanan framework, test case’lerinizde kullanıcı ile etkileşim gerektiren kısımları otomatik hale getirmenize yarıyor.
Örnek vermek gerekirse, uygulamanızın login ekranında “Gönder” düğmesine tıkla, “Şifre” kutucuğuna “123456″ gir ve ekranda “Hatalı Şifre” kelimesi geçmediğinden emin ol gibi kontrolleri içeren bir test case’i Robotium kullanarak şöyle yazıyorsunuz:
public void testLogin() throws Exception { solo.clickOnButton("Gönder"); solo.enterText(1, "123456"); assertFalse(solo.searchText("Hatalı Şifre")); }
Bu testler Emulator üzerinde çalıştırıldığı için otomatik hale getirdiğiniz hareketleri gözünüzle görebiliyorsunuz. Yazdığınız testlerin geçip geçmediğini Eclipse’in JUnit ekranından takip edebiliyorsunuz.

Uygulamanızı Robotium ile test edebilmek için ana projenizin AndroidManifest.xml dosyasına aşağıdaki satırı eklemeniz gerekiyor:
<uses-permission android:name=”android.permission.GET_TASKS” />
Test projesinin Build Path‘ine robotium-solo-1.x.x.jar dosyasını ekledikten sonra ActivityInstrumentationTestCase2 class’ını extend eden bir test case yazmalısınız. Örnek bir test projesi görmek istiyorsanız Robotium’un Getting Started sayfasına bakmanızı öneririm. Hazırladığınız test case’i çalıştırmak için Eclipse’de projenize sağ tıklayarak “Run as Android JUnit Test” demeniz gerekiyor.
Test yazmayı kolay ve eğlenceli bir hale getiren Robotium test framework’ünü denemenizi şiddetle öneriyorum.
Android Geliştirme İpuçları (I)
Posted by Sarp Centel in Android on March 1st, 2010
Android platformunda geliştirme yaparken hayatımı kolaylaştıran ipuçlarını buradan paylaşacağım. İşte ilk ipucu:
1. Google Code Search ile Android Kaynak Kodunu İnceleyin
Tecrübeli yazılımcıların dahil olduğu açık kaynak projelerin kodlarını incelemek bana keyif veriyor, çünkü başkaları tarafından yazılmış kodları okurken farklı düşünme biçimlerini görerek kendimi geliştirme fırsatı buluyorum.
Android platformu açık kaynak olmasına rağmen kaynak koduna erişmek oldukça zahmetli. Bu noktada imdadıma Google Code Search geliyor, kaynak kodunu görmek istediğim class’ı classadı package:android şeklinde aratıyorum.
Mesela AsyncTask class’ının işleyişini merak ediyordum, asynctask package:android şeklinde aratarak AsyncTask.java kaynak kodunu incelediğimde içerisinde LinkedBlockingQueue kullanıldığını gördüm.
Başka bir kullanım alanı ise nasıl çağıracağınızı bilmediğiniz fonksiyonların örnek kullanımını görmek için: Mesela ConnectivityManager‘ın requestRouteToHost metodu argüman olarak integer cinsinden bir hostname istiyordu. hostname’i nasıl integer’a çevireceğim konusunda dökümantasyon da açıklayıcı olmayınca, Code Search üzerinden requestRouteToHost şeklinde arama yaparak örnek bir kullanım buldum.
BONUS: Stackoverflow bildiğiniz gibi Android için resmi destek kanallarından birisi. Daha önce kullanmadığım bir class’ı kullanacaksam öncelikle classadı [android] şeklinde android olarak taglenmiş başlıklar arasında arama yaparak insanların neler yapmaya çalıştığını, ne sorunlarla karşılaştığını inceliyorum.
Siz de yorumlarda kendi ipuçlarınızı paylaşırsanız sevinirim.
Samsung i7500 Driver Kurulumu
Posted by Sarp Centel in Android on January 8th, 2010
Samsung i7500 (Galaxy) Android cihazını bilgisayarınıza tanıtarak geliştirdiğiniz uygulamaları bu cihaz üzerinde test etmek için gerekli kurulum adımlarından bahsedeceğim.
Kullandığım cihaz üzerinde Android SDK 1.5 kurulu (Settings > About Phone > Firmware version), bilgisayarımda ise 32-bit Windows XP ve Android SDK ile beraber gelen USB Driver package, revision 2 yüklü. Farklı bir konfigürasyona sahipseniz anlatacaklarım sizin için geçerli olmayabilir.

Adım 1: Samsung’un sitesinden telefonun driverlarını içeren Samsung New PC Studio uygulamasını indirip kurun.
Adım 2: Telefonunuzun ayarlarına girerek aşağıdaki kontrol edin:
- Settings > Applications > Development > USB Debugging kutucuğu işaretli olsun
- Settings > About phone > Additional Settings > Mass store only kutucuğu işaretli olmasın
Adım 3: Bilgisayarınızdaki Android SDK dizininin içerisinde usb_driver klasöründe bulunan android_winusb.inf dosyasını text editörü ile açın.
32-bit işletim sistemi kullanıyorsanız [Google.NTx86] kısmının en altına, 64-bit işletim sistemi kullanıyorsanız [Google.NTamd64] kısmının en altına aşağıdaki satırları ekleyin:
; Samsung galaxy
%CompositeAdbInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_00
%SingleBootLoaderInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_04
Adım 4: Telefonu USB kablosu aracılığı ile bilgisayarınıza bağlayın. Windows’da Start > Run > devmgmt.msc yazarak Device Manager‘ı çalıştırın.

Unknown device’ın üzerine sağ tıklayarak Update Driver‘ı seçin. Çıkan menülerden sırayla No, not this time ve Install from a list or specific location (Advanced) seçeneklerini seçin. Daha sonra Android SDK dizininin altındaki usb_driver klasörünü seçerek Next diyebilirsiniz.

Bu aşamadan sonra Android Bootloader Interface yüklenecektir. Artık komut satırında adb devices dediğinizde (öncelikle adb kill-server demeniz gerekebilir) cihazını görebiliyor olmalısınız. Farklı konfigürasyonlar için kendi tecrübelerinizi yorumlarda paylaşırsanız sevinirim.
Güncel Yorumlar