Android Debug Bridge (adb
) adalah alat command line serbaguna yang memungkinkan Anda berkomunikasi dengan
perangkat. Perintah adb
memfasilitasi berbagai tindakan perangkat, seperti menginstal dan
men-debug aplikasi. adb
menyediakan akses ke shell Unix yang dapat Anda gunakan untuk menjalankan berbagai
perintah di perangkat. Ini adalah program klien-server yang meliputi tiga komponen:
- Klien, yang mengirimkan perintah. Klien berjalan pada mesin pengembangan. Anda dapat
memanggil klien dari terminal command line dengan mengeluarkan perintah
adb
. - Daemon (adbd), yang menjalankan perintah di perangkat. Daemon berjalan sebagai proses latar belakang di setiap perangkat.
- Server, yang mengelola komunikasi antara klien dan daemon. Server berjalan sebagai proses latar belakang pada mesin pengembangan Anda.
adb
disertakan dalam paket Android SDK Platform-Tools. Download paket
ini dengan SDK Manager, yang menginstalnya
di android_sdk/platform-tools/
. Jika Anda menginginkan paket Android SDK
Platform Tools mandiri, download di sini.
Untuk mengetahui informasi tentang menghubungkan perangkat untuk digunakan melalui adb
, termasuk cara menggunakan Connection
Assistant untuk memecahkan masalah umum, lihat
Menjalankan aplikasi pada perangkat hardware.
Cara kerja adb
Saat Anda memulai klien adb
, klien akan memeriksa terlebih dahulu apakah ada
proses server adb
yang sudah berjalan. Jika tidak ada, klien akan memulai proses server.
Saat server dimulai, server akan mengikat ke port TCP lokal 5037 dan memproses perintah yang dikirim dari
klien adb
.
Catatan: Semua klien adb
menggunakan port 5037 untuk berkomunikasi
dengan server adb
.
Selanjutnya server akan mengatur koneksi ke semua perangkat yang berjalan.
Server akan mencari emulator dengan memindai port bernomor ganjil dalam rentang
5555 hingga 5585, yang digunakan oleh 16 emulator pertama. Setelah menemukan daemon
adb
(adbd), server akan mengatur koneksi ke port tersebut.
Setiap emulator menggunakan sepasang port berurutan—port genap untuk
koneksi konsol dan port ganjil untuk koneksi adb
. Contoh:
Emulator 1, konsol: 5554
Emulator 1, adb
: 5555
Emulator 2, konsol: 5556
Emulator 2, adb
: 5557
dan seterusnya.
Seperti yang ditunjukkan, emulator yang terhubung ke adb
pada port 5555 sama dengan emulator
yang konsolnya memproses port 5554.
Setelah server menyiapkan koneksi ke semua perangkat, Anda dapat menggunakan perintah adb
untuk
mengakses perangkat tersebut. Karena server mengelola koneksi ke perangkat dan menangani
perintah dari banyak klien adb
, Anda dapat mengontrol perangkat apa pun dari klien mana pun atau
dari skrip.
Mengaktifkan proses debug adb di perangkat Anda
Untuk menggunakan adb dengan perangkat yang dihubungkan melalui USB, Anda harus mengaktifkan proses debug USB dalam setelan sistem perangkat, di bagian Opsi developer. Di Android 4.2 (API level 17) dan yang lebih tinggi, layar Opsi developer disembunyikan secara default. Agar opsi tersebut tersedia, aktifkan opsi Developer.
Anda sekarang bisa menghubungkan perangkat Anda dengan USB. Anda dapat memverifikasi bahwa perangkat Anda tersambung dengan menjalankan adb devices
dari direktori android_sdk/platform-tools/
. Setelah tersambung, nama perangkat akan tercantum sebagai "perangkat".
Catatan: Ketika Anda menghubungkan perangkat yang menjalankan Android 4.2.2 (API level 17) atau yang lebih tinggi, sistem akan menampilkan dialog yang menanyakan apakah Anda ingin menerima kunci RSA agar proses debug dapat dijalankan melalui komputer ini. Mekanisme keamanan ini melindungi perangkat pengguna karena memastikan bahwa proses debug USB dan perintah adb lainnya tidak dapat dijalankan kecuali jika Anda dapat membuka kunci perangkat dan mengonfirmasi dialog.
Untuk mengetahui informasi selengkapnya tentang cara menghubungkan ke perangkat melalui USB, baca Menjalankan aplikasi di perangkat hardware.
Menghubungkan ke perangkat melalui Wi-Fi
Catatan: Petunjuk di bawah tidak berlaku untuk perangkat Wear yang menjalankan Android 11 (API level 30). Lihat panduan melakukan proses debug aplikasi Wear OS untuk mengetahui informasi selengkapnya.
Android 11 (API level 30) dan yang lebih tinggi mendukung deployment dan proses debug aplikasi secara nirkabel dari workstation menggunakan Android Debug Bridge (adb). Misalnya, Anda dapat men-deploy aplikasi yang dapat di-debug ke beberapa perangkat jarak jauh tanpa perlu menghubungkan perangkat Anda secara fisik melalui USB. Dengan demikian, Anda tidak perlu menangani masalah koneksi USB umum, seperti {i>driver<i} penginstalan.
Sebelum Anda mulai menggunakan proses debug nirkabel, lakukan hal berikut:
-
Pastikan workstation dan perangkat Anda terhubung ke jaringan nirkabel yang sama.
-
Pastikan perangkat Anda menjalankan Android 11 (API level 30) atau yang lebih baru untuk ponsel atau Android 13 (API level 33) atau yang lebih baru untuk TV dan WearOS. Untuk mengetahui informasi selengkapnya, lihat Memeriksa & mengupdate versi Android.
-
Jika menggunakan IDE, pastikan Anda telah menginstal Android Studio versi terbaru. Anda dapat mendownloadnya di sini.
-
Di workstation Anda, update SDK Platform Tools ke versi terbaru.
Untuk menggunakan proses debug nirkabel, Anda harus menghubungkan perangkat ke workstation menggunakan kode QR atau kode penghubung. Workstation dan perangkat Anda harus terhubung ke jaringan nirkabel yang sama. Untuk menghubungkan perangkat, ikuti langkah-langkah berikut:
-
Aktifkan opsi developer di perangkat Anda.
-
Buka Android Studio, lalu pilih Pair Devices Using Wi-Fi dari menu jalankan konfigurasi.
Gambar 1. Jalankan menu konfigurasi.Jendela Sambungkan perangkat melalui Wi-Fi akan muncul, seperti yang ditunjukkan pada gambar 2.
Gambar 2. Jendela pop-up untuk menyambungkan perangkat menggunakan kode QR atau kode penyambungan. -
Di perangkat, ketuk Proses debug nirkabel dan sambungkan perangkat Anda:
Gambar 3. Screenshot setelan Proses debug nirkabel di ponsel Google Pixel.-
Untuk menyambungkan perangkat dengan kode QR, pilih Sambungkan perangkat dengan kode QR, lalu pindai kode QR yang diperoleh dari pop-up Sambungkan perangkat melalui Wi-Fi yang ditunjukkan dalam gambar 2.
-
Untuk menyambungkan perangkat dengan kode penyambungan, pilih Sambungkan perangkat dengan kode penyambungan dari pop-up Sambungkan perangkat melalui Wi-Fi. Di perangkat, pilih Sambungkan menggunakan kode penyambungan dan catat kode enam digit yang diberikan. Setelah perangkat muncul di jendela Sambungkan perangkat melalui Wi-Fi, Anda dapat memilih Sambungkan dan memasukkan kode enam digit yang ditampilkan di perangkat.
Gambar 4. Contoh entri kode enam digit.
-
-
Setelah perangkat disambungkan, Anda dapat mencoba men-deploy aplikasi ke perangkat.
Untuk menyambungkan perangkat lain atau melupakan perangkat saat ini di workstation Anda, buka Proses debug nirkabel di perangkat, ketuk nama workstation di bagian Perangkat yang disambungkan, lalu pilih Lupakan.
-
Jika ingin mengaktifkan dan menonaktifkan proses debug nirkabel dengan cepat, Anda dapat menggunakan Kartu developer setelan cepat untuk Proses debug nirkabel, yang dapat ditemukan di Opsi Developer > Kartu developer setelan cepat.
Gambar 5. Setelan Kartu developer setelan cepat dapat digunakan untuk mengaktifkan dan menonaktifkan proses debug nirkabel dengan cepat.
Koneksi Wi-Fi menggunakan command line
Atau, untuk terhubung ke perangkat Anda menggunakan command line tanpa Android Studio, ikuti langkah-langkah berikut:
-
Aktifkan opsi developer di perangkat Anda, seperti yang dijelaskan tadi.
-
Aktifkan Proses debug nirkabel di perangkat, seperti yang dijelaskan tadi.
-
Di workstation, buka jendela terminal dan buka
android_sdk/platform-tools
. -
Temukan alamat IP, nomor port, dan kode penyambungan dengan memilih Pair device with pairing code. Catat alamat IP, nomor port, dan kode penyambungan yang ditampilkan di perangkat.
-
Di terminal workstation Anda, jalankan
adb pair ipaddr:port
. Gunakan alamat IP dan nomor port dari langkah di atas. -
Jika diminta, masukkan kode penyambungan, seperti yang ditunjukkan di bawah ini.
Gambar 6. Akan muncul pesan yang menunjukkan bahwa perangkat Anda berhasil disambungkan.
Menyelesaikan masalah koneksi nirkabel
Jika mengalami masalah saat menghubungkan ke perangkat secara nirkabel, coba langkah-langkah pemecahan masalah berikut untuk menyelesaikan masalah tersebut.
Memeriksa apakah workstation dan perangkat Anda memenuhi prasyarat
Pastikan workstation dan perangkat memenuhi prasyarat yang tercantum di awal bagian ini.
Memeriksa masalah umum lainnya
Berikut adalah daftar masalah umum saat ini terkait proses debug nirkabel (dengan adb atau Android Studio) dan cara mengatasinya:
-
Wi-Fi tidak terhubung: Jaringan Wi-Fi yang aman, seperti jaringan Wi-Fi perusahaan, mungkin memblokir koneksi p2p dan tidak mengizinkan Anda terhubung melalui Wi-Fi. Coba hubungkan dengan kabel atau jaringan Wi-Fi (non-perusahaan) lainnya. Koneksi nirkabel menggunakan
adb connect ip:port
melalui tcp/ip (setelah koneksi USB awal) adalah opsi lain, dalam kasus penggunaan ke jaringan non-perusahaan adalah sebuah pilihan. -
adb
melalui Wi-Fi terkadang dinonaktifkan secara otomatis: Hal ini dapat terjadi jika perangkat beralih jaringan Wi-Fi atau terputus dari jaringan. Untuk menyelesaikannya, hubungkan ulang ke jaringan. -
Perangkat tidak terhubung setelah berhasil disambungkan:
adb
bergantung pada mDNS untuk menemukan dan secara otomatis terhubung ke perangkat yang disambungkan. Jika jaringan atau perangkat Anda belum mendukung mDNS atau telah menonaktifkannya, maka Anda harus hubungkan ke perangkat menggunakanadb connect ip:port
.
Menghubungkan secara nirkabel dengan perangkat setelah koneksi USB awal (hanya opsi yang tersedia di Android 10 dan yang lebih lama)
Catatan: Alur kerja ini juga berlaku untuk Android 11 (dan lebih tinggi), peringatannya adalah bahwa hal ini juga melibatkan koneksi *awal* melalui USB fisik.
Catatan: Petunjuk berikut tidak berlaku untuk perangkat Wear yang menjalankan Android 10 (API level 29) atau yang lebih rendah. Lihat panduan tentang melakukan proses debug aplikasi Wear OS untuk mengetahui informasi selengkapnya.
adb
biasanya berkomunikasi dengan perangkat melalui USB, tetapi Anda juga dapat menggunakan
adb
melalui Wi-Fi. Untuk menghubungkan perangkat yang menjalankan Android 10 (API level 29) atau lebih rendah,
ikuti langkah-langkah awal ini melalui USB:
-
Hubungkan perangkat Android dan komputer host
adb
ke jaringan Wi-Fi yang sama. - Hubungkan perangkat ke komputer host menggunakan kabel USB.
-
Atur perangkat target untuk memproses koneksi TCP/IP pada port 5555:
adb tcpip 5555
- Lepaskan kabel USB dari perangkat target.
- Temukan alamat IP perangkat Android. Misalnya, pada perangkat Nexus, Anda dapat menemukan alamat IP di Setelan > Tentang tablet (atau Tentang ponsel) > Status > Alamat IP.
-
Hubungkan ke perangkat berdasarkan alamat IP-nya:
adb connect device_ip_address:5555
-
Konfirmasikan bahwa komputer host Anda terhubung ke perangkat target:
$ adb devices List of devices attached device_ip_address:5555 device
Catatan: Berhati-hatilah karena tidak semua titik akses (AP)
akan cocok. Anda mungkin perlu menggunakan titik akses
yang firewall-nya telah dikonfigurasi dengan benar untuk mendukung adb
.
Perangkat Anda kini terhubung ke adb
.
Jika koneksi adb
ke perangkat Anda terputus:
- Pastikan host Anda masih terhubung ke jaringan Wi-Fi yang sama dengan perangkat Android Anda.
-
Hubungkan kembali dengan menjalankan langkah
adb connect
sekali lagi. -
Jika tidak berhasil, reset host
adb
Anda:adb kill-server
Kemudian mulai lagi dari awal.
Kueri untuk perangkat
Sebelum mengeluarkan perintah adb
, sebaiknya ketahui instance perangkat yang terhubung
ke server adb
. Buat daftar perangkat yang terhubung menggunakan
perintah devices
:
adb devices -l
Sebagai respons, adb
akan mencetak informasi status ini untuk setiap perangkat:
- Nomor seri:
adb
membuat string untuk mengidentifikasi perangkat secara unik berdasarkan nomor port-nya. Berikut adalah contoh nomor seri:emulator-5554
- Status: Status koneksi perangkat dapat berupa salah satu dari berikut:
offline
: Perangkat tidak terhubung keadb
atau tidak merespons.device
: Perangkat terhubung ke serveradb
. Perhatikan bahwa status ini tidak berarti bahwa sistem Android telah selesai melakukan booting dan siap digunakan, karena perangkat terhubung keadb
saat sistem masih booting. Setelah booting, status ini merupakan status operasional normal untuk suatu perangkat.no device
: Tidak ada perangkat yang terhubung.
- Deskripsi: Jika Anda menyertakan opsi
-l
, perintahdevices
akan memberitahukan tentang perangkat tersebut. Informasi ini berguna jika ada beberapa perangkat yang terhubung sehingga Anda dapat membedakannya.
Contoh berikut menunjukkan perintah devices
dan output-nya. Ada tiga
perangkat yang sedang berjalan. Dua baris pertama dalam daftar adalah emulator, sedangkan baris ketiga adalah perangkat
hardware yang terpasang ke komputer.
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
Emulator tidak tercantum
Perintah adb devices
memiliki urutan perintah corner-case yang menyebabkan emulator
yang berjalan tidak muncul di output adb devices
meskipun
emulatornya terlihat di desktop Anda. Ini terjadi saat semua kondisi berikut
terpenuhi:
- Server
adb
tidak berjalan. - Anda menggunakan perintah
emulator
dengan opsi-port
atau-ports
pada port bernomor ganjil antara 5554 dan 5584. - Port bernomor ganjil yang Anda pilih tidak sibuk sehingga koneksi port dapat dilakukan pada nomor port yang ditentukan — atau, jika port tersebut sibuk, emulator akan beralih ke port lain yang memenuhi persyaratan nomor 2.
- Anda memulai server
adb
setelah memulai emulator.
Salah satu cara untuk menghindari situasi ini adalah membiarkan emulator memilih port-nya sendiri dan menjalankan tidak lebih
dari 16 emulator sekaligus. Cara lainnya adalah dengan selalu menjalankan server adb
sebelum Anda menggunakan
perintah emulator
, seperti yang dijelaskan dalam contoh berikut.
Contoh 1: Dalam urutan perintah berikut, perintah adb devices
memulai
server adb
, tetapi daftar perangkat tidak muncul.
Hentikan server adb
dan masukkan perintah berikut sesuai urutan yang ditunjukkan. Untuk nama
AVD, berikan nama AVD yang valid dari sistem Anda. Untuk mendapatkan daftar nama AVD, ketik
emulator -list-avds
. Perintah emulator
ada di
direktori android_sdk/tools
.
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
Contoh 2: Dalam urutan perintah berikut, adb devices
menampilkan
daftar perangkat karena server adb
dimulai terlebih dahulu.
Untuk melihat emulator dalam output adb devices
, hentikan server adb
, lalu mulai
lagi setelah menggunakan perintah emulator
dan sebelum menggunakan
perintah adb devices
, seperti berikut:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
Untuk mengetahui informasi selengkapnya tentang opsi command line emulator, lihat Opsi startup Command Line.
Mengirimkan perintah ke perangkat tertentu
Jika ada beberapa perangkat yang berjalan, Anda harus menentukan perangkat target
saat mengeluarkan perintah adb
.
Untuk menentukan target, ikuti langkah berikut:
- Gunakan perintah
devices
untuk mendapatkan nomor seri target. - Setelah mendapatkan nomor seri, gunakan opsi
-s
dengan perintahadb
untuk menentukan nomor serinya.- Jika akan mengeluarkan banyak perintah
adb
, Anda dapat menetapkan variabel lingkungan$ANDROID_SERIAL
agar berisi nomor seri. - Jika Anda menggunakan
-s
dan$ANDROID_SERIAL
,-s
akan mengganti$ANDROID_SERIAL
.
- Jika akan mengeluarkan banyak perintah
Pada contoh berikut, daftar perangkat yang terpasang didapatkan, kemudian nomor
seri salah satu perangkat digunakan untuk menginstal helloWorld.apk
di perangkat tersebut:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
Catatan: Jika Anda mengeluarkan perintah tanpa menentukan perangkat target
jika beberapa perangkat tersedia, adb
akan menampilkan error
"adb: lebih dari satu perangkat/emulator".
Jika perangkat yang tersedia ada beberapa, tetapi hanya satu yang merupakan emulator,
gunakan opsi -e
untuk mengirim perintah ke emulator. Jika perangkat yang tersedia ada beberapa,
tetapi hanya satu perangkat hardware yang terpasang, gunakan opsi -d
untuk mengirimkan perintah ke
perangkat hardware.
Menginstal aplikasi
Anda dapat menggunakan adb
untuk menginstal APK di emulator atau perangkat yang terhubung
menggunakan perintah install
:
adb install path_to_apk
Anda harus menggunakan opsi -t
dengan perintah install
saat menginstal APK pengujian. Untuk informasi selengkapnya,
lihat -t
.
Untuk menginstal multi-APK, gunakan install-multiple
. Hal ini berguna jika
Anda mengunduh semua
APK untuk perangkat tertentu untuk aplikasi Anda dari Konsol Play dan ingin menginstalnya pada
pada emulator atau perangkat fisik.
Untuk mengetahui informasi selengkapnya tentang cara membuat file APK yang bisa Anda instal pada instance perangkat/emulator, lihat Membuat dan Menjalankan aplikasi Anda.
Catatan: Jika menggunakan Android Studio, Anda tidak perlu menggunakan
adb
secara langsung untuk menginstal aplikasi di emulator atau perangkat. Sebaliknya, Android Studio
akan menangani pemaketan dan penginstalan aplikasi itu untuk Anda.
Menyiapkan penerusan port
Gunakan perintah forward
untuk menyiapkan penerusan port arbitrer, yang
meneruskan permintaan pada port host tertentu ke port yang berbeda di perangkat.
Contoh berikut ini menyiapkan penerusan port host 6100 ke port perangkat 7100:
adb forward tcp:6100 tcp:7100
Contoh berikut ini menyiapkan penerusan port host 6100 ke local:logd:
adb forward tcp:6100 local:logd
Hal ini dapat berguna jika Anda mencoba menentukan apa yang dikirim ke port tertentu pada perangkat. Semua data yang diterima akan ditulis ke daemon logging sistem dan ditampilkan di log perangkat.
Menyalin file ke dan dari perangkat
Gunakan perintah pull
dan push
untuk menyalin file ke
dan dari perangkat. Tidak seperti perintah install
,
yang hanya menyalin file APK ke lokasi tertentu, perintah pull
dan push
memungkinkan Anda menyalin sembarang direktori dan file ke lokasi mana pun di perangkat.
Untuk menyalin file atau direktori beserta subdirektorinya dari perangkat, gunakan kode berikut:
adb pull remote local
Untuk menyalin file atau direktori beserta subdirektorinya ke perangkat, gunakan kode berikut:
adb push local remote
Ganti local
dan remote
dengan jalur ke
direktori/file target di mesin pengembangan Anda (lokal) dan di
perangkat (jarak jauh). Contoh:
adb push myfile.txt /sdcard/myfile.txt
Menghentikan server adb
Dalam beberapa kasus, Anda mungkin perlu menghentikan proses server adb
, lalu memulai ulang
server untuk menyelesaikan masalah. Misalnya, hal ini dapat terjadi jika adb
tidak merespons perintah.
Untuk menghentikan server adb
, gunakan perintah adb kill-server
.
Anda kemudian bisa memulai ulang server dengan menjalankan perintah adb
lainnya.
Memberikan perintah adb
Jalankan perintah adb
dari command line pada mesin pengembangan atau dari skrip menggunakan
hal berikut:
adb [-d | -e | -s serial_number] command
Jika hanya ada satu emulator yang berjalan atau satu perangkat yang terhubung, perintah adb
secara default akan dikirim ke perangkat tersebut. Jika beberapa emulator berjalan dan/atau beberapa perangkat
terpasang, Anda harus menggunakan opsi -d
, -e
, atau -s
untuk menentukan perangkat target mana yang menjadi tujuan perintah.
Anda dapat melihat daftar detail dari semua perintah adb
yang didukung menggunakan perintah berikut:
adb --help
Memberikan perintah shell
Anda dapat menggunakan perintah shell
untuk memberikan perintah perangkat melalui adb
, atau untuk memulai
shell interaktif. Untuk memberikan perintah tunggal, gunakan perintah shell
seperti ini:
adb [-d |-e | -s serial_number] shell shell_command
Untuk memulai shell interaktif pada perangkat, gunakan perintah shell
seperti ini:
adb [-d | -e | -s serial_number] shell
Untuk keluar dari shell interaktif, tekan Control+D
atau ketik exit
.
Android menyediakan sebagian besar alat command line Unix biasa. Untuk daftar alat yang tersedia, gunakan perintah berikut:
adb shell ls /system/bin
Bantuan tersedia untuk sebagian besar perintah melalui argumen --help
.
Banyak perintah shell disediakan oleh
toybox.
Bantuan umum yang berlaku untuk semua perintah toybox tersedia melalui toybox --help
.
Dengan Android Platform Tools 23 dan yang lebih tinggi, adb
menangani argumen dengan cara yang sama
seperti perintah ssh(1)
. Perubahan ini telah memperbaiki banyak masalah terkait
injeksi perintah
dan memungkinkan eksekusi perintah yang berisi
metakarakter shell, seperti
adb install Let\'sGo.apk
, dengan aman. Tetapi, perubahan ini berarti interpretasi
setiap perintah yang mengandung metakarakter shell juga telah berubah.
Misalnya, adb shell setprop key 'value'
sekarang merupakan error karena
tanda kutip tunggal ('
) tertutup oleh shell lokal, dan perangkat melihat
adb shell setprop key value
. Agar perintah ini berfungsi, kutip dua kali,
satu untuk shell lokal dan satu lagi untuk shell jauh, seperti yang Anda lakukan dengan
ssh(1)
. Misalnya, adb shell setprop key 'value'
.
Lihat juga Alat command line logcat yang berguna untuk memantau log sistem.
Memanggil pengelola aktivitas
Dalam sebuah shell adb
, Anda dapat memberikan perintah dengan alat pengelola aktivitas (am
) untuk
melakukan berbagai tindakan sistem, seperti memulai aktivitas, menghentikan proses
secara paksa, menyiarkan intent, memodifikasi properti layar perangkat, dan banyak lagi.
Saat berada dalam shell, sintaksis am
adalah:
am command
Anda juga bisa memberikan perintah pengelola aktivitas langsung dari adb
tanpa memasuki shell jarak jauh. Contoh:
adb shell am start -a android.intent.action.VIEW
Tabel 1. Perintah pengelola aktivitas yang tersedia
Perintah | Deskripsi |
---|---|
start [options] intent
|
Mulai Activity yang ditetapkan oleh
intent . Lihat Spesifikasi untuk argumen intent. Opsi yang tersedia:
|
startservice [options] intent
|
Memulai Service yang ditentukan oleh
intent . Lihat Spesifikasi untuk argumen intent. Opsi yang tersedia:
|
force-stop package
|
Memaksa berhenti segala sesuatu yang berkaitan dengan package .
|
kill [options] package
|
Menghentikan semua proses yang berkaitan dengan package . Perintah ini hanya menghentikan
proses yang aman untuk dihentikan dan yang tidak akan memengaruhi pengalaman
pengguna.
Opsi yang tersedia:
|
kill-all
|
Mematikan semua proses latar belakang. |
broadcast [options] intent
|
Memberikan intent siaran. Lihat Spesifikasi untuk argumen intent. Opsi yang tersedia:
|
instrument [options] component
|
Mulai memantau dengan
instance Instrumentation .
Biasanya target component berformat test_package/runner_class . Opsi yang tersedia:
|
profile start process file
|
Memulai profiler pada process , menulis hasilnya kefile .
|
profile stop process
|
Menghentikan profiler di process .
|
dumpheap [options] process file
|
Membuang heap process , menulis ke file . Opsi yang tersedia:
|
set-debug-app [options] package
|
Menetapkan package aplikasi ke debug. Opsi yang tersedia:
|
clear-debug-app
|
Mengosongkan paket yang sebelumnya ditetapkan untuk proses debug dengan set-debug-app .
|
monitor [options]
|
Memulai pemantauan error atau ANR. Opsi yang tersedia:
|
screen-compat {on | off} package
|
Mengontrol mode kompatibilitas
layar package .
|
display-size [reset | widthxheight]
|
Mengganti ukuran tampilan perangkat.
Perintah ini berguna untuk menguji aplikasi Anda pada berbagai ukuran layar dengan meniru resolusi perangkat berlayar kecil
pada perangkat berlayar besar, dan sebaliknya.
Contoh: |
display-density dpi
|
Mengganti kepadatan tampilan perangkat.
Perintah ini berguna untuk menguji aplikasi Anda pada berbagai kepadatan layar dengan meniru lingkungan layar berkepadatan
tinggi menggunakan layar berkepadatan rendah, dan sebaliknya.
Contoh: |
to-uri intent
|
Mencetak spesifikasi intent yang ditentukan sebagai URI. |
to-intent-uri intent
|
Mencetak spesifikasi intent yang ditentukan sebagai URI intent: . |
Spesifikasi untuk argumen intent
Untuk perintah pengelola aktivitas yang menggunakan argumen intent
, Anda dapat
menentukan intent dengan opsi berikut:
Memanggil pengelola paket (pm
)
Dalam shell adb
, Anda dapat memberikan perintah dengan alat pengelola paket (pm
) untuk
menjalankan tindakan dan kueri pada paket aplikasi yang diinstal pada perangkat.
Saat berada dalam shell, sintaksis pm
adalah:
pm command
Anda juga dapat memberikan perintah pengelola paket secara langsung dari adb
tanpa memasuki shell jarak jauh. Contoh:
adb shell pm uninstall com.example.MyApp
Tabel 2. Perintah pengelola paket yang tersedia
Perintah | Deskripsi |
---|---|
list packages [options] filter
|
Mencetak semua paket, atau hanya
paket yang namanya berisi teks dalam filter . Opsi:
|
list permission-groups
|
Mencetak semua grup izin yang diketahui. |
list permissions [options] group
|
Mencetak semua izin yang diketahui, atau hanya
izin yang ada dalam group . Opsi:
|
list instrumentation [options]
|
Mencantumkan semua paket pengujian. Opsi:
|
list features
|
Mencetak semua fitur sistem. |
list libraries
|
Mencetak semua library yang didukung oleh perangkat saat ini. |
list users
|
Mencetak semua pengguna di sistem. |
path package
|
Mencetak jalur ke APK untuk package yang ditentukan.
|
install [options] path
|
Menginstal paket yang ditetapkan oleh path ke sistem. Opsi:
|
uninstall [options] package
|
Menghapus paket dari sistem. Opsi:
|
clear package
|
Menghapus semua data yang berhubungan dengan paket. |
enable package_or_component
|
Mengaktifkan paket atau komponen yang ditentukan (ditulis sebagai "package/class"). |
disable package_or_component
|
Menonaktifkan paket atau komponen yang ditentukan (tertulis sebagai "package/class"). |
disable-user [options] package_or_component
|
Opsi:
|
grant package_name permission
|
Memberikan izin ke aplikasi. Pada perangkat yang menjalankan Android 6.0 (API level 23) dan yang lebih baru, izin dapat berupa izin apa pun yang dideklarasikan dalam manifes aplikasi. Pada perangkat yang menjalankan Android 5.1 (API level 22) dan yang lebih rendah, izin tersebut harus berupa izin opsional yang ditentukan oleh aplikasi. |
revoke package_name permission
|
Mencabut izin dari aplikasi. Pada perangkat yang menjalankan Android 6.0 (API level 23) dan yang lebih baru, izin dapat berupa izin apa pun yang dideklarasikan dalam manifes aplikasi. Pada perangkat yang menjalankan Android 5.1 (API level 22) dan yang lebih rendah, izin tersebut harus berupa izin opsional yang ditentukan oleh aplikasi. |
set-install-location location
|
Ubah lokasi penginstalan default. Nilai lokasi:
Catatan: Perintah ini hanya dimaksudkan untuk proses debug. Penggunaannya dapat menimbulkan kerusakan aplikasi dan perilaku yang tidak diinginkan lainnya. |
get-install-location
|
Menampilkan lokasi penginstalan saat ini. Nilai yang ditampilkan:
|
set-permission-enforced permission [true | false]
|
Menentukan apakah izin yang ditentukan harus diberlakukan. |
trim-caches desired_free_space
|
Memangkas file cache untuk mencapai ruang kosong yang ditentukan. |
create-user user_name
|
Membuat pengguna baru dengan user_name yang ditentukan, yang mencetak ID pengguna baru untuk pengguna tersebut.
|
remove-user user_id
|
Menghapus pengguna yang memiliki user_id yang ditentukan, yang menghapus semua data yang terkait dengan pengguna tersebut
|
get-max-users
|
Mencetak jumlah maksimum pengguna yang didukung oleh perangkat. |
get-app-links [options] [package]
|
Mencetak status verifikasi domain untuk package yang ditentukan, atau untuk semua paket jika tidak ada yang ditentukan. Kode status didefinisikan sebagai berikut:
Opsi yang tersedia:
|
reset-app-links [options] [package]
|
Mereset status verifikasi domain untuk paket yang ditentukan, atau untuk semua paket jika tidak ada yang ditentukan.
Opsi yang tersedia:
|
verify-app-links [--re-verify] [package]
|
Menyiarkan permintaan verifikasi untuk package tertentu, atau untuk semua paket jika tidak ada yang ditentukan. Hanya mengirim jika paket sebelumnya belum merekam respons.
|
set-app-links [--package package] state domains
|
Menetapkan status domain untuk paket secara manual. Domain harus dideklarasikan oleh paket sebagai autoVerify agar perintah ini berfungsi. Perintah ini tidak akan melaporkan kegagalan untuk domain yang tidak dapat diterapkan.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
Menetapkan status pemilihan pengguna host untuk paket secara manual. Domain harus dideklarasikan oleh paket agar perintah ini berfungsi. Perintah ini tidak akan melaporkan kegagalan untuk domain yang tidak dapat diterapkan.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
Menetapkan status pemilihan pengguna host untuk paket secara manual. Domain harus dideklarasikan oleh paket agar perintah ini berfungsi. Perintah ini tidak akan melaporkan kegagalan untuk domain yang tidak dapat diterapkan.
|
set-app-links-allowed --user user_id [--package package] allowed
|
Mengubah setelan penanganan link yang diverifikasi otomatis untuk paket.
|
get-app-link-owners --user user_id [--package package] domains
|
Mencetak pemilik untuk domain tertentu bagi pengguna tertentu dengan urutan prioritas rendah ke tinggi.
|
Memanggil pengelola kebijakan perangkat (dpm
)
Untuk membantu mengembangkan dan menguji aplikasi pengelolaan perangkat, berikan
perintah ke alat pengelola kebijakan perangkat (dpm
). Gunakan alat ini untuk mengontrol aplikasi
admin aktif atau mengubah data status kebijakan di perangkat.
Saat berada dalam shell,
sintaksis dpm
adalah:
dpm command
Anda juga dapat memberikan perintah pengelola kebijakan perangkat secara langsung dari adb
tanpa memasuki shell jarak jauh:
adb shell dpm command
Tabel 3. Perintah pengelola kebijakan perangkat yang tersedia
Perintah | Deskripsi |
---|---|
set-active-admin [options] component
|
Menetapkan component sebagai admin aktif. Opsi yang tersedia:
|
set-profile-owner [options] component
|
Menetapkan component sebagai admin aktif dan paketnya sebagai pemilik profil untuk pengguna yang ada.
Opsi yang tersedia:
|
set-device-owner [options] component
|
Menetapkan component sebagai admin aktif dan paketnya sebagai pemilik perangkat.
Opsi yang tersedia:
|
remove-active-admin [options] component
|
Menonaktifkan admin aktif. Aplikasi harus mendeklarasikan
android:testOnly
dalam manifesnya. Perintah ini juga akan menghapus pemilik perangkat dan profil.
Opsi yang tersedia:
|
clear-freeze-period-record
|
Membersihkan data perangkat dari periode pembekuan yang ditetapkan sebelumnya untuk update OTA sistem. Hal ini berguna
untuk menghindari pembatasan penjadwalan perangkat saat mengembangkan aplikasi yang mengelola periode pembekuan. Lihat
Mengelola update sistem.
Didukung pada perangkat yang menjalankan Android 9.0 (API level 28) dan yang lebih baru. |
force-network-logs
|
Memaksa sistem untuk menyiapkan log jaringan yang akan diambil oleh DPC. Jika ada
koneksi atau log DNS yang tersedia, DPC akan menerima
callback
onNetworkLogsAvailable() . Lihat Logging aktivitas jaringan.
Perintah ini memiliki batasan kapasitas. Didukung pada perangkat yang menjalankan Android 9.0 (API level 28) dan yang lebih baru. |
force-security-logs
|
Memaksa sistem untuk menyediakan log keamanan bagi DPC. Jika ada log
yang tersedia, DPC akan menerima
callback
onSecurityLogsAvailable() . Lihat Membuat log aktivitas
perangkat perusahaan.
Perintah ini memiliki batasan kapasitas. Didukung pada perangkat yang menjalankan Android 9.0 (API level 28) dan yang lebih baru. |
Mengambil screenshot
Perintah screencap
adalah utilitas shell untuk mengambil screenshot tampilan
perangkat.
Saat berada dalam shell, sintaksis screencap
adalah:
screencap filename
Untuk menggunakan screencap
dari command line, masukkan perintah:
adb shell screencap /sdcard/screen.png
Berikut adalah contoh sesi screenshot, yang menggunakan shell adb
untuk mengambil screenshot dan
perintah pull
untuk mendownload filenya dari perangkat:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
Merekam video
Perintah screenrecord
adalah utilitas shell untuk merekam tampilan perangkat
yang menjalankan Android 4.4 (API level 19) dan yang lebih tinggi. Utilitas ini merekam aktivitas layar ke dalam file
MPEG-4. Anda dapat menggunakan file ini untuk membuat video promosi atau pelatihan, atau untuk menjalankan debug dan pengujian.
Saat berada dalam shell, gunakan sintaksis berikut:
screenrecord [options] filename
Untuk menggunakan screenrecord
dari command line, masukkan perintah:
adb shell screenrecord /sdcard/demo.mp4
Hentikan perekaman layar dengan menekan Control+C. Jika tidak, rekaman
akan berhenti secara otomatis selama tiga menit atau batas waktu yang ditetapkan oleh --time-limit
.
Untuk mulai merekam layar perangkat, jalankan perintah screenrecord
untuk merekam
video. Kemudian, jalankan perintah pull
untuk mendownload video dari perangkat ke komputer
host. Berikut adalah contoh sesi rekaman:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
Utilitas screenrecord
dapat merekam pada semua resolusi yang didukung dan kecepatan bit yang Anda minta, dengan tetap mempertahankan rasio aspek tampilan perangkat. Secara default, utilitas ini merekam dalam resolusi dan orientasi tampilan
native perangkat, dengan panjang maksimum tiga menit.
Batasan utilitas screenrecord
:
- Audio tidak direkam bersama dengan file video.
- Perekaman video tidak tersedia untuk perangkat yang menjalankan Wear OS.
- Beberapa perangkat mungkin tidak dapat merekam dalam resolusi tampilan native. Jika Anda mengalami masalah dengan perekaman layar, cobalah menggunakan resolusi layar yang lebih rendah.
- Rotasi layar selama perekaman tidak didukung. Jika layar berputar selama perekaman, sebagian layar akan terpangkas dalam rekaman.
Tabel 4. Opsi screenrecord
Opsi | Deskripsi |
---|---|
--help
|
Opsi dan sintaksis perintah tampilan |
--size widthxheight
|
Setel ukuran video: 1280x720 . Nilai defaultnya adalah resolusi tampilan
native perangkat (jika didukung), 1280x720 jika tidak didukung. Untuk hasil terbaik, gunakan ukuran yang didukung
oleh encoder Advanced Video Coding (AVC) perangkat Anda. |
--bit-rate rate |
Menetapkan kecepatan bit video, dalam megabit per detik. Nilai defaultnya adalah 20 Mbps.
Anda bisa menaikkan kecepatan bit untuk meningkatkan kualitas video, tetapi akibatnya ukuran file film
akan lebih besar. Contoh berikut menetapkan kecepatan bit perekaman ke 6 Mbps:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time |
Menetapkan waktu maksimum perekaman, dalam detik. Nilai default dan maksimum adalah 180 (3 menit). |
--rotate |
Merotasi output 90 derajat. Fitur ini masih eksperimen. |
--verbose |
Menampilkan informasi log pada layar command line. Jika Anda tidak menetapkan opsi ini, utilitas tidak akan menampilkan informasi apa pun saat dijalankan. |
Membaca profil ART untuk aplikasi
Mulai dari Android 7.0 (API level 24), Android Runtime (ART) mengumpulkan profil eksekusi untuk aplikasi yang diinstal, yang digunakan untuk mengoptimalkan performa aplikasi. Periksa profil yang dikumpulkan untuk memahami metode apa yang sering dijalankan dan class mana yang digunakan selama memulai aplikasi.
Catatan: Anda hanya dapat mengambil nama file profil eksekusi jika memiliki akses root ke sistem file, misalnya, pada emulator.
Untuk menghasilkan informasi profil dalam format teks, gunakan perintah berikut:
adb shell cmd package dump-profiles package
Untuk mengambil file yang dihasilkan, gunakan:
adb pull /data/misc/profman/package.prof.txt
Mereset perangkat pengujian
Jika Anda menguji aplikasi pada beberapa perangkat pengujian, akan mudah mereset perangkat di antara
pengujian, misalnya, untuk menghapus data pengguna dan mereset lingkungan pengujian. Anda dapat melakukan reset
ke setelan pabrik pada perangkat pengujian yang berjalan di Android 10 (API level 29) atau versi lebih baru menggunakan
perintah shell testharness
adb
, seperti yang ditunjukkan di bawah ini.
adb shell cmd testharness enable
Saat memulihkan perangkat dengan testharness
, perangkat tersebut akan otomatis mencadangkan kunci
RSA yang mengizinkan proses debug melalui workstation saat ini di lokasi yang sama. Dengan begitu, setelah
perangkat direset, workstation dapat tetap melakukan debug dan mengeluarkan perintah adb
ke perangkat
tanpa mendaftarkan kunci baru secara manual.
Selain itu, untuk mempermudah dan mengamankan pengujian aplikasi Anda, menggunakan
testharness
untuk memulihkan perangkat juga akan mengubah setelan perangkat berikut:
- Perangkat menyiapkan setelan sistem tertentu sehingga wizard penyiapan perangkat awal tidak akan muncul. Dengan begitu, perangkat memasuki kondisi di mana Anda dapat menginstal, men-debug, dan menguji aplikasi Anda dengan cepat.
- Setelan:
- Menonaktifkan layar kunci.
- Menonaktifkan sinyal darurat.
- Menonaktifkan sinkronisasi otomatis untuk akun.
- Menonaktifkan update sistem otomatis.
- Lainnya:
- Menonaktifkan aplikasi keamanan prainstal.
Jika aplikasi Anda perlu mendeteksi dan beradaptasi dengan setelan default dari perintah testharness
,
gunakan
ActivityManager.isRunningInUserTestHarness()
.
sqlite
sqlite3
memulai program command line sqlite
untuk memeriksa database SQLite.
Hal ini mencakup perintah seperti .dump
untuk mencetak isi tabel dan
.schema
untuk mencetak pernyataan SQL CREATE
untuk tabel yang sudah ada.
Anda juga dapat menjalankan perintah SQLite dari command line, seperti yang ditunjukkan:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
Catatan: Database SQLite hanya dapat diakses jika Anda memiliki akses root ke sistem file, misalnya, pada emulator.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi command line sqlite3
.
backend USB adb
Server adb dapat berinteraksi dengan stack USB melalui dua backend. Aplikasi ini dapat menggunakan
backend OS (Windows, Linux, atau macOS) atau dapat menggunakan backend libusb
.
Beberapa fitur, seperti attach
, detach
, dan deteksi kecepatan USB, adalah
hanya tersedia saat menggunakan backend libusb
.
Anda dapat memilih backend menggunakan variabel lingkungan ADB_LIBUSB
.
Jika tidak disetel, adb akan menggunakan backend default-nya. Perilaku default bervariasi antar-OS. Memulai
dengan ADB v34,
Backend liubusb
digunakan secara default di semua OS kecuali Windows, di mana backend native berada
akan digunakan secara {i>default<i}. Jika ADB_LIBUSB
adalah
ditetapkan, hal ini menentukan apakah backend native atau libusb
digunakan. Lihat
Halaman manual adb
untuk informasi selengkapnya tentang variabel lingkungan adb.
Backend mDNS adb
ADB dapat menggunakan protokol DNS multicast untuk menghubungkan server dan perangkat secara otomatis. Server ADB dilengkapi dengan dua backend, Bonjour (mdnsResponder Apple) dan Openscreen.
Backend Bonjour memerlukan daemon agar berjalan di mesin host.
Di daemon bawaan Apple macOS selalu berjalan, tetapi di Windows dan Linux, pengguna harus memastikan daemon mdnsd
aktif dan berjalan.
Jika perintah adb mdns check
menampilkan error, kemungkinan ADB menggunakan backend Bonjour, tetapi tidak ada daemon Bonjour yang berjalan.
Backend Openscreen tidak memerlukan daemon untuk berjalan di mesin. Dukungan untuk backend Openscreen di macOS dimulai pada ADB v35. Windows dan Linux didukung mulai ADB v34.
Secara default, ADB menggunakan backend Bonjour. Perilaku ini dapat diubah menggunakan variabel lingkungan ADB_MDNS_OPENSCREEN
(ditetapkan ke 1
atau 0
).
Lihat halaman manual ADB untuk mengetahui detail selengkapnya.