打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ADB命令详解

概述

adb(Android debug bridge),用于管理模拟器或真机。包括三个部分:adb客户端(PC上),adb服务器(PC上),adbd(模拟器或真机上)。网上看到下图,贴上来

  运行adb客户端时,会检测adb服务器进程时候运行,如果没有运行,启动服务器。当服务器启动时,会绑定到本地的TCP5037端口。并且监听从adb客户端发来的命令。

说明:可以通过 adb start-server启动服务,通过adb kill-server停止服务。

  adb服务器与所有正在运行的模拟器和真机连接。它通过扫描5555—5585之间的奇数端口来搜索模拟器或真机,一旦发现adb守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或真机使用一对端口,奇数端口用于adb连接,偶数端口用于控制台连接。

  如果模拟器与adb在5555端口连接,则控制台的连接端口将是5554.

 

Android 命令

  使用Android命令的前提条件,一定要将sdk\tools目录放到环境变量中。

  使用android -h获取帮助信息。android list device和adb devices输出的内容不一致,应该是android输出的并不是已经运行的设备,而是其能创建虚拟机的设备列表,使用eclipse创建虚拟机的时候,可以选择的那个列表。另外android命令执行的时间比较长。android命令没有特别去操作,只是在网上看到很多人写的博客中都有android命令,但是自己用的时候却提示不是内部或外部命令。所以将使用android命令的前提写出来。

  android包含很多子命令。可以通过以下方式查看子命令的帮助信息:

  例如查看创建模拟器子命令的帮助信息:android -h create avd

  在sdk\tools目录中,不止有android命令。还有ddms等命令,可以操作一下试试。

 

ADB常用命令

  adb version 查看adb版本

  adb install [-lrtsdg] <file> 安装app

  adb install-multiple [-lrtsdpg] <file ... >

  adb uninstall [-k] <pakage> 卸载app

  adb push <local> <remote> 从PC拷贝东西到设备上

  adb pull <remote> <local> 从设备拷贝东西到PC上

  adb logcat 设备的日志

  adb bugreport 查看bug报告

  adb jdwp

  adb sync [<directory>] 

  adb shell 进入设备的shell命令

  adb emu

  adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages ... >]

  adb restore

  adb disable-verity

  adb enable-verity

  adb keygen <file>

  adb forward <local> <remote> 将特定端口上的请求转发到模拟器或手机的指定端口上。

  adb forward --no-rebind <local> <remote>  

  adb forward --list  

  adb forward --remove <local>

  adb forward --remove-all

  adb reverse <remote> <local>

  adb reverse --norebind <remote> <local>

  adb reverse --list

  adb reverse --remove <remote>

  adb reverse --remove-all


连接设备相关:

  adb -a 命令针对所有的设备,需要与命令一起使用,例如 adb -a push <local> <remote>

  adb -d 命令针对真机,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -e 命令针对虚拟机,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -s <specific device> 命令针对指定设备,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -p <product name or path>

  adb -H 访问其他机器上的adb service

  adb -P 访问其他机器上的adb service

  adb devices [-l] 列出所有的设备,实际列出的就是设备的serialnumber,可以通过-s指定列出的serialNumber找到对应的设备

  adb connect <host>[:<port>] 

  adb disconnect[<host>[:<port>]] 

 

scripting :

  adb wait-for-device

  adb start-server 启动adb server

  adb kill-server 停止adb server

  adb get-state 列出设备状态: offline | bootloader | device

  adb get-serialno 列出设备的serial number

  adb get-devpath 

  adb remount 从新挂载系统分区,使其可写(system、vendor、oem目录)

  adb reboot [bootloader|recovery] 

  adb reboot sideload

  adb reboot sideload-auto-reboot

  adb sideload <file>

  adb root  重启adbd并获得root权限

  adb unroot  重启adbd并释放root权限

  adb usb

  adb tcpip <port>

 

Android系统对应的命令(部分为linux命令)

adb shell am start -n <package_name>/.<activity_class_name>  // 启动应用

adb shell top        // 查看设备cpu和内存占用情况
adb shell top -m 6     // 查看占用内存前6的app
adb shell top -n 1    // 刷新一次内存信息,然后返回
adb shell procrank     // 查询各进程内存使用情况
adb shell kill [pid]    // 杀死一个进程
adb shell ps        // 查看进程列表
adb shell ps -x [PID]    // 查看指定进程状态

adb shell service list   // 查看后台services信息

 

emulator命令

可以使用emulator命令启动模拟器。

emulator -avd <avd名称>

emulator -data 镜像文件名称

 

连接真机的两种方式

  可以通过两种方式连接真机,通过usb连接,也可以通过局域网连接,如下图所示。通过局域网连接的方式需要使用命令adb connect <host>[:<port>],断开连接的方式 adb disconnect[<host>[:<port>]]

在Android6.0 (Android M)userdebug版本上(eng版本不存在该问题),发现使用adb remount 系统之后,还是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system

解决方法如下 

.执行如下命令 

1. adb root 
2. adb disable-verity 
(最新的adb 工具包才支持adb disable-verity命令,如果是Linux开发环境,则可使用工程编译结果目录out/host/linux-x86/bin下的adb执行文件) 
3. adb reboot 重启设备 
(只要不刷机,以上步骤执行一次就行) 
4. adb root 
5. adb remount 
现在可以对system分区进行读写了

注意点: 
1.新版本的adb工具 adb shell 进入命令行之后,Ctrl+c不能退出,可输入exit退出 
2.可点击adb\run_adb.bat文件直接启动adb

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android 命令(adb shell)进入指定模拟器或设备
为开发者总结了Android ADB 的常用十种命令
ubuntu下USB调试android手机,并进入手机shell终端
Android adb的常用命令讲解
Android程序的调试技巧
adb工具的使用 - Android开发进阶交流 - eoe·Android开发社区 |最棒Android开发|最好Andriod社区|Android论坛 - Powered by Discuz!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服