ADB veya açılımı Android Debug Bridge, olan bu terim Android uygulama geliştirme alanında karşımıza sık sık çıkan bir teknolojidir adıdır. Cihazınızı USB ile bilgisayarınıza bağladığınızda veya cihazınızdan 'Geliştirici Seçenekleri’ne göz attığınızda, mutlaka Android Debug Bridge ve ADB terimi ile karşılaşırsınız. Peki sık sık duyduğumuz bu ADB ne anlama geliyor? kullanım amacı nedir? gibi sorulara bu yazımızda cevap verdik.

Bu blog yazımızda aşağıdaki başlıklara değineceğiz;

  • ADB Nedir
  • ADB Nasıl Yüklenir
  • ADB Nasıl Çalışır
  • ADB Bileşenleri
  • ADB Protokolleri
  • ADB Kurulumu
  • Hata Ayıklama modunu etkinleştirmek
  • Wi-Fi ile bir cihaza bağlanmak
  • Bağlantılı olan cihazlara komut gönderme
  • ADB Komutları

ADB (Android Debug Bridge) Nedir?

Google’nin yaptığı tanıma göre; 
 

ADB bir emülatör örneğinin veya Android destekleyen cihazınızın durumunuzu yönetmenizi sağlayan çok yönlü bir araçtır.
 

Daha basit anlatmamız gerekirse ADB, Android bir cihazla iletişim kurmanızı sağlayan, çok yönlü bir komut satırı aracıdır. ADB komutları, uygulama yükleme, hata ayıklama, cihazdan ekran görüntüsü alma, video çekme gibi birçok işlemi sizin için kolaylaştırır. Ayrıca çift yönlü olarak yine ADB üzerinden dosya aktarımı yapabilirsiniz.

  • Client (İstemci) : İstemci geliştirme makinenizde çalışır. İstemciyi ADB komutları ile terminalden çağırabilirsiniz.
  • ADBD (Servis) : Aygıttaki komutları çalıştıran bir arkaplan programıdır.
  • Client (Sunucu) : İstemci ile arkaplandaki program arasında iletişimi yönetir.

Özellikle yazılım geliştirme aşamasında adb komutları size hız katabilir. Geliştirme ortamınız üzerinde adb komutları ile ilgili çeşitli teknolojiler mevcuttur. Android geliştirme ortamları hakkında daha detaylı bilgi almak için En iyi 10 Android geliştirme ortamı isimli yazımızı inceleyebilirsiniz. 

ADB Nasıl Yüklenir ?

ADB özelliklerini kullanabilmek için hem geliştirme yaptığınız bilgisayarınız üzerinde hemde uygulamayı yükleyeceğiniz mobil cihaz üzerinde çeşitli ayarlar yapmanız gerekmektedir.

Telefon için ayar ve kurulum

  • Telefonunuzdan Ayarları açın
  • Telefon Hakkında seçeneğine tıklayın (genelde en alt kısımdadır)
  • Geliştirici Seçeneklerini aktif etmek için 7 kez Build Number kısmına dokunun
  • Tamamlandığında aşağıda developer olduğunuza dair bir toast mesajı göreceksiniz
  • Ana Menüye geri dönün ve Geliştirici Seçenekleri menüsünün geldiğini göreceksiniz
  • Sonrasında USB hata ayıklama modunu etkinleştirin.

Windows için ADB ayar ve kurulum 

  • Windows için ADB ZIP dosyasını indirin
  • Bu ZIP dosyasının içeriğini bir klasöre çıkarın
  • Çıkardığınız dosyanın içerisine girin
  • Daha sonra burada Shift’i basılı tutarak sağ tuşa basın ve “burada komut sistemini aç” seçeneğine tıklayın
  • Telefonunuzu veya tabletinizi bir USB kablosuyla bilgisayarınıza bağlayın
  • USB modunuzu dosya aktarma moduna getirin (Bazı telefonlar isteyebilir, bazıları istemez)
  • ADB‘yi arkaplanda başlatılan cihazları görmek için açtığımız komut istemcisinde “adb devices” komutunu yazın
  • Telefonunuzun ekranında , USB Hata Ayıklama moduna izin ver ya da verme şeklinde uyarı gelecektir
  • Son olarak “adb devices” komutunu tekrar girin cihaz ismini veya ip adresini görüyor olacaksınız

macOS için ADB ayar ve kurulum

  • macOS için ADB ZIP dosyasını indirin
  • Bu ZIP dosyasının içeriğini bir klasöre çıkarın
  • Terminali açın ,
  • ADB’yi çıkardığınız konuma gidin örnek ; cd/Users/Emre/Desktop/platform-tools
  • Telefonunuzu veya tabletinizi bir USB kablosuyla bilgisayarınıza bağlayın
  • Dosya aktarma modunu (MTP)‘yi etkinleştirin
  • Telefonunuzun ekranında, USB Hata Ayıklama moduna izin ver ya da verme şeklinde uyarı gelecektir
  • Son olarak “adb devices” komutunu tekrar girin cihaz ismini veya ip adresini görüyor olacaksınız

