zoukankan      html  css  js  c++  java
  • 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 ools目录放到环境变量中。

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

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

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

      在sdk ools目录中,不止有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>]]

      

  • 相关阅读:
    线程唤醒
    以前、现在
    黑马程序员训练营基础测试
    流程图
    线程同步
    Thread联系
    Java线程
    Java中文件流笔记
    字符串习题
    匿名内部类
  • 原文地址:https://www.cnblogs.com/huanyou/p/5133737.html
Copyright © 2011-2022 走看看