Peak Games İş Görüşmesinde Aldığım En Değerli Ders: ADB
- ADB Nedir?
- ADB’nin Temel Kullanım Alanları:
- 1. Cihaz Bağlantısı ve Yönetimi:
- 2. Uygulama Yükleme ve Test Etme:
- 3. Hata Ayıklama (Debugging):
- 4. Dosya Aktarımı:
- 5. Komut Satırı ile Cihaz Yönetimi:
- 6. Uygulamaları Çalıştırma ve Durdurma:
- ADB Nasıl Kullanılır?
- ADB’yi Yükleme:
- Geliştirici Modunu ve USB Hata Ayıklamayı Açın
- ADB Komutlarını Kullanma:
- ADB’nin Genel Kullanım Senaryoları:
- ADB’de Kullandığım Komutlar
- 1. CPU Kullanımı İzleme
- 2. GPU Kullanımı İzleme
- 3. Hafıza Kullanımı (Memory Usage)
- 4. Pil Performansı
- 5. Network Performansı
- 6. Profiling Komutları (Systrace)
İçindekiler
- ADB Nedir?
- ADB’nin Temel Kullanım Alanları:
- 1. Cihaz Bağlantısı ve Yönetimi:
- 2. Uygulama Yükleme ve Test Etme:
- 3. Hata Ayıklama (Debugging):
- 4. Dosya Aktarımı:
- 5. Komut Satırı ile Cihaz Yönetimi:
- 6. Uygulamaları Çalıştırma ve Durdurma:
- ADB Nasıl Kullanılır?
- ADB’yi Yükleme:
- Geliştirici Modunu ve USB Hata Ayıklamayı Açın
- ADB Komutlarını Kullanma:
- ADB’nin Genel Kullanım Senaryoları:
- ADB’de Kullandığım Komutlar
- 1. CPU Kullanımı İzleme
- 2. GPU Kullanımı İzleme
- 3. Hafıza Kullanımı (Memory Usage)
- 4. Pil Performansı
- 5. Network Performansı
- 6. Profiling Komutları (Systrace)

