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文章
6092浏览量
35833 -
安卓
+关注
关注
5文章
2140浏览量
57882 -
Firefly
+关注
关注
2文章
539浏览量
7209 -
RK3308
+关注
关注
1文章
40浏览量
1287
发布评论请先 登录
相关推荐
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规格书

评论