Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Android Debug Bridge (adb)

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, dan memberikan 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. Anda dapat mendownload paket ini dengan SDK Manager, yang menginstalnya di android_sdk/platform-tools/. Atau jika Anda menginginkan paket Android SDK Platform-Tools mandiri, Anda dapat mendownloadnya di sini.

Untuk 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 mulai menjalankan klien adb, pertama-tama klien akan memeriksa apakah ada proses server adb yang sudah berjalan. Jika tidak ada, klien akan memulai proses server. Saat server dimulai, klien akan mengait ke port 5037 TCP lokal dan memantau perintah yang dikirim dari klien adb—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—rentang yang digunakan oleh 16 emulator pertama. Setelah menemukan daemon adb (adbd), server akan mengatur koneksi ke port tersebut. Perhatikan bahwa 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 memantau port 5554.

Setelah server mengatur sambungan ke semua perangkat, Anda dapat menggunakan perintah adb untuk mengakses perangkat tersebut. Karena server mengelola sambungan 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 tersambung melalui USB, Anda harus mengaktifkan proses debug USB dalam setelan sistem perangkat, di bagian Opsi developer.

Pada Android 4.2 dan yang lebih tinggi, layar Opsi developer secara default disembunyikan. Agar opsi itu tersedia, buka Setelan > Tentang ponsel lalu ketuk Nomor build tujuh kali. Kembalilah ke layar sebelumnya untuk menemukan Opsi developer di bagian bawah.

Pada beberapa perangkat, letak atau nama layar untuk Opsi developer mungkin berbeda.

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 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 informasi selengkapnya tentang cara membuat sambungan ke perangkat melalui USB, baca Menjalankan Aplikasi di Perangkat Hardware.

Menghubungkan ke perangkat melalui Wi-Fi

adb biasanya berkomunikasi dengan perangkat melalui USB, tetapi Anda juga dapat menggunakan adb melalui Wi-Fi setelah menyelesaikan beberapa penyiapan awal melalui USB, seperti yang dijelaskan di bawah ini. Namun, jika Anda mengembangkan aplikasi untuk Wear OS, sebaiknya Anda mempelajari panduan cara men-debug aplikasi Wear OS, yang memiliki petunjuk khusus terkait penggunaan adb dengan Wi-Fi dan Bluetooth.

  1. Hubungkan perangkat Android dan komputer host adb ke jaringan Wi-Fi yang sama, yang dapat diakses oleh keduanya. 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.
  2. Jika Anda menghubungkan ke perangkat Wear OS, nonaktifkan Bluetooth di ponsel yang disambungkan dengan perangkat.
  3. Hubungkan perangkat ke komputer host menggunakan kabel USB.
  4. Atur perangkat target untuk memantau koneksi TCP/IP pada port 5555.
    adb tcpip 5555
    
  5. Lepaskan kabel USB dari perangkat target.
  6. Temukan alamat IP perangkat Android. Misalnya, pada perangkat Nexus, Anda dapat menemukan alamat IP di Setelan > Tentang tablet (atau Tentang ponsel) > Status > Alamat IP. Atau, di perangkat Wear OS, Anda dapat menemukan alamat IP di Setelan > Setelan Wi-Fi > Lanjutan > Alamat IP.
  7. Hubungkan ke perangkat berdasarkan alamat IP-nya.
    adb connect device_ip_address
    
  8. Konfirmasikan bahwa komputer host Anda terhubung ke perangkat target:
    $ adb devices
    List of devices attached
    device_ip_address:5555 device
    

Anda siap melanjutkan!

Jika koneksi adb terputus:

  1. Pastikan bahwa host masih terhubung ke jaringan Wi-Fi yang sama dengan perangkat Android Anda.
  2. Hubungkan kembali dengan menjalankan langkah adb connect sekali lagi.
  3. Atau jika itu tidak berhasil, reset host adb Anda:
    adb kill-server
    

    Kemudian mulai lagi dari awal.

Kueri untuk perangkat

Sebelum mengeluarkan perintah adb, akan sangat membantu jika kita mengetahui instance perangkat yang terhubung ke server adb. Anda dapat memperoleh daftar perangkat yang terhubung menggunakan perintah devices.

  adb devices -l
  

