Bu yazıda, Android SDK ile standart olarak gelen emulatörü ve AVD’yi kullanmaktan bunalanların yüzlerini güldürecek bir alternatif tanıtacağım. Şu ana kadar gördüğüm en iyi alternatif olan AndroVM’yi.

Konuyu şu başlıklara ayırdım;

Bir an önce kullanıma geçmek için kurulum adımına atlayabilirsiniz.

AndroVM nedir?

AndroVM, Android işletim sistemini sanal bir makine üzerinde yürütmeyi sağlayan ve kolaylaştıran bir proje. Sürekli geliştirilmeye devam ediliyor. Windows, Linux ve Mac-OS işletim sistemlerinin üçünü de destekliyor. Daha fazla bilgiyi projenin blogunda bulabilirsiniz: androvm.org

Nasıl çalışır, gereksinimleri nelerdir?

AndroVM tek başına bir emulatör değildir, VirtualBox üzerinde çalışabilecek Android ROM’ları oluşturur. Bu oluşturma sırasında çözünürlük ve DPI gibi bazı yüzeysel seçenekler kullanıcı tarafından belirlenebilir. AndroVM bu ROM’ları sadece oluşturmakla kalmaz, aynı zamanda geliştirme ortamında kullanılmasını kolaylaştırmak için ASTRO, Superuser gibi uygulamalar da ekler. Ayrıca sistem ayarlarını yapabileceğiniz androVM Configuration uygulaması da kurulu gelir.

AndroVMplayer aracılığıyla emulatör başlatıldığında VirtualBox altyapısı kullanılarak sistem çalışır. Eğer Eclipse’ten derlenen uygulamaların direkt bu emulatörde çalışması isteniyorsa, Android SDK tools’un içinde bulunan ADB (Android Debug Bridge) tool’u da gereksinimlerden biridir. Android SDK tools yüklendikten sonra SDK Manager üzerinden herhangi bir güncelleme yapmak gerekmez. Yapılsa dahi indirilen sistem imajları kullanılmaz.

Kısaca gereksinimlar;

  • VirtualBox
  • Android SDK Tools

Avantajları / Dezavantajları

En çok kullanılan standart emulatör ile karşılaştırılarak avantaj ve dezavantajlar aşağıdaki gibi listelenebilir.

Avantajları;

  • Çok daha hızlıdır (açılırken 4-6, çalışırken ve uygulama yüklerken 10-30 kat)
  • Google hesabı eklenip, PlayStore gibi uygulamalar kullanılabilir
  • Sanal bir ekran kartı yerine bilgisayarın fiziksel ekran kartını kullanabilir

Dezavantajları;

  • Hemen hemen standart emulatörün sahip olduğu her özelliğe sahip olsa da dökümantasyonu aynı düzeyde değil. Bir problem oluştuğunda, pek yaygın kullanımı olmadığı için destek alınacabilecek sadece iki nokta var; geliştirici blogu ve AndroVM Google grubu.
  • Tüm Android sürümlerinin imajları yok. Şu anda sadece 4.1.1 için var fakat geliştirici IDE aracılığıyla yazdığı uygulamanın çalışacağı min ve max sürümleri belirttiği için bu büyük bir problem değil.

Kurulum

Windows için indirmeniz gereken her şey özetle bu listededir;

Kurulum için basit birkaç adım var;

  • Yapılması gereken ilk şey VirtualBox’ı kurmak.

VirtualBox’ı indirmek için buraya tıklayın. Sürümün farketmemesi lazım fakat en son sürümü kullanmakta fayda var. Ben 4.2.12 sürümü ile test ettim.

  • VirtualBox için hazırlanmış Android imajlarından (ROM’larından) birini VirtualBox’a import etmek.

Bu imajları hazırlayan AndroVm. Resmi blogundan indirmek için buraya tıklayın. Burada birkaç seçenek göreceksiniz. Bu seçenekler vbox86tp, vbox86t ve vbox86p. Son ekler (t, p ve tp) tablet ve telefon anlamına geliyor. Eğer telefon özelliği olan bir tablet simule edecekseniz (ki benim en uygun gördüğüm bu) vbox86tp versiyonunu indirmeniz gerekir. Sadece tablet (t) olan versiyonu indirirseniz, telefon özelliği gerektiren uygulamaları test edemezsiniz.

