ADB 使用
前言
ADB,全稱 Android Debug Bridge,是 Android 的命令行調試工具,可以完成多種功能,主要有:
運行設備的 shell(命令行)
計算機和設備之間上傳/下載文件
將本地 apk 軟件安裝至模擬器或硬件設備
ADB是一個“客戶端-服務器端”程序,其中客戶端主要是指 PC,服務器端是 Android 設備的實體機器或者虛擬機。根據 PC 連接 Box 機器的方式不同,ADB 可以分為兩類:
網絡 ADB:主機通過有線/無線網絡(同一局域網)連接到硬件設備
USB ADB:主機通過 USB 線連接到硬件設備
為了在ROC-RK3308-CC也能使用ADB工具進行調試,我們移植了adb服務。但由于并非Android設備,很多adb命令類似adb logcat、adb install等不能使用,僅作為普通的調試輔助工具,可以進行shell交互、上傳下載文件等操作。同樣,網絡遠程ADB調試不能使用。
Buildroot 配置
準備連接
ROC-RK3308-CC 只能使用USB ADB功能,使用USB ADB有以下限制:
只支持 USB OTG 口
不支持多個客戶端同時使用(如 cmd 窗口,eclipse 等)
只支持主機連接一個設備,不支持連接多個設備
用 USB Type-C 線連接設備和主機,運行adb devices命令,如果顯示機器的序列號,表示連接成功。
Windows下的 ADB 安裝
首先參照安裝 RK USB 驅動一節安裝好驅動。然后下載 adb.zip,解壓到 C:\adb 以方便調用。
打開命令行窗口,輸入:
cd C:\adb adb shell
如果一切正常,就可以進入adb shell,在設備上面運行命令。
Ubuntu 下的 ADB 安裝
安裝 adb 工具:
sudo apt-get install android-tools-adb
加入設備標識:
mkdir -p ~/.android vim ~/.android/adb_usb.ini # 添加以下一行 0x2207
加入 udev 規則:
sudo vim /etc/udev/rules.d/51-android.rules # 添加以下一行: SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666"
重新插拔 USB 線,或運行以下命令,讓 udev 規則生效:
sudo udevadm control --reload-rules sudo udevadm trigger
重新啟動 adb 服務器
sudo adb kill-server adb start-server
常用 ADB 命令
連接管理
列出所有連接設備及其序列號
adb devices
如果有多個連接設備,通過以下命令,使用序列號來區分:
export ANDROID_SERIAL=<序列號> adb shell ls
進入設備的 shell
adb shell
從電腦上傳文件到設備
adb push <本地路徑> <遠程路徑>
從設備下載文件到電腦
adb pull <遠程路徑> <本地路徑>
暫不支持網絡 adb 調試。
獲取詳細運行信息 adb bugreport
adb bugreport 用于錯誤報告,里面包含大量有用的信息。
示例:
adb bugreport # 保存到本地,方便用編輯器查看 adb bugreport >bugreport.txt
命令行幫助信息 adb help
注意:并不是所有命令都能使用,幫助信息只做參考
Android Debug Bridge version 1.0.31 -a - directs adb to listen on all interfaces for a connection -d - directs command to the only connected USB device returns an error if more than one USB device is present. -e - directs command to the only running emulator. returns an error if more than one emulator is running. -s - directs command to the device or emulator with the given serial number or qualifier. Overrides ANDROID_SERIAL environment variable. -p - simple product name like 'sooner', or a relative/absolute path to a product out directory like 'out/target/product/sooner'. If -p is not specified, the ANDROID_PRODUCT_OUT environment variable is used, which must be an absolute path. -H - Name of adb server host (default: localhost) -P - Port of adb server (default: 5037) devices [-l] - list all connected devices ('-l' will also list device qualifiers) connect [:] - connect to a device via TCP/IP Port 5555 is used by default if no port number is specified. disconnect [[:]] - disconnect from a TCP/IP device. Port 5555 is used by default if no port number is specified. Using this command with no additional arguments will disconnect from all connected TCP/IP devices. device commands: adb push [-p] - copy file/dir to device ('-p' to display the transfer progress) adb pull [-p] [-a] [] - copy file/dir from device ('-p' to display the transfer progress) ('-a' means copy timestamp and mode) adb sync [ ] - copy host->device only if changed (-l means list but don't copy) (see 'adb help all') adb shell - run remote shell interactively adb shell - run remote shell command adb emu - run emulator console command adb logcat [ ] - View device log adb forward --list - list all forward socket connections. the format is a list of lines with the following format: " " " " "\n" adb forward - forward socket connections forward specs are one of: tcp: localabstract: localreserved: localfilesystem: dev: jdwp: (remote only) adb forward --no-rebind - same as 'adb forward ' but fails if is already forwarded adb forward --remove - remove a specific forward socket connection adb forward --remove-all - remove all forward socket connections adb jdwp - list PIDs of processes hosting a JDWP transport adb install [-l] [-r] [-d] [-s] [--algo --key --iv ] - push this package file to the device and install it ('-l' means forward-lock the app) ('-r' means reinstall the app, keeping its data) ('-d' means allow version code downgrade) ('-s' means install on SD card instead of internal storage) ('--algo', '--key', and '--iv' mean the file is encrypted already) adb uninstall [-k] - remove this app package from the device ('-k' means keep the data and cache directories) adb bugreport - return all information from the device that should be included in a bug report. adb backup [-f ] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [] - write an archive of the device's data to . If no -f option is supplied then the data is written to "backup.ab" in the current directory. (-apk|-noapk enable/disable backup of the .apks themselves in the archive; the default is noapk.) (-obb|-noobb enable/disable backup of any installed apk expansion (aka .obb) files associated with each application; the default is noobb.) (-shared|-noshared enable/disable backup of the device's shared storage / SD card contents; the default is noshared.) (-all means to back up all installed applications) (-system|-nosystem toggles whether -all automatically includes system applications; the default is to include system apps) ( is the list of applications to be backed up. If the -all or -shared flags are passed, then the package list is optional. Applications explicitly given on the command line will be included even if -nosystem would ordinarily cause them to be omitted.) adb restore - restore device contents from the backup archive adb help - show this help message adb version - show version num scripting: adb wait-for-device - block until device is online adb start-server - ensure that there is a server running adb kill-server - kill the server if it is running adb get-state - prints: offline | bootloader | device adb get-serialno - prints: adb get-devpath - prints: adb status-window - continuously print device status for a specified device adb remount - remounts the /system partition on the device read-write adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program adb reboot-bootloader - reboots the device into the bootloader adb root - restarts the adbd daemon with root permissions adb usb - restarts the adbd daemon listening on USB adb tcpip - restarts the adbd daemon listening on TCP on the specified port networking: adb ppp [parameters] - Run PPP over USB. Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1 [parameters] - Eg. defaultroute debug dump local notty usepeerdns adb sync notes: adb sync [ ] can be interpreted in several ways: - If is not specified, both /system and /data partitions will be updated. - If it is "system" or "data", only the corresponding partition is updated. environmental variables: ADB_TRACE - Print debug information. A comma separated list of the following values 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp ANDROID_SERIAL - The serial number to connect to. -s takes priority over this if given. ANDROID_LOG_TAGS - When used with the logcat option, only these debug tags are printed.
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35612 -
安卓
+關注
關注
5文章
2136瀏覽量
57599 -
Firefly
+關注
關注
2文章
538瀏覽量
7129 -
RK3308
+關注
關注
1文章
39瀏覽量
1195
發布評論請先 登錄
相關推薦
fireflyROC-RK3308B-CC--啟動模式說明
微雪電子RK3308主板CC啟動模式介紹
Core 3308Y固件ROC RK3308B CC PLUS Buildroot NoUI

Core 3308Y固件ROC RK3308B CC PLUS Buildroot MiniGUI

Core 3308Y ROC RK3308B CC PLUS Ubuntu Minimal固件

Core 3308Y固件ROC RK3308B CC PLUS Ubuntu Desktop固件

Core 3308Y固件ROC RK3308B CC PLUS支持Docker固件

Core 3308Y固件ROC RK3308B CC Buildroot NoUI固件

ROC RK3308B CC Buildroot Qt Desktop固件

IoT四核64位開源主板ROC RK3308B CC規格書

四核64位開源主板ROC RK3308B CC Plus規格書

評論