Android Debug Bridge (adb)

Android Debug Bridge (adb) adalah fitur 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, 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 layar ini terlihat, buka Setelan > Tentang telepon dan 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.

Sekarang Anda dapat menyambungkan perangkat dengan USB. Anda dapat memverifikasi bahwa perangkat Anda telah 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.

Membuat sambungan 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, setel ulang 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 ini contoh nomor seri: emulator-5554
  • Status: Status sambungan 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 tersambung.
  • 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 ini 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 perlu mengeluarkan banyak perintah adb, Anda dapat mengatur variabel lingkungan $ANDROID_SERIAL agar memuat nomor seri. Jika Anda menggunakan -s dan juga $ANDROID_SERIAL, -s akan menimpa $ANDROID_SERIAL.

Pada contoh berikut, daftar perangkat yang terpasang diperoleh, lalu nomor seri salah satu perangkat digunakan untuk menginstal helloWorld.apk pada 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 pada emulator atau perangkat tersambung dengan 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.

Menyiapkan penerusan port

Anda dapat menggunakan perintah forward untuk menyiapkan sembarang penerusan port, yang meneruskan permintaan pada port host tertentu ke port lain pada 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 pada 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 files/directory target pada mesin pengembangan Anda (lokal) dan pada 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.

Referensi perintah adb

Anda dapat mengeluarkan 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 ada beberapa emulator yang berjalan dan/atau beberapa perangkat yang terpasang, Anda harus menggunakan opsi -d, -e, atau -s untuk menentukan perangkat target mana yang dituju oleh perintah.

Tabel berikut mencantumkan semua perintah adb yang didukung dan menjelaskan makna serta penggunaannya.

Tabel 1. Perintah adb dan opsi yang tersedia

Opsi global Deskripsi
-a Memantau semua antarmuka jaringan, bukan hanya di localhost.
-d Mengarahkan perintah adb ke satu-satunya perangkat USB yang terpasang. Menampilkan error jika ada lebih dari satu perangkat USB yang terpasang.
-e Mengarahkan perintah adb ke satu-satunya emulator yang berjalan. Menampilkan error jika ada lebih dari satu emulator yang berjalan.
-s serial_number Mengarahkan perintah adb ke perangkat tertentu, yang dirujuk dengan nomor seri yang ditetapkan adb (misalnya emulator-5556). Mengganti nilai nomor seri yang disimpan dalam variabel lingkungan $ANDROID_SERIAL. Lihat Mengirimkan perintah ke perangkat tertentu.
-H server Nama host server adb. Nilai defaultnya adalah localhost.
-P port Nomor port server adb. Nilai defaultnya adalah 5037.
-L socket Memantau soket server adb yang disediakan. Nilai defaultnya adalah tcp:localhost:5037.
Perintah umum Deskripsi
devices [-l] Mencetak daftar semua perangkat. Gunakan opsi -l untuk menyertakan deskripsi perangkat. Untuk informasi selengkapnya, lihat Kueri untuk Perangkat.
help Mencetak daftar perintah adb yang didukung beserta deskripsinya.
version Mencetak nomor versi adb.
run-as package_name Menjalankan perintah pada perangkat sebagai aplikasi (ditentukan menggunakan nama_paket). Hal ini memungkinkan Anda menjalankan perintah di adb seolah-olah aplikasi yang Anda tetapkan menjalankan perintah itu (artinya, Anda memiliki akses perangkat yang sama dengan yang dimiliki aplikasi), tanpa memerlukan akses root. Ini mungkin diperlukan saat menggunakan adb pada perangkat yang tidak di-root atau pada emulator dengan image Play Store. Aplikasi harus dapat di-debug.
Perintah jaringan Deskripsi
connect host[:port] Membuat sambungan ke perangkat melalui TCP/IP. Jika Anda tidak menentukan port, port default 5555 akan digunakan.
disconnect [host | host:port] Memutus sambungan dari perangkat TCP/IP tertentu yang berjalan pada port yang ditentukan. Jika Anda tidak menentukan host atau port, maka semua sambungan perangkat akan diputus dari semua port TCP/IP. Jika Anda menentukan host, tetapi bukan merupakan port, port default 5555 akan digunakan.
forward --list Mencantumkan semua koneksi soket yang diteruskan.
forward [--no-rebind] local remote Alihkan sambungan soket dari port lokal yang ditentukan ke port jarak jauh yang ditentukan pada perangkat. Anda dapat menentukan port lokal dan jarak jauh dengan cara berikut:
  • tcp:port. Untuk memilih port yang terbuka, buat nilai lokal tcp:0.
  • localabstract:unix_domain_socket_name.
  • localreserved:unix_domain_socket_name.
  • localfilesystem:unix_domain_socket_name.
  • dev:character_device_name.
  • jdwp:pid.