“with gapps & houdini & flash” son eki ise indirilen sisteme Google Applications, Houdini ve Flash’ın yüklü geleceğini ifade eder. Eğer Google Play’i kullanacak veya Google hesabı ile eşleşen bir sistem istiyorsanız bu versiyonu indirmeniz tavsiye edilir. Aksi takdirde bu özellikleri sonradan eklemek başınızı ağrıtabilir. Çünkü Google’ın bu uygulamaları sadece gerçek bir cihaz üzerinden kullandırmak gibi bir saplantısı var. Dolayısıyla bu uygulamaları resmi olmayan bir kaynaktan indirip, yazma korumalı olan /system/apps klasörüne atmanız gerekiyor.

İndirdiğiniz dosyayı import etmek için; VirtualBox’ı açın. File menüsünden Import Applience‘ı seçin. Açılan pencereden Open Applience butonunu tıklayın ve indirdiğiniz dosyayı (.ova uzantılı) seçin. Next tuşuna tıkladıktan sonra karşınıza sanal makine özellikleri gelecek, burada bir şey değiştirmenize gerek yok. İsterseniz isim kısmını değiştirebilirsiniz. Import tuşuna tıkladıktan sonra sanal makinenin listeye eklenir.

  • Bu aşamada sanal makineyi başlatıp çalıştığını görebilirsiniz fakat bu makinenin bilgisayarınızla iletişim içinde olmasını istiyorsanız (Eclipse ile debug gibi amaçlarla), yapılması gereken birkaç küçük ayar var. Ayrıca fiziksel ekran kartı için de sonraki adımda anlatılacak AndroVMplayer’ı kurmanız gerekiyor. Ben fiziksel ekran kartını kullanmadan basit birçok uygulamayı bile düzgün bir görüntü ile çalıştıramadım, dolayısıyla AndroVMplayer’ı kurmanız her halükarda önerilir.

Sanal makine açıksa kapatın. Makine ismine sağ tıklayarak Settings seçeneğini tıklayın. Açılacak pencerede sol menüden Network‘ü seçin. Burada Adapter 1 sekmesinde Enable Network Adapter işaretli olmalı, Attached to kısmından Host-only Adapter seçeneğini seçin. Adapter 2 sekmesinde ise aynı şekilde NAT seçili olmalı. OK‘a tıklayarak ayarları kaydedin. Artık bilgisayarınız ve sanal makineniz aynı ağ üzerinde.

Bu aşamada dikkatinizi çekebileceği gibi fiziksel tuşlar (ses aç-kıs, tuşları kilitle gibi) yok. Fiziksel tuşlara klavyenizde karşılık gelen tuşları öğrenmek için buraya tıklayarak yazının sonundaki notlara göz atabilirsiniz ya da bir sonraki adımda anlatılacak AndroVMPlayer’ı kurabilirsiniz.

  • AndroVMPlayer’ı kurmak.

AndroVMPlayer’ı kurmak için tekrar AndroVM resmi bloguna gidip, AndroVMplayer archives başlığı altından sisteminize uygun olan zip dosyasını indirin ve içeriğini uygun bir yere çıkartın. Artık VirtualBox’ı kapatabilirsiniz. AndroVMplayer dosyasını çalıştırın. VirtualBox ile etkileşime geçerek kurduğunuz sanal makineyi tespit edecek ve ismini alt kısımda buluan selectbox’a ekleyecektir.

Ekran çözünürlüğünü Preset resolutions seçeneği işaretliyken hazır olanlardan birini seçerek ayarlayabilir ya da Manual resolution seçeneğini işaretleyip istediğiniz değerleri girebilirsiniz. Ben çözünürlüğü hazır listede olmayan 480px * 600px - 160DPI olarak ayarladım. Bu ayarlar ile ortalama bir monitör için kolayca çalışılacak alan sağlanıyor ve yazılar/iconlar bozulmamış bir şekilde görünüyor. Deneyerek kendinize en uygun çözünürlük ayarlarını bulabilirsiniz.

Tüm ayarlar tamamlandıktan sonra seçim kutusunda sanal makinenizin adı olduğundan emin olun ve Run tuşuna basın. Eğer Enable harware accelaration butonu olan bir uyarı penceresi açılırsa bu tuşa tıklayarak devam edin. Sanal makineniz sağ tarafında bulunan fiziksel tuşlarla birlikte başlayacak.

  • Aklınıza takılan diğer sorular için yazı sonundaki notları inceleyebilir ya da yorum yazabilirsiniz.

