• 学习笔记_ADB常用指令


    ADB

    • 查看连接到计算机的Android设备或模拟器

    adb devices

    说明: 正常显示状态应该是IP:Port State. State=device说明设备已经连接到计算机, State=offline说明设备没有连接到计算机或无响应, 这就需要尝试重启计算机/重启Android设备/重启adb/网络断开等方法.

    • 安装某应用

    adb install "C:Users onghuihuiDesktopVisApp.apk"

    • 重新安装某应用

    adb install -r "C:Users onghuihuiDesktopVisApp.apk"

    • 完全卸载某应用

    adb uninstall com.hik.visapp

    • 部分卸载某应用, 卸载时保留该应用的配置和缓存文件

    adb uninstall -k com.hik.visapp

    • 移除apk文件

    adb shell rm "system/app/VisApp.apk"

    说明:

    1. 如果无法确定采用何种命令安装, 可以先uninstall卸载, 如果失败, 用rm命令移除应用;
    2. 如果使用rm卸载, 可能会忘记同时清除和应用相关的包, 缓存文件, 影响下次成功安装. 建议采用install和uninstall进行安装卸载.
    • 启动某应用

    adb shell am start -n com.hik.visapp/com.hikvisapp.ui.DesktopActivity

    • 建立主机和Android设备之间的无线adb连接
    1. USB直连主机和设备, 配置Android设备TCP端口:  adb tcpip 5555
    2. 同一Wifi: $ adb kill-server && adb connect 10.15.3.22 && adb remount
    3. 或者

    adb kill-server

    adb connect 10.15.3.193:5555

    adb remount

    说明: 运行 adb devices 命令, 确认是否连接成功, 成功会显示Android设备IP.

    • 同时无线adb多个设备时如何区分

    adb -s devicename cmd

    e.g. adb -s 10.15.3.73 logcat

    e.g. adb -s Default0string cmd

    • 从电脑上传文件到设备

    adb push <local path> <remote path>

    e.g. adb push "C:UsersronghuihuiDesktopVisApp.apk" "system/app"

    说明:

    1. 直接向单板上传文件时, 需要开启目标路径文件系统的写权限, 否则会上传失败. 这和我在Mac OS X上的体验是一致的. UNIX内核的操作系统, 在Bash环境下操作文件系统时, 需要chmod +x等指令开启读写权限;
    2. 注意""和"/", 是在两种不同操作系统下的间隔符.
    • 从Android设备下载文件到电脑

    adb pull <remote path> <local path>

    e.g. adb pull system/app/VisApp.apk C:Users onghuihuiDesktop

    e.g. adb pull system/app C:Users onghuihuiDesktop  #把app全down下来了, 整个桌面都是android小人敲可爱嘻嘻

    • 查看bug报告

    adb bugreport

    说明: bug report内容太多, 缓存不够, 可以将report重定向到指定文件, 再"硬读", 或利用某些对应的开源软件处理report获得图形化统计结果.

    • 查看设备的系统信息

    adb shell getprop

    • Monkey基本使用

    adb shell monkey -p com.hik.visapp -v 500 (500个触发事件)

     说明: 模拟屏幕的随机触摸, 主要实现"随便点来点去应用都不会崩溃的压力测试"

    • 查看Activity堆栈

    adb shell dumpsys activity

    • 查看当前resume的是哪个Activity

    adb shell "dumpsys activity | grep mFocusedActivity"

    说明: 是对dumpsys activity输出的过滤

    • 查看日志缓冲区

    adb shell logcat

    adb logcat

    • 通过优先级过滤日志

    adb logcat *:W

    • 输出特定TAG的日志

    adb logcat DesktopActivity:* *:S

    adb logcat -s MonitorAdActivity

    • 过滤掉DesktopActivity, 保留MonitorAdActivity

    adb logcat DesktopActivity:I MonitorAdActivity:D *:S

     

     


     

    ADB Shell

    ADB另一个功能就是运行设备shell.

    我的理解是, 操作系统总是有通过串口/SPI的日志输出. 系统运行时以写文件的形式向串口/SPI等中写入Log, 再从串口/SPI中读取这些Log, 显示到串口调试窗或者命令行界面.

    ADB在Android系统中应该是一个Socket进程, 通过无线/有线的Socket连接, 传输数据. Android设备应该是Server, 个人主机是Client, 每次通过adb connect ip请求建立Socket连接. 连接成功后, adb就和Android设备的文件系统建立了Sync的关联. 通过C/S关系控制和管理Android内核, 系统和应用.

    成熟的操作系统, 会对这样一个读写的文件系统进行完善, 可以读取, 显示指定的Log, 可以输出重定向, 可以追加保存.

    • 进入设备或模拟器的shell环境

    adb shell

    • 只执行一条shell命令

    adb shell [command]

    • 打印内核调试信息

    adb shell dmesg

     

    adb shell ps

     

     


     

    busybox

    • 获取目标板IP

    busybox ifconfig

    • 确认主机和Android设备连接在同一网络

    $ ping 10.15.3.193

  • 相关阅读:
    循环链表版本-----约瑟夫环
    插入排序
    队列的模板
    数据结构-栈-进制转换
    括号匹配
    两个有序链表合成一个有序链表
    希尔排序
    java-MD5-加密
    java使用Test测试接口类
    将将List json 转成List<?>实体
  • 原文地址:https://www.cnblogs.com/elsarong/p/6016249.html
Copyright © 2020-2023  润新知