forward --remove local Menghapus sambungan soket diteruskan yang ditentukan.
reverse --list Mencantumkan semua sambungan soket terbalik dari perangkat.
reverse [--no-rebind] remote local Membalik sambungan soket. Opsi --no-rebind berarti pembalikan gagal jika soket yang ditentukan sudah terikat melalui perintah reverse sebelumnya. Anda dapat menentukan port untuk argumen lokal dan jarak jauh dengan cara berikut:
  • tcp:port. Untuk memilih port yang terbuka, buat nilai jarak jauh tcp:0.
  • localabstract:unix_domain_socket_name.
  • localreserved:unix_domain_socket_name.
  • localfilesystem:unix_domain_socket_name.
reverse --remove remote Menghapus sambungan soket terbalik yang ditentukan dari perangkat.
reverse --remove-all Menghapus semua sambungan soket terbalik dari perangkat.
Perintah transfer file Deskripsi
push local remote Menyalin file dan direktori dari perangkat lokal (komputer) ke lokasi jarak jauh pada perangkat.
pull [-a] remote local Menyalin file dan direktori jarak jauh ke perangkat. Gunakan opsi -a untuk mempertahankan stempel waktu dan mode file.
sync  [system|vendor|oem|data|all] Menyinkronkan build lokal dari lokasi yang ditentukan dalam $ANDROID_PRODUCT_OUT dengan perangkat. Semua file yang diubah akan disalin dari partisi yang ditentukan. Setelan defaultnya adalah menyinkronkan semua partisi. Perintah ini hanya digunakan jika Anda membuat sumber platform Android. Developer aplikasi tidak perlu menggunakan perintah ini.

Variabel lingkungan $ANDROID_PRODUCT_OUT otomatis ditetapkan oleh sistem build Android untuk memuat lokasi image sistem. Biasanya Anda tidak perlu menetapkan $ANDROID_PRODUCT_OUT saat melakukan adb sync, tetapi setelan ini dapat berguna jika Anda tidak menggunakan struktur build (meskipun memilikinya) atau menyinkronkan beberapa struktur build tanpa beralih antar-struktur.


    $ANDROID_PRODUCT_OUT=/out/target/product/generic
    adb sync
    
Perintah penginstalan aplikasi Deskripsi
install [options] package Mengirim paket ke perangkat dan menginstalnya. Kemungkinan opsinya adalah:
  • --abi abi-identifier : Otomatis menginstal aplikasi untuk ABI tertentu.
  • -l: Meneruskan aplikasi kunci.
  • -r: Mengganti aplikasi yang ada.
  • -t: Mengizinkan paket pengujian. Jika APK dibuat menggunakan SDK pratinjau developer (jika targetSdkVersion berupa huruf, bukan angka), Anda harus menyertakan opsi -t dengan perintah instal ketika menginstal APK pengujian. Untuk informasi selengkapnya, lihat opsi -t.
  • -s: Menginstal aplikasi di kartu SD.
  • -d: Mengizinkan downgrade kode versi (khusus paket debug).
  • -g: Memberikan semua izin runtime.
install-multiple [options] packages

Opsi yang sama dengan install, dengan penambahan berikut:

-p: Penginstalan aplikasi parsial.

