adb常用命令

adb的作用

adb:adb的全称为AndroidDebugBridge,译为android调试桥,就是在android系统中起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。

adb的工作方式比较特殊,采用监听SocketTCP5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。

adb是androidsdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机)。

adb在appium自动化中的作用:

  • 连接设备
  • 获取应用的包名、页面名
  • 元素点击、传值、滑动等事件
  • 查看日志,分析报错
  • 计算机和设备之间上传/下载文件;
  • 安装/卸载应用
  • 等等

常见的adb指令

1.查看当前连接的设备

adb devices

在这里插入图片描述

2.获取应用的包名和页面名

真机:(打开印象笔记APP)

adb shell dumpsys activity recents | find "intent={"

在这里插入图片描述
找到第一个intent复制出来:

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.yinxiang/com.evernote.ui.HomeActivity}

至于为什么我们需要获取包名和页面名,是应为在使用Python脚本去打开应用时,需要传入 appPackage appActivity 这两个参数,这个后面详细讲解

     desired_caps = {
            "settings[waitForIdleTimeout]": 0,  # 等待应用闲置时间
            'platformName': 'Android',  # 被测手机是安卓
            'platformVersion': '9',  # 手机安卓版本
            'deviceName': 'Mi9',  # 设备名,安卓手机可以随意填写
            'appPackage': 'com.yinxiang',  # 启动APP Package名称
            'appActivity': 'com.evernote.ui.HomeActivity',  # 启动Activity名称
            'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
            'resetKeyboard': True,  # 执行完程序恢复原来输入法
            'noReset': True,  # 不要重置App
            "skipDeviceInitialization": True,  # 跳过设备初始化
            'newCommandTimeout': 6000,  # 在假定客户端退出并结束会话之前,Appium将等待来自客户端的新命令(以秒为单位)
            'automationName': 'UiAutomator2'  # 使用哪个自动化引擎
            # 'app': r'd:\apk\bili.apk',
        }

cmp=com.yinxiang/com.evernote.ui.HomeActivity
真正对我们有用的信息就只有这一条,/ 前面的为appPackage,后面为appActivity;所以此时 appPackagecom.yinxiangappActivitycom.evernote.ui.HomeActivity

模拟器:

# 模拟器获取包名:adb logcat | findstr -i displayed 

获取包名和页面名与上面一致。

3.安装应用

adb install "apk在电脑设备上的地址"

4.卸载应用

adb uninstall "apk包名"

5.将日志保存到电脑上

adb logcat > 电脑路径

在这里插入图片描述

# 保存单个apk日志
adb logcat | find "包名" > 电脑路径

6.重启/杀死adb进程

 # 杀掉adb进程
 adb kill-server

# 重启adb服务
 adb start-server

7. monkey命令

# monkey命令

adb shell monkey –p 包名 100

# Adb shell 这个是进入android的shell环境  
# Monkey  这个是调用shell里面的monkey工具  (monkey是每个手机出场自带的,
我们输入指令是去唤醒它)
# -p 包名
# 100是点击的次数

Monkey命令的参数大致分为三大类:
(1)基本配置参数 –v -s --throttle -p;
(2)发送的事件类型,总共11种事件类型,包括点击,触摸,缩放等
(3)调试选项

8.监控app服务

adb shell dumpsys meminfo 包名

# 监控app的内存变化

C:\Users\adb shell dumpsys meminfo com.yinxiang
Applications Memory Usage (in Kilobytes):
Uptime: 266366813 Realtime: 544986929

** MEMINFO in pid 30820 [com.yinxiang] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    97695    97264        0        0   137856   122351    15504
  Dalvik Heap        0        0        0        0    13162     6581     6581
        Stack       48       48        0        0
       Cursor       44       44        0        0
       Ashmem      212        0      212        0
      Gfx dev    50968    50968        0        0
    Other dev      276      256        0        0
     .so mmap    32253     2156    25856        0
    .apk mmap    10574      124     2164        0
    .ttf mmap     1710        0     1028        0
    .dex mmap    23514       36    13476        0
    .oat mmap     6009        0      304        0
    .art mmap     3624     2568       36        0
   Other mmap     1001        4      540        0
   EGL mtrack    30216    30216        0        0
    GL mtrack     9080     9080        0        0
      Unknown    26828    26724        0        0
        TOTAL   294052   219488    43616        0   151018   128932    22085

 App Summary
                       Pss(KB)
                        ------
           Java Heap:     2604
         Native Heap:    97264
                Code:    45144
               Stack:       48
            Graphics:    90264
       Private Other:    27780
              System:    30948

               TOTAL:   294052       TOTAL SWAP PSS:        0

 Objects
               Views:      361         ViewRootImpl:        1
         AppContexts:        9           Activities:        1
              Assets:       12        AssetManagers:        0
       Local Binders:       87        Proxy Binders:       59
       Parcel memory:       45         Parcel count:      173
    Death Recipients:        5      OpenSSL Sockets:        9
            WebViews:        2

 SQL
         MEMORY_USED:     1865
  PAGECACHE_OVERFLOW:      515          MALLOC_SIZE:      117

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       20             54         6/25/7  /data/user/0/com.yinxiang/databases/tpush_tencent_crash.db
         4       40            108       18/38/20  /data/user/0/com.yinxiang/databases/tes_db
         4       24             59        28/37/5  /data/user/0/com.yinxiang/databases/com.microsoft.appcenter.persistence
         4       16            109       77/24/10  /data/user/0/com.yinxiang/databases/evernote_jobs.db
         4       24             37         5/24/5  /data/user/0/com.yinxiang/databases/tbsbeacon_db_com.yinxiang
         4       24             75        15/19/6  /data/user/0/com.yinxiang/databases/tbsbeacon_db_com.yinxiang (2)
         4      780            109     525/178/25  /data/user/0/com.yinxiang/files/user-30093885/.external-1594437718255-Evernote.db
         4       28            108     349/100/14  /data/user/0/com.yinxiang/databases/google_analytics_v4.db

adb shell dumpsys cpuinfo | find ”包名“

C:\Users\zyd>adb  shell dumpsys cpuinfo | find  "com.yinxiang"
  0.1% 30820/com.yinxiang: 0% user + 0.1% kernel / faults: 49 minor 1 major

监控app的耗电量
adb shell dumpsys battery

C:\Users\>adb shell dumpsys battery
Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  Max charging current: 500000
  Max charging voltage: 5000000
  Charge counter: 664000
  status: 2
  health: 2
  present: true
  level: 33
  scale: 100
  voltage: 3890
  temperature: 289
  technology: Li-poly

9.文件传输

# 电脑发文件到手机
adb push <电脑路径> <手机路径>

# 手机发文件到电脑
adb pull  <手机路径> <电脑路径>
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值