Image generated by ChatGPT
2019 yılının şubat ayının sonlarına doğru askerlik görevimi tamamladım. İstanbul’da bir akrabamızın evinde geçici olarak kalırken bir yandan da iş arıyordum; zor zamanlardı. Sürekli iş görüşmelerine gidip geliyor, her güne kimi insan kaynaklarıyla kimi teknik pozisyonlarla ilgili 2–3 görüşme sığdırmaya çalışıyordum. Karşılaştığım sorulardan biri de ADB hakkındaydı.
Peak Games, bir kış günü tüm TV kanallarında aynı anda, aynı saniyede reklama gireli yalnızca birkaç hafta olmuştu. O ünlü reklamı hatırlarsınız, çok konuşuldu. Mart ayında, çalışmayı çok istediğim Peak ile bir iş görüşmesi yaptım. Pozisyon oyun geliştirme ile ilgili değildi; “Android geliştiricisi” pozisyonuydu.
Farklı bir proje üzerinde çalışmayı planlıyorlardı ancak bu proje gizli bilgi olduğundan detay veremeyeceğim. Sonrasında bana verdikleri değerlendirme projesinde Kotlin, RxJava, Data Binding, LiveData ve Navigation kullandım. Modüler MVVM bir yapı tercih ettim. Bayağı tatlış bir proje ortaya çıkararak bu aşamayı da başarıyla geçtim ve sonrasında canlı kod yazmam için ofise çağrıldım. Ne yazık ki bu görüşme başarısız oldu. O dönemde idiomatic Kotlin bile bilmiyordum ve istenen seviyeye ulaşamamıştım.
Hayatımda aldığım en değerli, en iyi, en başarılı ve beni en ileriye taşıyan iş görüşmesi geri bildirimlerini aldım. En büyük e-ticaret platformlarımızın hepsiyle görüşmelerim olmuştur; hiçbirinden bu kadar şey öğrenmemiştim. İşte o kıymetli geri bildirimlerden biri de ADB idi. Bana gönderdikleri mailde, “Bir Android geliştiricinin ADB’yi bilmesini beklerdik,” demişlerdi. Başta “Android Studio bu kadar iyiyken ne gerek var canım?” demiştim ancak böyle önemli bir görüşmede sorulduktan sonra ne olduğunu tabii ki öğrendim ve sonradan çok fazla kullandığım bir araç hâline geldi. Kullanım alanı çeşitliliğini görünce siz de çok şaşıracaksınız.
ADB Nedir?
ADB, Android cihazlar üzerinde çeşitli komutlar çalıştırmanıza olanak tanıyan bir komut satırı aracıdır. Geliştiricilerin Android cihazlarıyla veya Android emülatörleriyle etkileşim kurmasını sağlar ve çeşitli geliştirme ve hata ayıklama işlemlerini gerçekleştirmek için kullanılır. Bilgisayarınızla Android cihazınızı USB ya da ağ üzerinden bağlayarak cihaz üzerinde komutlar çalıştırmanıza olanak tanır.
ADB’nin Temel Kullanım Alanları:
1. Cihaz Bağlantısı ve Yönetimi:
Cihazın durumu ve bağlı olup olmadığını kontrol etmek için kullanılır.
Örnek komut: adb devices ile bağlı Android cihazları listeler.
2. Uygulama Yükleme ve Test Etme:
Uygulama APK dosyalarını doğrudan bir Android cihazına yüklemek ve çalıştırmak için kullanılır.
Örnek komut: adb install myapp.apk ile APK dosyasını yükler.
3. Hata Ayıklama (Debugging):
Cihazdan logcat çıktısı alarak uygulama hatalarını ve sistem mesajlarını izlemeye olanak tanır.
Örnek komut: adb logcat ile cihazdan gelen logları görüntüleyebilirsiniz.
4. Dosya Aktarımı:
Bilgisayar ile Android cihaz arasında dosya transferi yapmanızı sağlar.
Örnek komut: adb push local_file /sdcard/ ile bilgisayarınızdaki bir dosyayı Android cihaza aktarabilirsiniz.
5. Komut Satırı ile Cihaz Yönetimi:
Cihazda shell komutları çalıştırmanıza olanak tanır. Bu, cihazda doğrudan komut satırı işlemleri yapabileceğiniz anlamına gelir.
Örnek komut: adb shell ile cihazın komut satırına erişim sağlayabilirsiniz.
6. Uygulamaları Çalıştırma ve Durdurma:
Yüklü uygulamaları başlatma veya kapatma, sistem ayarlarını değiştirme gibi işlemler için ADB kullanılabilir.
Örnek komut: adb shell am start -n com.example/.MainActivity ile belirli bir uygulamayı başlatabilirsiniz.
ADB Nasıl Kullanılır?

