zoukankan      html  css  js  c++  java
  • 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报名等信息
  • 相关阅读:
    赋值运算符函数
    系统设计面试题分析
    内核线程和用户线程的区别
    线程和进程区别
    TCP程序设计
    UDP程序设计
    死锁,死锁必要条件及处理策略
    Linux进程同步机制
    Windows与Linux下进程间通信技术比较
    Windows下进程通信方式
  • 原文地址:https://www.cnblogs.com/crystal1126/p/12326459.html
Copyright © 2011-2022 走看看