Eclipse’e entegre etme

Bu kısım Eclipse, Android SDK ve Eclipse Android eklentisini kurduğunuz varsayılarak yazılmıştır.

Her şey tamamlandıktan sonra ADB (Android Debug Bridge) Server’a yeni bir cihazımız olduğunu bildirmemiz gerekiyor. Android SDK’sı içinde platform-tools klasöründe bulunan adb adlı aracı kullanacağız.

Öncelikle sanal makinenin aldığı IP’yi öğrenmelisiniz. Bunun için sanal makineyi başlatın ve hazır olarak gelen androVM Configuration uygulamasını başlatın. Eğer bağlantı başarılıysa “eth0: ip 192.168.56.101″ gibi bir ifade göreceksiniz. Bu IP’yi kullanacaksınız, ekranı açık bırakın. Eğer burada IP göremediyseniz notlar kısmından 5. maddeyi okuyun.

Sanal makine her başladığında bu komutlar çalıştırılacağı için bir .bat (veya Linux’ta .sh) dosyası oluşturmanız işinizi kolaylaştıracaktır. Windows için aşağıdaki komutlar ile .bat dosyanızı oluşturabilir veya komut satırına girebilirsiniz. <Gerekli yerleri> değiştirmeyi unutmayın.

cd "<Android SDK klasörü>/platform-tools" # SDK klasörüne git
adb connect <Sanal makine IP’si> # Bağlan
adb devices # Cihazları listele
pause # Dur

Son iki satır sadece bağlantının gerçekleştiğini doğrulamak için, kaldırılabilir. Komutları dosyaya kaydettiyseniz bu dosyayı çalıştırmayı unutmayın. İşlem başarılı işe “adb devices” komutundan sonra List of devices attached satırı altında IP adresinizi görebilirsiniz.

Bu aşamadan sonra sanal makine bilgisayara bağlı bir Android cihaz gibi çalışıyor. Eğer daha önce elinizdeki cihazı Eclipse ile debug amaçlı kullandıysanız aynı işlemleri uygulayabilirsiniz.

Bilmeyenler için; Eclipse’te projenize sağ tıklayın ve Run As > Run Configurations seçeneğine gidin. Açılan pencerede Target sekmesine gidin ve “Always prompt to pick device” seçeneğini işaretleyin. Sırasıyla Apply ve Run tuşlarını tıklayın. Açılan pencerede üst kısımda bulunan “Choose a running Android device” seçeneğini işaretleyin ve sanal makinenizi seçin. Sol alt köşede bulunan “Use same device for future launches” seçeneğini işaretlerseniz her seferinde bu ekranı görmeniz engellenir. OK tuşuna basın, uygulamanızın sanal makinede çalıştığını görebilirsiniz.

Notlar

  • Ekran kilitleme/açma için F1 veya Home tuşu, geri tuşu için ESC kullanılabilir.
  • Klavyenin ekranda görünmesini istiyorsanız androVM Configuration uygulaması üzerinden Keyboard‘u işaretleyin ve Virtual Keyboard‘u seçin. Save butonuna tıkladığınızda sanal makine tekrar başlatılacak.
  • Alt kısımdaki çubuğun görünmesini istiyorsanız androVM Configuration uygulaması üzerinden Force StatusBar‘ı işaretleyin ve Save‘e tıklayın. Sanal makine tekrar başlatılacak.
  • Ekran uzun süre değişmediğinde beyaz olarak görünebiliyor. Bir kilitlenme söz konusu değil, makine çalışmaya devam ediyor. Ekranın geri gelmesi için sağdaki fiziksel tuşlardan birine veya ekrana tıklayın.
  • VirtualBox’taki Host-only Adapter ayarlarınızda DHCP Server‘ın aktif edilmiş olması gereklidir. Kontrol etmek için VirtualBox’da File > Preferences > Network yolunu takip edin. Sağdaki Edit (tornavida) butonuna tıklayın ve DHCP Server sekmesinde Enabled‘ın işaretli olduğuna emin olun.
  • Türkçe karakter girerken problemler yaşanıyor, genel bir sorun mu bilmiyorum fakat henüz bir çözüm bulamadım.
  • Daha fazlasını geliştirici blogundaki dökümanda bulabilirsiniz.