adb的作用常见的adb指令
1.查看当前连接的设备2.获取应用的包名和页面名3.安装应用4.卸载应用5.将日志保存到电脑上6.重启/杀死adb进程7. monkey命令8.监控app服务9.文件传输
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 devices2.获取应用的包名和页面名
真机:(打开印象笔记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:apkbili.apk',
}
cmp=com.yinxiang/com.evernote.ui.HomeActivity
真正对我们有用的信息就只有这一条,/ 前面的为appPackage,后面为appActivity;所以此时 appPackage为com.yinxiang; appActivity 为 com.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-server7. 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:Usersadb 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:Userszyd>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-poly9.文件传输
# 电脑发文件到手机 adb push <电脑路径> <手机路径> # 手机发文件到电脑 adb pull <手机路径> <电脑路径>