Sebagai respons, adb akan mencetak informasi status ini untuk setiap perangkat:

  • Nomor seri: String yang dibuat oleh adb 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 tersambung ke adb atau tidak merespons.
    • device: Perangkat tersambung ke server adb. Perhatikan bahwa status ini tidak berarti bahwa sistem Android telah selesai melakukan booting dan siap digunakan, karena perangkat tersambung ke adb saat sistem masih booting. Namun, setelah booting selesai, status ini merupakan status operasional normal untuk suatu perangkat.
    • no device: Tidak ada perangkat yang terhubung.
  • Deskripsi: Jika Anda menyertakan opsi -l, perintah devices akan memberitahukan perangkat tersebut. Informasi ini berguna jika ada beberapa perangkat yang tersambung 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:

  1. Server adb tidak berjalan, dan
  2. Anda menggunakan perintah emulator dengan opsi -port atau -ports pada port bernomor ganjil antara 5554 dan 5584, dan
  3. Port bernomor ganjil yang Anda pilih tidak sibuk sehingga sambungan port dapat dilakukan pada nomor port yang ditentukan. Atau, jika port tersebut sibuk, emulator akan beralih ke port lain yang memenuhi persyaratan nomor 2, dan
  4. Anda memulai server adb setelah memulai emulator.

Salah satu cara untuk menghindari situasi ini adalah membiarkan emulator memilih port-nya sendiri, dan tidak menjalankan 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 informasi selengkapnya tentang opsi command line emulator, lihat Menggunakan Parameter Command Line.

Mengirimkan perintah ke perangkat tertentu

Jika ada beberapa perangkat yang berjalan, Anda harus menentukan perangkat target saat mengeluarkan perintah adb. Untuk menentukan perangkat target, gunakan perintah devices untuk memperoleh nomor seri perangkat target tersebut. Setelah mendapatkan nomor seri, gunakan opsi -s dengan perintah adb 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, maka -s akan mengganti $ANDROID_SERIAL.

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

$ adb -s emulator-5555 install helloWorld.apk

Catatan: Jika Anda mengeluarkan perintah tanpa menentukan perangkat target, sementara perangkat yang tersedia ada beberapa, adb akan menghasilkan error.

Jika perangkat yang tersedia ada beberapa, tetapi hanya satu yang merupakan emulator, gunakan opsi -e untuk mengirim perintah ke emulator. Begitu juga 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 informasi selengkapnya tentang cara membuat file APK yang bisa Anda instal pada instance perangkat/emulator, lihat Membuat dan Menjalankan Aplikasi Anda.

Perhatikan bahwa, jika menggunakan Android Studio, Anda tidak perlu menggunakan adb secara langsung untuk menginstal aplikasi pada emulator/perangkat. Sebaliknya, Android Studio akan menangani pemaketan dan penginstalan aplikasi itu untuk Anda.

Siapkan penerusan port

Anda dapat menggunakan 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 :logd: lokal

adb forward tcp:6100 local:logd

Menyalin file ke/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 foo.txt /sdcard/foo.txt

Menghentikan server adb

