ADB命令

ADB简介

  ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢? 
  因为adb是一个标准的C/S结构的工具, 是要连接开发电脑和调试手机的

  包含如下几个部分:
    1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。
    2.Daemon守护进程, 运行在调试设备中, 即的调试手机或模拟器。
    3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Daemon之间的通信。
  • 三者之间的通信
    Client<—>Server<—>Daemon

主要命令

  • adb帮助

      adb --help
    
  • 启动adb server

      adb start-server
    
  • 关闭adb server

      adb kill-server
    
  • 获取设备号

    adb devices
  • 获取系统版本
    adb -s 设备号 shell getprop ro.build.version.release
  • 发送文件到手机
      adb push 电脑端文件路径/需要发送的文件  手机端存储的路径
      示例:
          将桌面的xx.png发送到手机sdcard目录下
          adb push C:UserswinDesktopxx.png  /sdcard
    
  • 从手机拉取文件
      adb pull 手机端的路径/拉取文件名 电脑端存储文件路径
      示例:
          将手机/sdcard目录中的xx.png文件,发送到电脑桌面
          adb pull /sdcard/xx.png C:UserswinDesktop
    
  • 查看手机运行日志
      adb logcat

   app运行日志输出到文件:
    mac/linux: adb logcat | grep 包名 >> ./log.txt
    windows:mac/linux: adb logcat | findstr 包名 >> ./log.txt

logcat缓冲区

android log输出量巨大,特别是通信系统的log,因此,android把log输出到四个不同的缓冲区

目前定义了四个log缓冲区:

Radio:输出通信系统的log

System:输出系统组件的log

Events:输出event模块的log

Main:所有java层的log(不属于上面3层的log)

指定输出通信系统的log:adb logcat -b radio

默认log输出(不指定缓冲区的情况下)是输出system和Main缓冲区的log

logcat日志分析

 由五部分组成

1、写下日志时的时间,如01-11 09:39:35.209

2、进程ID和线程ID

3、优先级:在android中,日志的优先级从低到高分为以下几种:

V-Verbose(啰嗦,最低级别,开发调试中的一些详细信息,尽在开发中使用,不可在发布中使用)

D-Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)

I-Info(信息,一般提示性的消息)

W-Warning(警告)

E-Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志信息)

4、tag标签:标明日志发起者和方便日志的过滤筛选。

5、Meaasge正文:本日志的主体内容

  • 手机shell命令行
    adb shell
  • 安装app到手机
      adb install 路径/xx.apk
    
  • 卸载手机手机app
      adb uninstall 包名
    
  • 获取app启动时间
      adb shell am start -W 包名/启动名
      示例:
          adb shell am start -W com.yly.drawpic/.MainActivity
      解释:
          TotalTime:app自身启动时间 
          WaitTime:系统启动应用时间
  • app运行cpu等信息输出到文件:
   mac/linux: adb shell top | grep 包名 >> ./top.txt

   windows: add shell top | findstr 包名 >> ./top.txt

获取app启动包名和启动名(⚠️ 手机需要先打开对应app)

1)方法一

    1.Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp
    2.在 Windows 终端运行 adb shell dumpsys window windows| findstr mFocusedApp 

2)方法二:通过logcat

    adb logcat |findstr -i displayed

3)方法三:aapt工具定位包名和启动名: 

  1. 如何使用aapt命令查看手机app报名等信息
  2.  

    输入aapt命令:aapt dump badging C:UsersAdministratorDesktopfinance-googleplay-nonprodalpha-release.apk

    如何使用aapt命令查看手机app报名等信息
  3.  

    app包名就是package后面的内容:com.microsoft.amp.apps.bingfinance.nonprod

    可以添加  find "package" 进行过滤

    如何使用aapt命令查看手机app报名等信息
  4.  

    launchable-activity后内容就是appWaitActivity,如:com.microsoft.amp.apps.bingfinance.activities.views.MainActivity

    可以添加 | find "launchable-activity" 进行过滤

    如何使用aapt命令查看手机app报名等信息
原文地址:https://www.cnblogs.com/crystal1126/p/12326459.html