uninstall [-k] package Menghapus paket aplikasi ini dari perangkat. Tambahkan opsi -k untuk mempertahankan direktori data dan cache.
Perintah backup dan pemulihan Deskripsi
backup [-f file] [-apk | -noapk] [-obb | -noobb] [-shared | -noshared] [-all] [-system | [-nosystem] package_names Menulis arsip data perangkat ke file. Jika nama file tidak ditentukan, file default backup.adb akan digunakan. Daftar paket bersifat opsional saat Anda menentukan opsi -all dan -shared. Berikut ini penjelasan penggunaan opsi lainnya:
  • -apk | -noapk: Mem-backup atau tidak mem-backup file .apk. Nilai defaultnya adalah -noapk.
  • -obb | -noobb: Mem-backup atau tidak mem-backup file .obb. Nilai defaultnya adalah -noobb.
  • -shared | -noshared: Mem-backup atau tidak mem-backup penyimpanan bersama. Nilai defaultnya adalah -noshared.
  • -all: Mem-backup semua aplikasi yang sudah terinstal.
  • -system | -nosystem: Menyertakan atau tidak menyertakan aplikasi sistem saat mem-backup semua aplikasi yang telah terinstal (-all). Nilai defaultnya adalah -system.
restore file Memulihkan isi perangkat dari file.
Perintah debug Deskripsi
bugreport path Mencetak bugreport ke jalur yang ditentukan. Jika path berupa direktori, maka laporan bug disimpan ke direktori tersebut menggunakan nama file default, bugreport.zip. Perangkat yang tidak mendukung laporan bug dengan kompresi zip akan mencetak ke stdout.
jdwp Mencetak daftar proses JDWP yang tersedia pada perangkat tertentu. Gunakan forward jdwp:pid untuk terhubung dengan proses JDWP tertentu. Contoh:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
logcat [-help] [option] [filter-spec] Mencetak data log ke layar. Untuk informasi tentang perintah logcat dan variabel lingkungan $ANDROID_LOG_TAGS, lihat Memfilter Output Log pada halaman logcat.

Variabel lingkungan $ADB_TRACE berisi daftar informasi debug yang dipisahkan koma untuk log. Nilai dapat berupa sembarang kombinasi dari: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, dan jdwp.

Lihat juga Fitur Command Line Logcat.

Perintah keamanan Deskripsi
disable-verity Menonaktifkan pemeriksaan dm-verity pada build userdebug. Opsi dm-verity memastikan bahwa saat perangkat di-booting, perangkat tersebut berada dalam status yang sama seperti saat terakhir kali digunakan. Untuk informasi selengkapnya, lihat Booting Terverifikasi.
enable-verity Mengaktifkan kembali pemeriksaan dm-verity pada build userdebug. Opsi dm-verity memastikan bahwa saat perangkat di-booting, perangkat tersebut berada dalam status yang sama seperti saat terakhir kali digunakan. Untuk informasi selengkapnya, lihat Booting Terverifikasi.
keygen file Menghasilkan kunci adb publik dan pribadi dengan enkripsi RSA. Kunci pribadi disimpan dalam file. Kunci publik disimpan dalam file.pub. Pasangan kunci RSA diperlukan saat Anda menggunakan adb untuk membuat sambungan melalui USB untuk pertama kalinya. Anda harus menerima kunci RSA komputer host untuk memberi adb akses ke perangkat secara eksplisit.

Gunakan variabel lingkungan $ANDROID_VENDOR_KEYS untuk menunjukkan file atau direktori yang berisi pasangan kunci autentikasi RSA 2048 bit yang Anda hasilkan dengan perintah keygen. Pasangan kunci ini merupakan tambahan selain pasangan kunci RSA yang dihasilkan oleh server adb.

Saat memerlukan kunci, pertama-tama server adb akan menelusuri direktori penyimpanan kunci. Jika tidak ada kunci yang ditemukan, server adb akan memeriksa variabel lingkungan $ANDROID_VENDOR_KEYS untuk suatu lokasi. Jika kunci tetap tidak ditemukan, server adb lokal akan membuat dan menyimpan pasangan kunci baru di direktori penyimpanan kunci server adb. Karena alasan ini, hanya OEM yang membuat perangkat Android baru yang perlu menjalankan 'adb keygen' sendiri.

Secara default, pasangan kunci yang dihasilkan oleh server adb disimpan di direktori penyimpanan kunci berikut sebagai adbkey (kunci pribadi) dan adbkey.pub (kunci publik):

  • Linux dan Mac: $HOME/.android.
  • Windows: %USERPOFILE%\.android.
Perintah penulisan skrip Deskripsi
wait-for [-transport] -state Menunggu sampai perangkat berada dalam status yang ditentukan.
  • state: Nilainya mungkin device, recovery, sideload, atau bootloader.
  • transport: Nilainya mungkin usb, local, atau any.
get-state Mencetak status adb perangkat. Status adb bisa print offline, bootloader, atau device. Untuk informasi selengkapnya, lihat Kueri untuk Perangkat.
get-serialno Mencetak string nomor seri perangkat adb. Untuk informasi selengkapnya, lihat Kueri untuk Perangkat.
get-devpath Mencetak jalur perangkat adb.
remount Memasang kembali partisi /system, /vendor, dan /oem dalam mode baca-tulis.
reboot [bootloader | recovery | sideload | sideload-auto-reboot ] Menjalankan reboot perangkat. Setelan default perintah ini adalah melakukan booting image sistem, tetapi juga mendukung bootloader dan recovery.
  • Opsi bootloader menjalankan reboot ke bootloader.
  • Opsi recovery menjalankan reboot ke pemulihan.
  • Opsi sideload menjalankan reboot ke pemulihan dan memulai mode sideload.
  • Opsi sideload-auto-reboot sama dengan sideload, tetapi reboot dijalankan setelah sideload selesai.
sideload otapackage Menjalankan sideload (menginstal dalam format APK) paket OTA lengkap yang ditentukan ke perangkat.
root Memulai ulang adbd dengan izin root.
unroot Memulai ulang adbd tanpa izin root.
usb Memulai ulang server adb yang memantau USB.
tcpip port-number Memulai ulang server adb yang memantau TCP pada port yang ditentukan.
Perintah debugging internal Deskripsi
start-server Memeriksa apakah proses server adb sedang berjalan.
kill-server Menghentikan proses server adb.
reconnect Memaksa koneksi ulang dari host.
reconnect device Memaksa koneksi ulang dari perangkat.
Perintah shell Deskripsi
shell Memulai shell interaktif jarak jauh di perangkat target. Untuk informasi selengkapnya, lihat Memberikan perintah shell.
shell -e escape_char [-n] [-T] [-t] [-x] [command] Berikan perintah shell di perangkat target, lalu keluar dari shell jarak jauh. Gunakan kombinasi dari opsi berikut:
  • -e: Menentukan karakter escape atau nilai none jika Anda tidak ingin menggunakan karakter escape. Jika tidak ada nilai yang ditentukan, karakter escape default (tanda hubung (-)), akan digunakan.
  • -n: Jangan baca dari stdin.
  • -T: Menonaktifkan alokasi utilitas pseudo-terminal (PTY).
  • -t: Memaksakan alokasi PTY.
  • -x: Menonaktifkan kode keluar jarak jauh dan pemisahan stdout/stderr.

Untuk informasi selengkapnya, lihat Memberikan perintah shell.

emu command Menjalankan perintah konsol emulator. Untuk informasi selengkapnya, lihat Mengontrol Emulator dari Command Line.

Memberikan perintah shell

Anda dapat menggunakan perintah shell untuk memberikan perintah perangkat melalui adb, dengan atau tanpa memasuki shell jarak jauh adb di perangkat. Untuk memberikan perintah tunggal tanpa memasuki shell jarak jauh, gunakan perintah shell seperti ini:

    adb [-d |-e | -s serial_number] shell shell_command
    

Atau, masuki shell jarak jauh di perangkat seperti ini:

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

Setelah siap untuk keluar dari shell jarak jauh, tekan Control + D atau ketik exit.

Biner perintah shell disimpan dalam sistem file perangkat di /system/bin/.

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). Misalnya, adb shell setprop foo "'a b'".