Dalam beberapa kasus, Anda mungkin perlu menghentikan proses server adb, lalu memulai ulang server untuk menyelesaikan masalah (misalnya 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

Anda dapat memberikan perintah adb dari command line pada perangkat pengembangan atau dari skrip. Penggunaannya adalah:

adb [-d | -e | -s serial_number] command

Jika hanya ada satu emulator yang berjalan atau satu perangkat yang tersambung, 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.

Catatan: Dengan Android Platform-Tools 23 dan yang lebih baru, adb menangani argumen dengan cara yang sama seperti perintah ssh(1). Perubahan ini telah memperbaiki banyak masalah terkait injeksi perintah dan sekarang 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, perintah adb shell setprop foo 'a b' sekarang merupakan error karena tanda kutip tunggal (') tertutup oleh shell lokal, dan perangkat melihat adb shell setprop foo a b. Agar perintah ini berfungsi, kutip dua kali, satu untuk shell lokal dan satu lagi untuk shell jauh, sama seperti yang Anda lakukan dengan ssh(1). Contohnya, adb shell setprop foo "'a b'".

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.

Lihat juga Alat Command Line Logcat yang berguna untuk memantau log sistem.

Memanggil pengelola aktivitas (am)

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, sintaksisnya adalah:

am command

Anda juga bisa memberikan perintah activity manager langsung dari adb tanpa memasuki shell jarak jauh. Contoh:

adb shell am start -a android.intent.action.VIEW

Tabel 2. Perintah activity manager yang tersedia

Perintah Deskripsi
start [options] intent Mulai Activity yang ditetapkan oleh intent.

Lihat Spesifikasi untuk argumen intent.

Opsi yang tersedia:

  • -D: Mengaktifkan proses debug.
  • -W: Menunggu peluncuran selesai.
  • --start-profiler file: Memulai profiler dan mengirim hasilnya ke file.
  • -P file: Seperti --start-profiler, tetapi pembuatan profil akan berhenti jika aplikasi tidak aktif.
  • -R count: Mengulangi peluncuran aktivitas count kali. Sebelum setiap pengulangan, aktivitas paling atas akan diselesaikan.
  • -S: Memaksa berhenti aplikasi target sebelum memulai aktivitas.
  • --opengl-trace: Mengaktifkan pelacakan fungsi OpenGL.
  • --user user_id | current: Menentukan pengguna yang menjalankannya; jika tidak ditetapkan, maka jalankan sebagai pengguna saat ini.
startservice [options] intent Memulai Service yang ditentukan oleh intent.

Lihat Spesifikasi untuk argumen intent.

Opsi yang tersedia:

  • --user user_id | current: Menentukan pengguna yang menjalankannya; jika tidak ditetapkan, maka jalankan sebagai pengguna saat ini.
force-stop package Memaksa berhenti segala sesuatu yang berkaitan dengan package (nama paket aplikasi).
kill [options] package Menghentikan semua proses yang berkaitan dengan package (nama paket aplikasi). Perintah ini hanya menghentikan proses yang aman untuk dihentikan dan yang tidak akan memengaruhi pengalaman pengguna.

Opsi yang tersedia:

  • --user user_id | all | current: Menentukan pengguna yang pemrosesannya dihentikan; semua pengguna jika tidak ditetapkan.
kill-all Mematikan semua proses latar belakang.
broadcast [options] intent Memberikan intent siaran.

Lihat Spesifikasi untuk argumen intent.

Opsi yang tersedia:

  • [--user user_id | all | current]: Menentukan pengguna yang akan dikirimi; jika tidak ditetapkan, kirim ke semua pengguna.
instrument [options] component Mulai memantau dengan instance Instrumentation. Biasanya component target adalah format test_package/runner_class.

Opsi yang tersedia:

  • -r: Mencetak hasil mentah (jika tidak, mendekode report_key_streamresult). Gunakan dengan [-e perf true] untuk menghasilkan output mentah untuk pengukuran performa.
  • -e name value: Menetapkan argumen name ke value. Untuk test runner, format yang biasa dipakai adalah -e testrunner_flag value[,value...].
  • -p file: Menulis data pembuatan profil ke file.
  • -w: Menunggu instrumentasi hingga selesai sebelum kembali. Diwajibkan untuk test runner.
  • --no-window-animation: Menonaktifkan animasi jendela saat berjalan.
  • --user user_id | current: Menentukan di pengguna mana instrumentasi dijalankan; jika tidak ditentukan, dijalankan pada pengguna saat ini.
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:

  • --user [user_id | current]: Menentukan pengguna proses yang akan dikeluarkan saat memberikan nama proses; jika tidak ditentukan, pengguna saat ini akan dikeluarkan.
  • -n: Mengeluarkan heap native, bukan heap terkelola.
set-debug-app [options] package Menetapkan package aplikasi ke debug.

Opsi yang tersedia:

  • -w: Menunggu debugger saat aplikasi dimulai.
  • --persistent: Mempertahankan nilai ini.
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:

  • --gdb: Memulai gdbserv pada port yang ditentukan saat terjadi error/ANR.
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:
am display-size 1280x800

display-density dpi Mengganti kepadatan tampilan perangkat. Perintah ini berguna untuk menguji aplikasi Anda pada berbagai kepadatan layar dengan meniru lingkungan layar berkepadatan tinggi pada layar berkepadatan rendah, dan sebaliknya.

Contoh:
am display-density 480

to-uri intent Mencetak spesifikasi intent yang ditentukan sebagai URI.

Lihat Spesifikasi untuk argumen intent.

to-intent-uri intent Mencetak spesifikasi intent yang ditentukan sebagai URI intent:.

Lihat Spesifikasi untuk argumen 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, sintaksisnya adalah:

pm command

Anda juga dapat memberikan perintah package manager secara langsung dari adb tanpa memasuki shell jarak jauh. Contoh:

adb shell pm uninstall com.example.MyApp

Tabel 3. Perintah package manager yang tersedia.

Perintah Deskripsi
list packages [options] filter Mencetak semua paket, atau hanya paket yang namanya berisi teks dalam filter.

Opsi:

  • -f: Melihat file yang terkait.
  • -d: Memfilter untuk hanya menampilkan paket yang dinonaktifkan.
  • -e: Memfilter untuk hanya menampilkan paket yang diaktifkan.
  • -s: Memfilter untuk hanya menampilkan paket sistem.
  • -3: Memfilter untuk hanya menampilkan paket pihak ketiga.
  • -i: Melihat installer untuk paket.
  • -u: Menyertakan juga paket yang telah di-uninstal.
  • --user user_id: Ruang pengguna untuk mengkueri.
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:

  • -g: Mengelompokkan menurut grup.
  • -f: Mencetak semua informasi.
  • -s: Rangkuman singkat.
  • -d: Hanya mencantumkan izin berbahaya.
  • -u: Hanya mencantumkan izin yang akan dilihat pengguna.
list instrumentation [options] Mencantumkan semua paket pengujian.

Opsi:

  • -f: Mencantumkan file APK untuk paket pengujian.
  • target_package: Mencantumkan paket pengujian hanya untuk aplikasi ini.
list features Mencetak semua fitur sistem.
list libraries Mencetak semua library yang didukung oleh perangkat saat ini.
list users Mencetak semua pengguna pada sistem.
path package Mencetak jalur ke APK untuk package yang ditentukan.
install [options] path Menginstal paket (ditetapkan oleh path) ke sistem.

Opsi:

  • -r: Menginstal ulang aplikasi yang sudah ada, dan mempertahankan datanya.
  • -t: Mengizinkan penginstalan APK pengujian. Gradle menghasilkan APK pengujian jika Anda telah menjalankan atau men-debug aplikasi atau telah menggunakan perintah Build > Build APK pada Android Studio. Jika APK dibuat menggunakan SDK pratinjau developer (jika targetSdkVersion adalah huruf, bukan angka), Anda harus menyertakan opsi -t dengan perintah install jika menginstal APK pengujian.
  • -i installer_package_name: Menetapkan nama paket installer.
  • --install-location location: Menetapkan lokasi penginstalan menggunakan salah satu nilai berikut:
    • 0: Menggunakan lokasi penginstalan default
    • 1: Menginstal di penyimpanan perangkat internal
    • 2: Menginstal di media eksternal
  • -f: Menginstal paket pada memori sistem internal.
  • -d: Mengizinkan downgrade kode versi.
  • -g: Memberikan semua izin yang tercantum dalam manifes aplikasi.
  • --fastdeploy: Mengupdate paket yang diinstal dengan cepat hanya dengan mengupdate bagian APK yang diubah.
  • --incremental: Menginstal cukup APK untuk meluncurkan aplikasi saat melakukan streaming data yang tersisa di latar belakang. Untuk menggunakan fitur ini, Anda harus menandatangani APK dan membuat file Skema Tanda Tangan APK v4. Fitur ini hanya didukung di perangkat tertentu. Opsi ini memaksa adb untuk menggunakan fitur atau gagal jika tidak didukung (dengan informasi panjang tentang alasan kegagalannya). Tambahkan opsi --wait untuk menunggu hingga APK terinstal sepenuhnya sebelum memberikan akses ke APK.

    --no-incremental mencegah adb menggunakan fitur ini.

uninstall [options] package Menghapus paket dari sistem.

Opsi:

  • -k: Mempertahankan direktori cache dan data setelah paket dihapus.
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:

  • --user user_id: Pengguna yang akan dinonaktifkan.
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 Mengubah lokasi penginstalan default. Nilai lokasi:
  • 0: Auto: Sistem dapat menentukan lokasi terbaik.
  • 1: Internal: menginstal pada memori internal perangkat.
  • 2: Eksternal: menginstal pada media eksternal.

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:
  • 0 [auto]: Membiarkan sistem menentukan lokasi terbaik
  • 1 [internal]: Menginstal pada penyimpanan perangkat internal
  • 2 [external]: Menginstal pada media eksternal
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, mencetak ID pengguna baru untuk pengguna tersebut.
remove-user user_id Menghapus pengguna yang memiliki user_id yang ditentukan, menghapus semua data yang terkait dengan pengguna tersebut
get-max-users Mencetak jumlah maksimum pengguna yang didukung oleh perangkat.

Memanggil pengelola kebijakan perangkat (dpm)

Untuk membantu mengembangkan dan menguji aplikasi pengelolaan perangkat (atau aplikasi perusahaan lainnya), Anda dapat memberikan 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, sintaks-nya adalah:

dpm command

Anda juga dapat memberikan perintah device policy manager secara langsung dari adb tanpa memasuki shell jarak jauh.

adb shell dpm command

Tabel 4. Perintah pengelola kebijakan perangkat yang tersedia

Perintah Deskripsi
set-active-admin [options] component Menetapkan component sebagai admin aktif.

Opsi yang tersedia:

  • --user user_id: Menentukan pengguna target. Anda juga dapat meneruskan --user current untuk memilih pengguna saat ini.
set-profile-owner [options] component Menetapkan componentkomponen sebagai admin aktif dan paketnya sebagai pemilik profil untuk pengguna yang ada.

Opsi yang tersedia:

  • --user user_id: Menentukan pengguna target. Anda juga dapat meneruskan --user current untuk memilih pengguna saat ini.
  • --name name: Menentukan nama organisasi yang dapat dibaca manusia.
set-device-owner [options] component Menetapkan componentkomponen sebagai admin aktif dan paketnya sebagai pemilik perangkat.

Opsi yang tersedia:

  • --user user_id: Menentukan pengguna target. Anda juga dapat meneruskan --user current untuk memilih pengguna saat ini.
  • --name name: Menentukan nama organisasi yang dapat dibaca manusia.
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:

  • --user user_id: Menentukan pengguna target. Anda juga dapat meneruskan --user current untuk memilih pengguna saat ini.
clear-freeze-period-record Membersihkan data perangkat dari periode pembekuan yang ditetapkan sebelumnya untuk update OTA sistem. 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 tinggi.

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 Pembuatan log aktivitas jaringan.

Perintah ini memiliki batasan kapasitas. Didukung pada perangkat yang menjalankan Android 9.0 (API level 28) dan yang lebih tinggi.

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 tinggi.

Mengambil screenshot

Perintah screencap adalah utilitas shell untuk mengambil screenshot tampilan perangkat. Saat berada dalam shell, sintaks-nya adalah:

screencap filename

Untuk menggunakan screencap dari command line, ketik 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 sintaks berikut:

screenrecord [options] filename

Untuk menggunakan screenrecord dari command line, ketik perintah:

adb shell screenrecord /sdcard/demo.mp4

Hentikan perekaman layar dengan menekan Control + C (Command + C pada Mac); jika tidak, perekaman akan otomatis berhenti setelah 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 tinggi lebar 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 5. screenrecord opsi

Opsi Deskripsi
--help Menampilkan sintaks dan opsi perintah
--size widthxheight Menyetel 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 default-nya adalah 4 Mbps. Anda bisa menaikkan kecepatan bit untuk meningkatkan kualitas video, tetapi akibatnya ukuran file film akan lebih besar. Contoh berikut mengatur 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. Anda mungkin ingin memeriksa profil yang dikumpulkan untuk memahami metode apa yang sering dieksekusi dan class mana saja yang digunakan selama memulai aplikasi.

Untuk menghasilkan informasi profil dalam format teks, gunakan perintah:

adb shell cmd package dump-profiles package

Untuk mengambil file yang dihasilkan, gunakan:

adb pull /data/misc/profman/package.txt

Mereset perangkat pengujian

Jika Anda menguji aplikasi pada beberapa perangkat pengujian, akan mudah menyetel ulang perangkat di antara pengujian, misalnya, untuk menghapus data pengguna dan menyetel ulang 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 adb shell testharness, 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, Anda dapat menggunakan 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 di bawah ini.

$ adb -s emulator-5554 shell
$ sqlite3 /data/data/com.example.app/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions

Untuk informasi selengkapnya, lihat dokumentasi command line sqlite3.