ADB kullanarak Wi-Fi ile bir cihaza bağlanmak

ADB genelde USB üzerinden cihazla iletişim kurar, fakat aşağıda ki gibi USB üzerinden ilk kurulumdan sonra adb’yi Wi-Fi üzerinden de kullanabilirsiniz.

ADB Wi-Fi ile kullanabilmek için kurulum

  • Android cihazınızı ve ADB‘yi kullandığınız cihazınızı aynı kablosuz ağa bağlayın. 
  • Aygıtı bir USB kablo ile ADB’yi kullandığınız cihaza bağlayın
  • Hedef aygıtı adb tcpip 5555 diyerek 5555 numaralı bağlantı noktasında bir TCP/IP bağlantısı dinleyecek şekilde ayarlayın
  • USB kablosunu hedef aygıttan çıkarın
  • Ayarlar>Wifi Ayarları> Gelişmiş diyerek cihazınızın IP adresine bakın 6- Cihaza IP adresi ile bağlanın adb connect device_ip_address
  • Bağlı olup olmadığını görebilmek için adb devices komutunu kullanabilirsiniz.

ADB Nasıl Çalışır?

ADB‘yi başlattığınızda, client (istemci) ilk olarak çalışan bir ADB sunucusu işleminin olup olmadığını kontrol eder. Eğer yoksa sunucu işlemini başlatır. Sunucu ilk başladığında, 'local' TCP bağlantı noktası 5037’ bağlanır ve client(istemci)’den gelen istekleri dinler. Tüm client(istemciler) server(sunucu) ile iletişim kurmak için 5037 no'lu bağlantı noktasını kullanırlar.

Daha sonra server(sunucu) çalışan tüm cihazlar ile bağlantı kurar ve ilk 16 cihaz 5555 ila 5585 aralığındaki tek sayılar ile bağlantı noktalarını kurarlar. Her emülatörün çift sayı ile bağlantı kurduğunu unutmayın. 

Örneğin;
Emulator 1, konsol : 5554 
Emulator 1, adb : 5555 
Emulator 2, konsol : 5556 
Emulator 2, adb : 5557
vs ....

Sunucu tüm cihazlara başarılı bir şekilde bağlantı kurduysa, adb komutlarını kullanarak bu cihazlara erişebilirsiniz. Herhangi bir istemciden veya komut dosyasından kontrol edebilirsiniz.

ADB Komutları

ADB Debugging

  • adb devices : Bağlı olan cihazların listesini görüntüler.
  • adb forward --list : Tüm soket bağlantılarını listeler.
  • adb forward tcp:xxxx tcp:yyyy : xxxx bağlantı noktasının yyyy’e aktarılmasını sağlar.
  • adb kill-server : Sunucu işlemini sonlandırır.

Wireless

  • adb connect : Hedef aygıt ile bağlantı kurmaya yarar.
  • adb tcpip 5555 : Hedef aygıtı 5555 numaralı bağlantı noktasında bir TCP/IP bağlantısı dinleyecek şekilde ayarlar.
  • adb connect 192.168.xxx.xxx : Wi-Fi üzerinden bir cihaza bağlar.
  • adb devices : ADB’ye bağlı tüm cihazları listeler.
  • adb usb : Usb modunda yeniden başlatır

