常用adb命令
如果只连接了一个设备,可不用声明这3个参数,默认让唯一设备执行命令。 • 查看adb版本 adb version • 查看已连接设备 adb devices
目录 1. 常用adb命令 2. am命令 3. pm命令 4. logcat 5. ps
• 开启/关闭adb服务 adb start/kill-server
分区 adb命令 的第 1 页
参数: ('-p': to display the transfer progress) 显示进度 例:adb -e push -p D:/aa.apk /mnt/sdcard/wandoujia/app/ 将D盘aa.apk文件复制到sdcard中 注意:此命令不能在shell下使用
• 杀死指定包名应用的线程 am kill <packagename>
• 杀死所有后台线程 am kill-all
adb shell pm命令:
m命令全称package manager,可以通过相应的命令进行应用的安装、卸载,查看系 统已安装应用的信息等。
分区 adb命令 的第 2 页
• 安装应用 adb shell pm install [options] <path> 参数: 同install命令。
分区 adb命令 的第 4 页
adb命令
2016年1月14日 星期四 11:20
简介:
adb全称Android Debug Bridge,是Android SDK(platform-tool文件夹)中提供的一个 功能强大的工具,用于与Android设备进行交互。
常用的adb命令:
adb命令的使用格式: adb [ -d | -e | -s <设备序列号> ] <命令> 参数含义: d:让唯一连接到PC的真实安卓设备执行命令,如果有多部设备报错。 e:让唯一连接到PC的安卓模拟器执行命令。 s <设备序列号>:通过设备序列号指定设备执行命令。
• 模拟按键 adb shell input keyevent <Keycode> 通过发送键值,模拟按键
adb shell am命令:
am命令全称activity manager,可以通过命令启动activity、service、发送broadcast 等。
• 启动activity adb shell am start <-n 包名/类名 | -a action | -d date | -c category> 例: 启动activity: am start -n com.test.demo/com.test.demo.activity.MainActivity 启动带参数的Activity: am start -n com……… -c key value
例:adb pull /mnt/sdcard/wandoujia/app/aa.apk D:/ 将sdcard中的aa.apk文件制的D盘根目录 注意:此命令不能在shell下使用
• 将数据(文件或文件夹)从PC复制到设备中 adb push [-p] <local> <remote> - copy file/dir to device 参数:
• 卸载应用 adb shell pm uninstall [options] <packagename> 参数: -k:保留数据
• 查看系统已安装应用包名 adb shell pm list packages
• 查看已安装应用apk路径 adb shell pm path <packagename> • 清除应用数据 adb shell pm clear <packagename>
adb logcat命令
查看和跟踪日志缓冲区。
• 通过Tag标签过滤日志 adb logcat <tag>[:priority] 参数(priority): 优先级是下面的字符,顺序是从低到高: V — 明细 (最低优先级) D — 调试 I — 信息 W — 警告 E — 错误 F — 严重错误 S — 无记载 (最高优先级,没有什么会被记载) 可以用空格分隔加入多个过滤表达式。
• 启动/关闭Service am startservice <-n 包名/类名 | -a action | -d date | -c category> 参数说明同上。
• 发送一个广播 am startservice/stopservice <-n 包名/类名 | -a action | -d date | -c category> 参数说明同上。
• 将数据(文件或文件夹)从设备复制到PC端 adb pull [-p] [-a] <remote> [<local>] - copy file/dir from device 参数: ('-p' :to display the transfer progress) 显示进度 ('-a' :means copy timestamp and mode) 复制时间戳和模式???
• 控制日志格式
日志消息在标记和优先级之外还有很多元数据字段,这些字段可以通过修改输出格 式来控制输出结果, -v 选项加上下面列出的内容可以控制输出字段: ○ brief — 显示优先级/标记和原始进程的PID (默认格式) ○ process — 仅显示进程PID ○ tag — 仅显示优先级/标记 ○ thread — 仅显示进程:线程和优先级/标记 ○ raw — 显示原始的日志信息,没有其他的元数据字段 ○ time — 显示日期,调用时间,优先级/标记,PID ○ long —显示所有的元数据字段并且用空行分隔消息内容 可以使用 -v启动 logcat来控制日志格式: [adb] logcat [-v <format>] 例如使用 thread 输出格式: adb logcat -v thread • 将日志导出到文件 adb logcat -f <fileName>
• 屏幕录像 adb shell screenrecord [--size 1024*720 | --time-limit 1000] <filename>
录制屏幕并保存到指定位置 参数: --size 1024*720:指定视频分辨率 --time-limit 1000:指定录制时间,默认为180s 注意:此命令需要系统至少为4.4,并且模拟器不支持录制 • 截取屏幕 adb shell screencap <filename> 截图并保存 • 设备关机与重启 adb reboot adb shutdown
分区 adb命令 的第 3 页
PS: android.permission.READ_LOGS:app读取日志权限,android 4.1之前版本通过申请 READ_LOGS权限就可以读取其他应用的log了。但是谷歌发现这样存在安全风险,于 是android 4.1以及之后版本,即使申请了READ_LOGS权限也无法读取其他应用的日志 信息了。4.1版本中 Logcat的签名变为“signature|system|development”了,这意味着 只有系统签名的app或者root权限的app才能使用该权限。普通用户可以通过ADB查看 所有日志。
• 进入手机超级终端 adb shell • 安装应用 adb install [-l r t s d g] <file> - push this package file to the device and install it 参数: (-l: forward lock application) (-r: replace existing application) 覆盖安装 (-t: allow test packages) (-s: install application on sdcard) 安装到sdcard中 (-d: allow version code downgrade) 允许安装较低版本 (-g: grant all runtime permissions) 授予所有运行时权限 • 卸载应用 adb uninstall [-k] <package> - remove this app package from the device 参数: ( -k : means keep the data and cache directories) 保留数据