熟练adb命令

熟练adb命令,第1张

//常用的adb命令

一般我们无论进入多少activity,按back键返回桌面后,Activities一定是为0的,如果不为0,就说明发生了内存泄漏,这时候再配合LeakCanary去检测就很容易事半功倍。

执行adb shell 需要返回结果

其他

清屏 : cls

切换到其他盘符(D盘): cd /d d:/

切换到根目录: cd /

切换到上级目录: cd cd /

切换到上两级目录: cd / cd //

参考:

adb常用命令以及模拟器使用

Android 调试桥 (adb)

如何使用android中的adb shell知道服务是否正在运行

在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。

一概要

1什么是adb?

adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。

2adb工作原理

不是很理解?那就来看看它的工作原理吧。

上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。

(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb

Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb

Client发来的命令。

(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到

了adb

daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。

3adb的作用

借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

二常用命令

这个部分主要介绍adb的使用方法和一些常用的命令。

设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。

1 adb devices

查看当前连接的设备(连接计算机的Android设备或者模拟器)。

2adb install

adb install <apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。

几个参数:

-r 强制安装

-d(真机,多个设备中只有一个真机时适用)

-e(模拟器,多个设备中只有一个模拟器时适用)

-s(指定设备,后接序列号)

adb –s 44a188f9 install –r testapk(其中44a188f9即序列号,通过adb devices可获取)

3adb uninstall

adb uninstall <apk包名>

adb uninstall –k <apk包名>

-k参数为卸载软件时保留配置和缓存文件

4adb reboot

重启android设备

5adb shell

通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。

如果只想执行一条shell命令,就可以采用:adb shell [shell_command]

在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。

6adb shell su

前提手机已经root。获取adb shell的root权限。

使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。

7adb shell ps/top

查看当前终端中的进程信息,如pid等。

8adb 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

列出当前设备所有已安装的程序的包名。

说明:

管道符“|”:可以把标准的输入流与标准的输出流进行合并,或者把某个命令的标准输出流作为另一个命令的标准输入流。

exit退出shell。

由于grep为linux命令,运行单条adb shell 时并没有进入linux

shell环境,并不能用grep等其他linux命令,只能用window cmd的命令。在这里可以用findstr来代替grep,使用方法为

findstr/grep [keyword]

更详细的内容可查看 参考文献3 和 参考文献4 。

对于常用的linux命令和常用的windows 控制台命令,以后再作总结。

9adb pull 和 adb push

adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。

adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。

这里还涉及到一个权限的问题,在后续的博文中再作介绍。

10adb shell dumpsys

Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态。

参考下表:

11adb shell monkey

跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android

app的稳定性。

如下为测试腾讯新闻apk的一个简单实例:

说明:第一个-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:\monkeylogtxt

更详细的参数可查看 参考文献5 。

部分测试结果如下:

对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:

1)ANR(Application Not

Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的tracetxt文件导出,用来定位分析问题。使用>adb

pull /data/anr/tracetxt d:\ 将tracetxt文件导出到d盘。

2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。

3)崩溃问题:通过搜索Exception关键词来定位。

4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。

 12kill

kill用来中止一个进程。

比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill <monkey进程PID>

说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。

参考文献:

1Android调试桥: http://wwwiteyecom/topic/260042

2Android性能分析工具dumpsys的使用: http://wwwopen-opencom/lib/view/open1405061994872html

3adb shell 中的am pm命令: http://wwwandroid100org/html/201312/09/4957html

4adb shell 启动应用程序的方法: http://blogchinaunixnet/uid-26997997-id-3350449html

5Monkey压力测试详解: http://blogcsdnnet/huangbiao86/article/details/8490743

当我们输入 adb 或 adb help (用于查看 adb 帮助内容)时会输出如下内容。

列出来的内容比较多,笔者挑选了几个命令在下文做了简单说明。

adb bugreport 使用用于生成 bug 文件的命令。生成的文件可以结合着上述的 adb pull 使用,把生成出来的安卓系统认为是出现了的bug日志文件,导出到电脑端,进行查看。

adb bugreport 目录 可以把安卓系统认为是出现了的bug日志文件,以zip包的方式存放到指定目录下。

如果上述命令遇到了问题,可以使用如下命令

在终端中执行如下操作:

上述命令可以把生成的bugreport文件存放到电脑的当前目录,方便我们进行分析。

上边的 800% CPU 是因为手机是8核的,后边依次次有 user 占用 7% 的CPU,sys 占用了 20% 的 CPU,及753%的空闲 CPU。

进入到shell的环境下后,我们就可以使用Linux的命令去操作手机。

比如

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/814298.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-09
下一篇2023-08-09

随机推荐

  • 去黑头产品哪些效果最好?用牙膏去黑头有效果吗?

    很多妹子最讨厌的草莓鼻,一直在脸上挥之不去,想要找一款好用的去黑头产品,但却总是发现买的产品效果不好,用了之后是可以去黑头,但鼻子上的毛孔却会变大,还会造成鼻子上的粉刺,那么去黑头产品哪些效果最好?用牙膏去黑头有效果吗?1、去黑头产品哪个效

    2024-04-15
    64400
  • 妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?

    妮维雅这个品牌大家都比较熟悉,很多人都会想到它们家的洗面奶,还经常被拿来和其他的护肤品牌做比较,比如说欧莱雅这个品牌,因为欧莱雅的护肤产和妮维雅一样也是有男士和女士的,那妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?1、妮维雅和欧莱雅哪个好妮维

    2024-04-15
    57200
  • 男士防晒喷雾什么牌子好

    妮维雅。妮维雅旗下男士防晒喷雾专门针对户外运动的男性,采用德国先进防晒技术,拥有高倍户外防晒指数,内含天然薄荷醇成分,产品使用起来冰爽不油腻,能够有效防水防汗,防止皮肤晒黑晒伤,值得广大消费者信赖。防晒喷雾前十强排行榜:安热沙、雅漾、曼秀雷

    2024-04-15
    54600
  • 美白爽肤水

    美白爽肤水是一种用于美白的化妆水,它通常含有能够提亮肤色和减少色斑的成分。以下是一些常见的美白爽肤水成分:1 维生素C:维生素C是一种抗氧化剂,可以帮助减少自由基对皮肤的损害,同时促进胶原蛋白的生成,提高皮肤的弹性和光泽度。2 熊果苷:熊果

    2024-04-15
    46800
  • 韩国的后和苏秘哪款好,whoo后和呼吸哪个更好

    韩国品牌的护肤品一直都是广受欢迎的,其中很多个品牌的反馈都比较不错,比较推荐的就是后和苏秘这两个品牌,那么韩国的后和苏秘哪款好whoo后和呼吸哪个更好呢?接下来就介绍下这两个品牌的护肤品,大家都可以了解一下。后和苏秘都是LG集团旗下的知名护

    2024-04-15
    44700
  • 保湿滋润的唇膏有哪些?口碑润唇膏推荐

    嘴唇干燥脱皮是很多人遇到过的问题,嘴巴脱皮影响唇部的美观,平时可以常备一支润唇膏,预防嘴唇干燥脱皮,有很多润唇膏比较滋润,用起来感受也比较好,好用的润唇膏有很多,那么保湿滋润的唇膏有哪些?口碑润唇膏推荐,一起来看看吧!1、好用润唇膏推荐1、

    2024-04-15
    41700
  • 水光焕颜套盒好不好

    水光焕颜套盒好。根据查询相关公开信息显示,这个水光焕颜套盒一般是指保湿补水系列的美容护肤品,它们通常包括洁面、爽肤水、乳液、精华液和面霜等,这类套盒质量是很好的,可以满足日常护肤需求。女人30岁以后,选择使用焕颜套盒还是补水套盒,这是众多女

    2024-04-15
    35800

发表评论

登录后才能评论
保存