Package Manager

  • adb install : Hedef aygıta yükleme yapmak için kullanılır.
  • adb install test.apk : Tek bir paketi aktarıp yükleyebilirsiniz.
  • adb install-multiple test.apk test2.apk: Birden fazla apk’yı aktarıp yükleyebilirsiniz.
  • adb install-multi-package test.apk demo.apk : Birden fazla apk’yı cihaza aktarıp atomik olarak kurabilirsiniz.
  • adb install -r test.apk : Uygulamada ki mevcut verileri koruyarak yeniden yükleyebilirsiniz.
  • adb install -t test.apk : Test paketlerine izin verebilirsiniz. (yalnızca hata ayıklanabilir paketler için)
  • adb install -d test.apk : Sürüm kodunun eski sürümlere geçmesine izin verir ( Yalnızca ayıklanabilir paketler için )
  • adb install -g test.apk : Tüm çalışma zamanı izinlerini ver ( Uygulama bildiriminde listelenen tüm izinleri ver.
  • adb install --instant test.apk : Uygulamayı geçici bir yükleme olarak yüklenmesine olanak sağlar.
  • adb install --fastdeploy test.apk : Hızlı kurulmasına neden olur.
  • adb install --no-streaming test.apk : Paket yöneticisini her zaman ayrı adımlar olarak çağırıp apk’yı yüklemeye olanak sağlar.

adb uninstall, shell ve pm komutları

adb uninstall test.apk : test.apk’yı cihazdan silmeye yarar
adb unistall -k test.apk : Önbellek de bulunan verileri saklar daha sonra silme işlemi gerçekleştirir.
adb shell pm list packages : Tüm paketleri listeler
adb shell pm list packages -f : İlişkili paketler listelenir
adb shell pm list packages -a : Bilinen tüm paketler listelenir (APEX’ler hariç)
adb shell pm list packages –apex—only : Sadece APEX paketlerini listeler
adb shell pm list packages -d : Sadece devre dışı bırakılış paketleri listeler
adb shell pm list packages -e : Sadece etkin paketleri listeler
adb shell pm list packages -s : Sadece sistem paketlerini listeler
adb shell pm list packages -3 : Sadece üçüncü taraf paketlerini listeler
adb shell pm list packages -i : Sadece kurulum dosyalarını gösterir. 
adb shell pm list packages -U : Paket Uid’sini göster
adb shell pm list packages -u : Kaldırılmış paketleri dahil et
adb shell pm list packages –show-versioncode : Version sürümü için
adb shell pm list packages –uid UID : Sadece bu uid’ye sahip paketleri gösterir
adb shell pm list packages -user USER_ID : Belirtilen id’ye sahip alt paketleri gösterir
adb shell pm path com.android.chrome : Yüklü paket adının apk yolunun adını yazdırın
adb shell pm clear com.test.abc : Paketle ilişkili tüm verileri siler.

File Manager

adb pull/mny/sdcard/Download/test.apk pc.apk : Android cihazınızdan dosya kopyalamanıza yarar
adb push pc.apk mnt/sdcard/Download/test.apk : Local cihazınızdan Android cihazınıza dosya kopyalamanızı sağlar

adb shell ls /system/bin : Dosya yollarını ve dosyaları listeler
adb shell ls -a : Tüm gizlilik içeren dosyaları listeler
adb shell ls -d : Sadece dosya yollarını listeler
adb shell ls -R mntsdcard/Download : Yinelemeli alt klasörlerin listeleri
adb shell cd /mnt/sdcard/Download : Dosya yolunu değiştirirsiniz

adb shell rm /mnt/sdcard/Download/test.apk : rm dosyaları, dizinleri ve sembolik bağlantıları kaldırmak için kullanılan bir komut satırı yardımcı programıdır
adb shell rm -f /mnt/sdcard/Download/test.apk : Zorla, onay almadan kaldırır. 
adb shell rm -i /mnt/sdcard/Download/test.apk : Kaldırma işlemini onay alarak yapar.
adb shell rm -rR /mnt/sdcard/Download : Dizin içerisinde yinelemeli olarak kaldırma işlemi yapar.
adb shell rm -v /mnt/sdcardDownload/test.apk : Bilgiler vererek kaldırma işlemi yapar.

mkdir /sdcard/tmp : Dizin oluşturmak için kullanılır. 
mkdir -m 777 sdcard/tmp set permission mode : İzinleri belirterek dizin oluştrur.
mkdir -p sdcardtmp/sub1/sub2 create parent directories as needed : Gerekli dizin yapısını oluşturarak dizini oluşturur. 

adb shell touch mntsdcard/Download/test.txt : Bir dosyanın zaman damgalarını oluşturmak için kullanılır.

adb shell pwd : Şifreyi değiştirmek için kullanılır. 

cp sdcard/test.txt sdcard/demo.txt : dosyayı kopyalamak içine kullanılır. 

adb shell mv mnt/sdcard/Download/test.txt mnt/sdcard/DCIM/test.txt : Dosyaları ve dizinleri bir yerden başka bir yere taşımak için kullanılır. 
adb shell mv -f mnt/sdcard/Download/test.txt mnt/sdcard/DCIM/test.txt : İstenen dizine istenen dosyayı taşır ve dosyayı eski dizinden siler.
adb shell mv -i /mnt/sdcard/Download/test.txt /mnt/sdcard/DCIM/test.txt : Eğer taşınacak dizinde aynı isimli bir dosya var ise uyarı verir.
adb shell mv -n /mnt/sdcard/Download/test.txt /mnt/sdcard/DCIM/test.txt : Taşınacak dizinde aynı isimde bir dosya var ise üzerine yazmaz. 

Adb hakkında daha detaylı bilgi almak için Google developers kütüphanesinde yer alan adb linkini inceleyebilirsiniz.

Daha fazla kaynak;

Yorum Yaz

Mail adresiniz gösterilmeyecektir. * işaretli alanların doldurulması zorunludur.