Image created by Tom
ADB’yi Yükleme:
ADB, genellikle Android SDK Platform Tools ile gelir. Bu araçları Android Studio ile veya Android Developer Sitesi’nden bağımsız olarak indirebilirsiniz. Android Studio indirmek zorunda değilsiniz.
Geliştirici Modunu ve USB Hata Ayıklamayı Açın
Gerçek bir Android cihazı kullanmak için cihazın geliştirici seçeneklerinden USB hata ayıklama (USB Debugging) özelliğini etkinleştirmeniz gerekiyor. Korkmayın, telefonunuz ve verileriniz herhangi bir zarar görmeyecek. Bunun için izlemeniz gereken adımlar şunlardır:
Android cihazınızda Ayarlar>Telefon Hakkında bölümüne gidin.
Yapı Numarası (Build Number) üzerine 7 kez tıklayarak geliştirici modunu açın.
Geliştirici moduna geçtikten sonra, Ayarlar> Geliştirici Seçenekleri altında USB hata ayıklama seçeneğini aktif hâle getirin.
ADB Komutlarını Kullanma:
ADB terminalden veya komut satırından çalıştırılır. Örneğin, bağlı Android cihazlarını listeleyen komutu çalıştıralım:
adb devicesADB’nin Genel Kullanım Senaryoları:
Uygulama geliştirme ve test etme: Geliştiriciler, uygulamalarını gerçek cihazlar üzerinde test etmek ve uygulama çıktısı/logları almak için kullanır. Ben en çok şu senaryoda kullandım: Test veya Google Play Store’a göndereceğim APK dosyasını
gradlew cleanvegradlew assembleReleaseile çıkardıktan sonra cd komutu ile android\app\release dosya yoluna giderek APK dosyasını buldum. Cihazımdaki uygulamayı silip üzerineadb installkomutu kullandım ve mağazaya göndermeden önce kişisel cihazımda son bir test yaptım.Sistem modifikasyonu: Android sistemine özel ayarlar yapmak veya özelleştirmeler uygulamak isteyen kullanıcılar, ADB komutlarını kullanarak cihazın derinliklerine erişebilir. Android cihazlarda varsayılan animasyon hızlarını değiştirmek ADB ile mümkündür. Geliştiriciler, testler sırasında cihazın performansını daha hızlı görmek için animasyon hızlarını düşürebilir veya kapatabilirler. Aşağıdaki komutlar sayesinde, cihazın tüm animasyonları devre dışı bırakılır ve kullanıcı arayüzündeki geçişler daha hızlı hâle gelir. Özellikle performans testlerinde bu modifikasyon, cihazın animasyonlardan bağımsız gerçek hızını görmenizi sağlar. Komutlar:
adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0Root işlemleri: Root yetkilerine sahip cihazlarda, sistem dosyalarına erişim sağlamak ve çeşitli işlemler gerçekleştirmek için ADB kullanılır. Root işlemini sevmediğim için burada hiç kullanmadım ancak merak etmiyor da değilim.
ADB’de Kullandığım Komutlar
Peki ADB bilgisi gerçek hayatta nerelerde işime yaradı? ING Türkiye’de çalışırken sıfırdan yazdığımız bankacılık uygulamasında performans ve hafıza (memory) en büyük önceliklerimizdi. ADB ile performansı izlemek için şunları kullandık, Android Profiler o zamanlar çok yeniydi tabii. :)
1. CPU Kullanımı İzleme
Cihazdaki CPU kullanımını gerçek zamanlı olarak izlemek için aşağıdaki komutu kullanabilirsiniz:
adb shell topBu komut, cihazdaki işlemcinin anlık kullanımını ve hangi uygulamaların CPU kaynaklarını tükettiğini gösterir.
2. GPU Kullanımı İzleme
Grafik performansını izlemek için Android’de GPU gösterge çubuğunu etkinleştirebilirsiniz. Bu özellik, belirli bir uygulamanın grafik performansına dair kare hızını ve gecikmeleri gösterir, GPU kullanımını görselleştirir. Komutla etkinleştirmek için:
adb shell dumpsys gfxinfo <uygulama_paketi_adı> framestats3. Hafıza Kullanımı (Memory Usage)
Cihazda çalışan uygulamaların bellek kullanımını izlemek için aşağıdaki komut kullanılabilir:
adb shell dumpsys meminfoBu komut, cihazdaki tüm uygulamaların bellek kullanımını gösterir. Ayrıca, sadece belirli bir uygulamanın bellek kullanımını görmek için uygulama paketini belirterek şu komutu da kullanabilirsiniz:
adb shell dumpsys meminfo <uygulama_paketi_adı>4. Pil Performansı
Pil durumu ve pil tüketimini görmek için şu komutu kullanabilirsiniz:
adb shell dumpsys batteryBu komut, cihazın pil seviyesi, sıcaklık, voltaj ve şarj durumu gibi bilgileri döner. Uygulamanızın pil üzerindeki etkisini gözlemlemek için kullanışlıdır.
5. Network Performansı
Cihazdaki veri kullanımı ve ağ performansını izlemek için şu komutları kullanabilirsiniz:
adb shell dumpsys netstatsBu komut, cihazın ağ verileri (Wi-Fi, mobil veri) kullanımı hakkında bilgi verir. Uygulamanızın veri kullanımını analiz etmek için faydalıdır.
6. Profiling Komutları (Systrace)
Daha ayrıntılı bir performans analizi için Systrace aracını kullanabilirsiniz. Bu araç, CPU, GPU, I/O, bellek ve daha fazlasını izler. Aşağıdaki komut ile çalıştırabilirsiniz:
adb shell atrace --categories gfx,view,wm,am,sm --buffer-size=100000 --duration=10Bu komut, 10 saniyelik bir izleme yapar ve sonuçları size verir. Daha derinlemesine analizler için Systrace komutunu ve aracını kullanmak, Android performans optimizasyonu için oldukça etkilidir.
ADB, ilk başta gözden kaçırdığım ama Android geliştirme sürecinde bana çok şey katan bir araç oldu. Peak Games ile yaptığım iş görüşmesinden aldığım geri bildirimler hem teknik bilgimi hem de problem çözme becerimi geliştirmemde büyük bir rol oynadı. ADB’yi öğrendikten sonra, uygulamalarımı test etmek ve cihazlar üzerinde daha derin işlemler yapmak mümkün hâle geldi. Eğer Android geliştiricisiyseniz ADB’yi mutlaka öğrenmenizi öneririm; işinizi bir üst seviyeye taşıyacak bir yetenek.
Sıkça Sorulan Sorular
▸ADB ne işe yarar?
ADB, Android cihazı bilgisayara bağlayarak komut satırı üzerinden yönetmenizi sağlar. Uygulama yükleme, hata ayıklama, dosya aktarımı ve cihaz yönetimi gibi işlemleri ADB ile yapabilirsiniz.
▸ADB nasıl kurulur?
ADB'yi kullanmak için önce Android SDK Platform Tools'u bilgisayarınıza yüklemeniz gerekir. Ardından cihazınızda Geliştirici Modunu ve USB Hata Ayıklama seçeneğini açmanız gerekir.
▸ADB için cihazda ne yapılmalı?
Cihazda Ayarlar menüsünden Geliştirici Seçenekleri'ni etkinleştirmeniz, ardından USB Hata Ayıklama (USB Debugging) seçeneğini açmanız gerekir.
▸ADB ile uygulama nasıl yüklenir?
ADB, APK dosyasını doğrudan cihaza yüklemek için kullanılabilir. Bu yöntem özellikle test süreçlerinde uygulamayı mağaza üzerinden geçirmeden cihaza atmak için tercih edilir.
▸ADB ile CPU kullanımı nasıl izlenir?
ADB komut satırı üzerinden cihazın CPU kullanımını gerçek zamanlı olarak takip edebilirsiniz. Yazar bu amaçla belirli ADB komutlarını kullandığını aktarıyor.
▸ADB ile GPU kullanımı izlenebilir mi?
Evet, ADB komutlarıyla cihazın GPU performansı da izlenebilir. Bu özellikle oyun geliştirme süreçlerinde grafik performansını ölçmek için kullanışlıdır.
▸ADB ile hafıza kullanımı nasıl kontrol edilir?
ADB, uygulamanın bellek tüketimini (memory usage) komut satırı üzerinden görüntülemenizi sağlar. Bu sayede bellek sızıntıları ve aşırı tüketim erken fark edilebilir.
▸ADB ile pil performansı takip edilebilir mi?
Evet, ADB komutlarıyla uygulamanın pil tüketimi izlenebilir. Yazar pil performansını da ADB üzerinden takip ettiği komutlar arasında sayıyor.
▸ADB ile network performansı nasıl ölçülür?
ADB, uygulamanın ağ kullanımını izlemeye yarayan komutlar sunar. Bu sayede gereksiz veri tüketimi veya yavaş bağlantı sorunları tespit edilebilir.
▸Systrace nedir ve ADB ile nasıl kullanılır?
Systrace, ADB üzerinden çalıştırılan bir profil alma aracıdır. Uygulamanın sistem genelindeki performansını detaylı şekilde analiz etmek için kullanılır.
▸Yazar ADB'yi nasıl öğrendi?
Yazar, 2019 yılında Peak Games'e yaptığı iş başvurusu sürecinde aldığı geri bildirimle ADB'yi keşfetti. Bu deneyim, ADB'nin Android geliştiriciler için ne kadar kritik bir araç olduğunu ona gösterdi.



