Android Emülatör İpuçları

Merhaba yazılımperver arkadaşlar. Bu yazımda android için yazılım geliştirirken sıklık ile kullanmış olduğumuz emülatörlere ilişkin işiniz kolaylaştıracağını düşündüğüm bir takım ipuçlarını sizler ile paylaşacağım. Genelde ben android için yazılım geliştirmek için de VS (Visual Studio) kullanıyorum (yakında kotlin ile Android studio’ya ya da başlayacağız inşallah) ve o sebeple Android studio kurulu değil. Android te artık SDK yöneticisine ilişkin grafiksel kullanıcı arayüzlü uygulamayı ayrı olarak devam ettirmeme kararı aldığı için işimin çoğunu ya VS içerisinden ya da komut satırı üzerinden halletmeye çalışıyorum. İşte bu yazımda da, bu durumda olanlara yardımcı olacak bir takım komutları sıralayacağım. Bu ipuçlarından önce Android Araçları nın kurulu olduğu ve ortam değişkenlerinden PATH’e eklenmiş olduğundan emin olunuz lütfen.

  • Intel HAXM Hızlandırıcısı:
  • İlk önce “sdkmanager” aracına dair bir kaç komuta bakacağız. sdkmanager ile ilgili daha detaylı bilgi için bu android sayfasına bakabilirsiniz. Bu arada bu araç fiziksel olarak Android SDK dizini altında “tools/bin” dizininde bulunur.
  • Mevcut android paketlerini görüntülemek için (kurulu olanlar ve indirilebilecekler:
    • sdkmanager –list” (iki tire var!) i çağırdığınız aşağıdaki gibi bir çıktı göreceksiniz (aşağıdakini sadeleştirdim 🙂
    • Burada kurabileceğiniz eklentiler, SDK araçları, API’ler, “system-images”, vb. ler sıralanır

  • Zaten kurulmuş olan paketleri güncellemek için:
    • sdkmanager –update
    • Bu komut sonrasında eğer ““Failed to move away or delete existing target file” gibi bir hata alırsanız. Stackoverflow’da bahsedilen yöntemi takip edebilirsiniz (bir kere benim de başıma geldi)
  • Sistem suretleri (“System-image”) ‘leri eklemek için:
    • Sistem sureti temel olarak geliştirdiğiniz uygulamaları emülatör üzerinde kullanmak için farklı android sürümü ve işlemci mimarileri için hazırlanmış ve android uygulamalarının üzerinde çalışması için gereken işletim sistemi, konfigürasyon, uygulama vb bileşenleri içeren unsurlardır. Daha önce klonlama ve benzeri aktiviteler ile uğraştıysanız sabit diskinizin klonu ile mantıken bu suretler aynı yapıdalar. “google_apis” ibareleri geçen sistem suretleri google’a dair google map ve benzeri kütüphanelere ilişkin API’leri de içeren suretlerdir,
    • Emülatör oluşturmadan önce muhakkak en az bir tane suret indirmeniz gerekmekte,
    • Ör. Android 28 yüklü x86 işlemci mimarisine sahip ve google API’lerini içeren sistem suretini kurmak için “sdkmanager “system-images;android-28;google_apis;x86” komutunu kullanabilirsiniz. Burada çift tırnak içerisindeki metni yukarıdaki paket listesinden kopyalayıp kullanabilirsiniz. Bu komut çağırdığınızda öncelikle size bir lisans sözleşmesi sorulacak ve buna evet dedikten sonra ilgili suret indirilmeye başlanacak,
    • İndirilen suretler Android SDK dizini altında “system-images” dizinine eklenir. İndirdikten sonra bir göz atıp incelemenizi öneririm,
    • Bir diğer önemli not is bazı uygulamalar Google Play servislerine ihtiyaç duyuyor olabilir. Bunlar için indirdiğiniz suretin muhakkak “google_apis_playstore” ‘ı desteklediğinden emin olun.
  • Şimdi emülatör oluşturmak ve bunları yönetmek için kullanılan “avdmanager” aracına dair komutlara bakalım. Bu araçta fiziksel olarak Android SDK dizini altında “tools/bin” dizininde bulunur. Bu komuta ilişkin daha detaylı bilgi için şu android sayfasına bakabilirsiniz.
  • Emülatör oluşturmak için:
    • Yukarıda indirmiş olduğumuz sistem suretine ilişkin emülatör oluşturmak için “avdmanager create avd -n EmulatorIsmi -k “system-images;android-28;google_apis;x86” ” komutunu kullanabilirsiniz. Burada EmulatorIsmi yerine daha sonra bu emülatöre erişmek için kullanacağınız ismi verin. Bu araç ile kullanabileceğiniz bir takım opsiyonlar:
    • “-n EmulatorName” isim opsiyonu,
    • “-k EmulatorSystemImage” emülatöre ilişkin sistem sureti,
    • “-c SdCardImagePath|SdCardImageSize” opsiyonu ile oluşturulacak olan SD kart suretinin dizini ve boyutunu belirleyebilirsiniz,
    • “-p EmulatorPath” opsiyonu ile emülatörün oluşturulacağı dizini belirtebilirsiniz. Varsayılan kullanıcıya ait dizin içerisinde “.android/avd” dizinine oluşturulur.
  • Oluşturulan emülatörleri görmek için:
    • avdmanager list avd” ya da “emulator -list-avds” komutlarını kullanabilirsiniz.
  • Oluşturulan emülatörü çalıştırmak için:
    • emulator -avd EmulatorIsmi” komutunu kullanabilirsiniz. Bu araç ile kullanabileceğiniz opsiyonlar için ise şu android sayfasına bir göz atabilirsiniz.
    • Eğer “Missing emulator engine program for ‘x86’ CPU” gibi bir hata alırsanız. PATH değişkeni içerisinde Android SDK dizini içerisindeki “emulator” dizininin “tools” dizininden önce olduğundan emin olun ya da tam komut yolunu girin.
    • Eğer “emulator: ERROR: x86 emulation currently requires hardware acceleration!
      Please ensure Windows Hypervisor Platform (WHPX) is properly installed and usable.
      CPU acceleration status: VT feature disabled in BIOS/UEFI” gibi bir hata alırsanız ise HAXM’in doğru bir şekilde kurulduğundan ve VT-x in BIOS üzerinden aktifleştirildiğinden emin olunuz.
  • Bir emülatörü silmek için:
    • avdmanager delete avd -n EmulatorIsmi” komutunu kullanabilirsiniz.
  • Bağlı cihazları listelemek için:
    • adb devices” komutunu kullanabilirsiniz. Eğer bağladığınız cihaz burada görünmüyor ise USB sürücülerini ve USB hata ayıklama ayarlarının açık olduğunu kontrol edin.
  • Bağlı cihaza dosya atmak/almak için:
    • adb push/pull” komutlarını kullanabilirsiniz. Burada dizinlere ilişkin olu verirken “\” değil de “/” kullanıldığını unutmayınız.
    • Detaylı bilgi için şu android sayfasına bakabilirsiniz.
  • Bağlı cihazı yeniden başlatmak için:
    • adb reboot” komutunu kullanabilirsiniz.
  • Bağlı cihaza uygulama kurmak için:
    • adb install UygulamaIsmi.apk” komutunu kullanabilirsiniz.
    • Eğer var olan bir uygulamayı güncellemek istiyorsanız “-r” opsiyonunu ekleyiniz.
    • Özellikle SD kart üzerine kurulum için ise “-s” opsiyonunu kullanabilirsiniz.
  • Android Debug Bridge (adb)” ile ilgili diğer komut ve detaylı bilgi için ADB Shell sayfasına bir göz atabilirsiniz. Oldukça detaylı bir liste var. Tabi şu android sayfası da var.

Daha detaylı bilgi ve diğer komut satırı komutları için aşağıdaki adrese bir göz atabilirsiniz:

https://developer.android.com/studio/command-line/

Bir sonraki yazımda görüşmek üzere kendinize iyi bakın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.