最近学习adb的时候,整理了一些adb的使用场景,如:adb与设备交互,adb的安装、卸载,adb命令启动,通过命令清除缓存,文件传输和日志操作。
adb的两大作用:在app测试的时候可以提供监控日志方便定位问题,可以进行自动化很多,很多软件可以进行自动化测试都是对adb进行了封装和调用。
我们在测试app的时候,可以选择真机,也可以选择在模拟器上进行测试,模拟器给我们提供了更大的可选择范围,常用的模拟器如下:
在这里我们以MuMu模拟器为例来进行连接,在windows上和mac电脑上会有所不同。
windows:
Mac:
手机通过usb线连接到电脑上,然后手机开启调试模式,在电脑端安装手机驱动。
可以通过以下两个命令来查看设备的连接状态。
命令一:
命令二:
普通安装,命令:
比如安装微信:
覆盖安装,命令:,覆盖安装会将之前的进行覆盖。
卸载应用命令:
卸载应用(不删除配置文件,保存数据缓存信息),命令:
方式一:
卸载app需要知道app的包名,可以通过如下命令来获得。
执行ls命令的时候系统可能会提示:opendir failed, Permission denied。
解决方法:在模拟机上开启root权限,然后执行su命令后再进入data/data目录然后执行ls命令。
方式二:
如果安装的是第三方应用可以通过这个命令进行查看。
命令:
如打开的微信页面,然后执行命令可以获取当前页面的名称
动态启动页面可能有多个activity但是实际上只有一个是可用的,直接从当前已打开页面获取的不一定保真,可以通过下面命令获取到所有的,然后进行尝试。
命令:
例如进入微信注册页面。
命令:
比如自动打开微信注册页面,使用上面获取到的avticity。
启动命令报错:
C:Users29442>adb shell am start -n "com.tencent.mm/com.tencent.mm.plugin.account.ui.RegByMobileRegAIOUI"
Starting: Intent { cmp=com.tencent.mm/.plugin.account.ui.RegByMobileRegAIOUI }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.tencent.mm/.plugin.account.ui.RegByMobileRegAIOUI } from null (pid=3579, uid=2000) not exported from uid 10035
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2726)
at com.android.commands.am.Am.runStart(Am.java:875)
at com.android.commands.am.Am.onRun(Am.java:359)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:100)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:259)
解决方法:
命令:
查看日志常用的参数:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/11058.html