adb简介

1.adb——>android debug bridge;起到调试桥的作用。顾名思义,adb就是一个debug工具
借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作.
2.adb原理
adb原理图:
adb客户端(电脑)<->adb服务端(电脑)<->adb守护进程(手机) <->执行命令
帮助:adb -help
启动adb服务:adb start-server
关闭adb服务:adb kill-server
获取设备号:adb devices
获取系统版本:adb shell getprop ro.build.version.release
发送文件到手机:adb push 电脑端文件路径 手机端要存储的路径
拉去文件从手机:adb pull手机存储路径 电脑端需要存储路径
查看手机运行日志:adb logcat | grep 包名
手机shell命令:adb shell
获取app包名和启动名(手机必须打开对应的app):
adb shell dumpsys window windows | grep mFocusedApp
adb shel dumpsys activity | grep mFocusedActivity
安装apk到手机:adb install apk文件路径
卸载app从手机:adb uninstall 包名
查看app相关信息:包括action、codepath、version,需要权限等等信息:
adb shell dumpsys package <package_name>
查看app路径:adb shell pm path <package_name>
查看apk的版本信息
adb shell dumpsys package com.ilifesmart.mslict | grep version
获取单个应用的电量信息:adb shell dumpsys batterystats > package_name > xxx.txt

https://www.cnblogs.com/bravesnail/articles/5850335.html

获取app启动时间:
adb shell am start -W 包名/启动名(Error: unknown command ‘-w’)
TotalTime:app自身启动时间
WaitTime:系统启动时间

查看服务进程PID号:ps aux | grep 需要查询到应用名
如查询appium的PID:ps aux | grep appium

3.常用的adb命令详解:

(1).设置adb环境:将android sdk工作目录添加到系统环境变量中;
(2).adb devices 查看当前连接的设备(连接计算机的Android设备或者模拟器)。
(3).adb install apk文件路径
,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。
几个参数:
-r 强制安装
-d(真机,多个设备中只有一个真机时适用)
-e(模拟器,多个设备中只有一个模拟器时适用)
-s(指定设备,后接序列号)
adb –s 44a188f9 install –r test.apk(其中44a188f9即序列号,通过adb devices可获取)
(4).adb uninstall
adb uninstall apk包名
adb uninstall –k apk包名
-k参数为卸载软件时保留配置和缓存文件
(5).adb reboot
重启android设备
(6).adb shell
通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。
如果只想执行一条shell命令,就可以采用:adb shell [shell_command]
在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。
(7).adb shell su
前提手机已经root。获取adb shell的root权限。
使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。
(8).adb shell ps/top
查看当前终端中的进程信息,如pid等。
(9).adb shell am/pm
am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。
如:adb shell am start apk包名/activityName:启动一个activity。
pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。
如:adb shell pm list packages:列出当前设备所有已安装的程序的包名。

(10).exit退出shell。
adb pull 和 adb push
adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。
adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。
这里还涉及到一个权限的问题
(11).adb shell dumpsys
Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态.

名字	功能
account	显示accounts信息
activity	显示所有的activity的信息
cpuinfo	显示cpu信息
window	显示键盘,窗口和它们的关系
wifi	显示wifi信息
batteryinfo $package_name	电量信息及CPU使用时长
package packagename	获取安装包信息
usagestats	每个界面启动的时间
statusbar	显示状态栏相关信息
meminfo	内存信息(meminfo $package_name or $pid),使用程序的包名或者进程id显示内存细腻下
diskstats	磁盘相关信息
battery	电池信息
alarm	显示Alarm信息

(12).adb shell monkey
跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。
当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android app的稳定性
如:
adb device
adb shell pm list packages:findstr tencent
adb -s 44a188f9 shell -p com,tencent.news --throttle 500 --ignore-crashes --ignore-timeouts -s 20 -v -v -v 500>D:\monkeylog.txt

说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。
-p apk包名:只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。

–throttle <毫秒数> 指定用户操作(事件)间的时延。
–ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。
–ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。
第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。
最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。
输出测试结果到D:\monkeylog.txt。

对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:
1)ANR(Application Not Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用>adb pull /data/anr/trace.txt d:\ 将trace.txt文件导出到d盘。
2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。
3)崩溃问题:通过搜索Exception关键词来定位。
4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。

(13).kill用来中止一个进程。
比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill monkey进程PID.
说明:另开启一个cmd,找到monkey的pid号(ps|grep monkey),然后杀掉即可。

(14).利用adb命令监测app相关性能信息
1)获取app包名和类名
adb shell dumpsys activity|grep mFocusedActivity
2)获取启动时间
adb shell am start -W –n packageName/activityName
3)内存使用率
adb shell dumpsys meminfo pakagename
通过android提供的API来测试(ActivityManager.MemoryInfo())
4)CPU占有率
adb shell top
adb shell dumpsys cpuinfo
5)功耗
adb shell dumpsys battery
通过android本身的API来测试(ProwerManager.WakeLock)
6)查看总体的CPU占用
cat /proc/stat
7)查看进程的CPU占用
cat /proc//stat
8)查看总体的RAM
cat /proc/meminfo | head -n 4
9)查看进程的RAM
dumpsys meminfo packagename
dumpsys meminfo PID
10)查看进程的当前RAM
procrank
11)开机后的总流量(字节数)
cat proc/self/net/dev
12)上传流量/上行流量
cat /proc/uid_stat/2000/tcp_snd
13)下载流量/下行流量
cat /proc/uid_stat/2000/tcp_rcv

安装selenium:
pip是一个安装和管理python包的工具.
sudo python setup.py install:安装pip的命令;
sudo easy_install pip:easy_install是老版本的python支持的安装和管理python包的工具,pip是easy_install的替代版。那就理解成用easy_install 安装了pip包。
sudo pip install -U selenium:安装selenium

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值