Memanggil activity manager (am)

Dalam sebuah shell adb, Anda dapat memberikan perintah dengan fitur activity manager (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, sintaks-nya 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 Memulai sebuah Activity yang ditentukan 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 profiling berhenti ketika aplikasi tidak ada aktivitas.
  • -R count: Mengulangi peluncuran aktivitas count kali. Sebelum setiap pengulangan, aktivitas paling atas akan diselesaikan.
  • -S: Menghentikan paksa aplikasi target sebelum memulai aktivitas.
  • --opengl-trace: Mengaktifkan pelacakan fungsi OpenGL.
  • --user user_id | current: Menentukan pengguna mana yang akan dijalankan; jika tidak ditentukan, pengguna saat ini akan dijalankan.
startservice [options] intent Memulai Service yang ditentukan oleh intent.

Lihat Spesifikasi untuk argumen intent.

Opsi yang tersedia:

  • --user user_id | current: Menentukan pengguna mana yang akan dijalankan; jika tidak ditentukan, pengguna saat ini akan dijalankan.
force-stop package Menghentikan paksa segala sesuatu yang berkaitan dengan package (nama paket aplikasi).
kill [options] package Mematikan semua proses yang berkaitan dengan package (nama paket aplikasi). Perintah ini hanya mematikan proses yang aman untuk dimatikan dan yang tidak akan memengaruhi pengalaman pengguna.

Opsi yang tersedia:

  • --user user_id | all | current: Menentukan pengguna yang prosesnya akan dimatikan; jika tidak ditentukan, perintah diberlakukan pada semua pengguna.
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 ditentukan, pengiriman dilakukan ke semua pengguna.
instrument [options] component Memulai pemantauan dengan instance Instrumentation. Biasanya component target berformat test_package/runner_class.

Opsi yang tersedia:

  • -r: Mencetak hasil mentah (jika tidak, mendekode report_key_streamresult). Gunakan dengan [-e perf true] untuk membuat output mentah yang akan dipakai pada pengukuran performa.
  • -e name value: Menyetel argumen name ke value. Untuk test runner, format yang biasa dipakai adalah -e testrunner_flag value[,value...].
  • -p file: Menulis data profiling ke file.
  • -w: Menunggu instrumentasi 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 ke file.
profile stop process Menghentikan profiler pada 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 debugging 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 untuk 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 activity manager yang menggunakan argumen intent, Anda dapat menentukan intent dengan opsi berikut:

Memanggil package manager (pm)

Dalam shell adb, Anda dapat memberikan perintah dengan fitur package manager (pm) untuk menjalankan tindakan dan kueri pada paket aplikasi yang diinstal pada perangkat. Saat berada dalam shell, sintaks-nya 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 terkait.
  • -d: Memfilter untuk hanya menampilkan paket yang nonaktif.
  • -e: Memfilter untuk hanya menampilkan paket yang aktif.
  • -s: Memfilter untuk hanya menampilkan paket sistem.
  • -3: Memfilter untuk hanya menampilkan paket pihak ketiga.
  • -i: Melihat installer untuk paket.
  • -u: Juga mencakup paket yang telah di-uninstal.
  • --user user_id: Ruang pengguna untuk membuat kueri.
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: Mengatur berdasarkan kelompok.
  • -f: Mencetak semua informasi.
  • -s: Ringkasan 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:

  • -l: Menginstal paket dengan kunci penerusan.
  • -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. Apabila 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: Menentukan nama paket installer.
  • -s: Menginstal paket pada penyimpanan massal bersama (seperti sdcard).
  • -f: Menginstal paket pada memori sistem internal.
  • -d: Mengizinkan downgrade kode versi.
  • -g: Memberikan semua izin yang tercantum dalam manifes aplikasi.
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 tinggi, izin tersebut dapat berupa izin apa saja yang dinyatakan 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 tinggi, izin tersebut dapat berupa izin apa saja yang dinyatakan 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 memori eksternal.

Catatan: Perintah ini hanya dimaksudkan untuk debugging; penggunaannya dapat menimbulkan kerusakan aplikasi dan perilaku yang tidak diinginkan lainnya.

get-install-location Menampilkan lokasi penginstalan saat ini. Nilai yang ditampilkan:
  • 0 [auto]: Sistem dapat menentukan lokasi terbaik
  • 1 [internal]: Menginstal pada memori internal perangkat
  • 2 [external]: Menginstal pada memori 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 device policy manager (dpm)

Untuk membantu Anda mengembangkan dan menguji aplikasi pengelolaan perangkat (atau aplikasi perusahaan lainnya), Anda dapat memberikan perintah ke fitur device policy manager (dpm). Gunakan fitur 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 device policy manager yang tersedia

Perintah Deskripsi
set-active-admin [options] component Menetapkan komponen 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 komponen 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 komponen 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.

Keterbatasan 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. Opsi screenrecord

Opsi Deskripsi
--help Menampilkan sintaks dan opsi perintah
--size widthxheight Menetapkan ukuran video: 1280x720. Nilai default-nya 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
    

Menyetel ulang 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 yang mengizinkan proses debug melalui workstation saat ini di lokasi yang sama. Dengan begitu, setelah perangkat disetel ulang, 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, penggunaan 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 perintah testharness, Anda dapat menggunakan ActivityManager.isRunningInUserTestHarness().

Perintah shell lainnya

Untuk melihat daftar semua program shell yang tersedia, gunakan perintah berikut:

adb shell ls /system/bin

Bantuan tersedia untuk sebagian besar perintah.

Tabel di bawah mencantumkan beberapa perintah shell adb yang umum.

Tabel 6. Beberapa perintah shell adb lainnya

Perintah shell Deskripsi
dumpsys Mengeluarkan data sistem ke layar. Untuk mempelajari fitur command line ini lebih lanjut, baca dumpsys.
dumpstate Mengeluarkan status ke file.
logcat [option]...  [filter-spec]... Mengaktifkan pembuatan log sistem dan aplikasi, serta mencetak output ke layar.

Lihat juga Fitur Command Line Logcat.

dmesg Mencetak pesan debugging kernel ke layar.
start Memulai (memulai ulang) perangkat.
stop Menghentikan eksekusi perangkat.
sqlite3 Memulai program command line sqlite3.

Fitur sqlite3 mencakup perintah seperti .dump untuk mencetak isi tabel dan .schema untuk mencetak laporan SQL CREATE untuk tabel yang sudah ada. Anda juga dapat menjalankan perintah SQLite selagi menjalankan proses.

Database SQLite3 disimpan dalam folder /data/data/package_name/databases/.

Contoh:


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