Android测试命令

由于公司开发的产品有一体机和机顶盒,所以我必须学会使用一些常用的adb命令,下面是连接调试和抓取日志的命令,工作中有帮助到我,我把这些资料整合一下

连接机顶盒

开发手机 app 应用,手机开启调试模式,用数据线连上手机,就能对手机进行 debug 开发。然而,机顶盒并没有手机的 micro usb 接口,并不能连数据线进行直接调试(据说,用 USB to USB 数据线连接机顶盒,也无法识别机顶盒),这时需要使用 adb 命令连接和调试机顶盒。打开 Android Studio 的 Terminal 或者 cmd( windows )、终端( mac ),输入 adb 出现如下结果,证明 adb命令可以正常使用,否则参照 adb 错误“ 'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件 ( windows ) 或 在 MAC OS X 安装 ADB (Android 调试桥)
( mac )开启 adb 命令。

 

adb 命令结果


adb 命令可用后,通过以下命令连接机顶盒:
adb connect [ip]:[端口(可以不填,某些机顶盒需要填端口号)]
例如:adb connect 192.168.192.196:5114

 

确保电脑和机顶盒在同一个局域网(如果可以通过 ping [ip] ping 通的话,表示在同一局域网 ),推荐机顶盒和电脑都插网线,这样速度快些。
机顶盒的端口有:5114、5555(默认)等。

如果没有提示任何错误信息,表示连接机顶盒成功,接着输入
adb devices 查看连接的机顶盒的状态信息。
如果提示 xxxxx refused connect 证明还未获取机顶盒的调试权限,需要和机顶盒厂家获取调试工具、开启调试功能的方法、调试端口等(许多机顶盒的厂商都留有调试后门),也可以 root 机顶盒的系统。

某些机顶盒将遥控器上的 1237894560 按顺序按一边,可以开启调试模式。

常用adb命令

adb connect [ip]:[port] 连接机顶盒(默认端口为5555)
adb devices 查看所有连接设备 名称、ip、端口已经状态( device 或 offline )
adb install [apk 安装包所在路径(如:d:\a.apk)] 将对应路径的 apk 安装包安装到机顶盒
adb install -r [apk 安装包所在路径(如:d:\a.apk)] 将对应路径的apk 安装包强制(覆盖)安装到机顶盒
adb -s [设备名称或设备IP:端口] install [apk 安装包所在路径(如:d:/a.apk)] 当 adb 连接多个设备时,将 apk 安装到指定设备中

通过 -s [设备名称或设备 IP:端口] (例如:adb -s 192.168.192.196:5555 d:\apk 指定 IP 为 192.168.192.196 端口为 5555 的设备)。其中 -s 192.168.192.196:5555 要紧跟在 adb 后面,**其他的 adb 命令,也可以通过这种形式对指定的设备进行操作。 **
当 adb 指令使用时,出现 more than one device and emulator 错误提示时,需要用该方式指定需操作的设备。

adb uninstall [应用包名,例如:com.example.tmall] 卸载应用(通过包名指定)
adb shell进入系统目录(通过 exit 退出)
adb shell am start -n [包名]/[包名+类名] 启动指定类名的 Activity

adb shell am 的使用可以参考 Andoird开发调试时不修改Manifest直接启动任意Activity的方法
除了 -n 之外,还有 [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] 等,-a 参数代表了 Activity 的 action ,-d 参数代表 Activity 的 data。

adb shell input text **** 在已经获取焦点的EditText中输入内容
adb shell ps 查看当前终端中的进程信息
adb shell dumpsys activity activites查看当前终端所以前后台Acitivity的堆栈
adb shell logcat > d:\log.txt 打印日志到本地文件(会打印缓存的日志,可能会有昨天等之前日志。windows下,按ctrl+c停止日志打印)
adb logcat *:D > d:\log.txt 过滤出D级别以上的日志,打印日志到本地文件( 在 macOS 下需要给 *:W 这样以 * 作为 tag 的参数加双引号,如 adb logcat "*:W"

抓手机日志命令,看CRASH

adb logcat -v time -d > d:/crash.txt             -d 是运行完自动停止的作用

手机APP ANR有问题,看日志

adb pull data/anr/traces.txt

 

Android分析调试

1.logcat命令
这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time

1

adb logcat -v time

2.bugreport命令
这个命令也非常简单,但是在实际应用中非常有用,会有从开机之后详细的dumpsys,dumpstate和logcat信息,是一份完整的日志记录。对分析用户行为,异常信息,系统状态有很大的参考作用。一般我们会把bugreport导出到电脑上分析。

1

adb bugreport > xxx.log

我再次强调,bugreport里面包含丰富的系统和用户信息,它是其他很多命令输出的结果的记录,非常有用。

3.dumpsys命令
这个查看系统信息,用的还是比较多的.

1

2

3

4

5

6

7

dumpsys [options]

               meminfo 显示内存信息

               cpuinfo 显示CPU信息

               account 显示accounts信息

               activity 显示所有的activities的信息

               window 显示键盘,窗口和它们的关系

               wifi 显示wifi信息

例如查看某个程序内存信息:

1

2

#查看应用com.tianxia.test的内存使用情况

adb shell dumpsys meminfo com.tianxia.test

效果图如下:

 

里面的信息很有价值,尤其对于分析内存泄露,内存溢出都有极大的作用。

4.top命令
这个查看cpu信息太方便了。

1

top -m 5 -t

我们看看效果图,其中按cpu大小列出5个进程列表。

com.tianxia.test的cpu过高,会导致手机发烫。同时利用这个信息,可以监控应用cpu的使用,以调整优化代码。

分析手机发烫
下面我们来实践一个例子,手机发烫太厉害,怎么找出问题?
首先我们写一个程序com.tianxia.test,死循环,核心代码如下:

1

2

3

4

5

6

7

8

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    while(true) {

        System.currentTimeMillis();

    }

}

这个应用打开后会一直获取系统时间,因为在主线程,肯定导致应用ANR,也会一直浪费系统cpu,手机发热,我们运行它。
假设我们不知道上述代码,我们来找到这个问题:
(1).找到发烫的应用。
使用top命令:

1

top -m 5 -t

一看是com.tianxia.test占用85%的cpu,原来是这家伙在捣鬼。进程ID是644,这个后面我们有用。

 

其他可参考:

awesome-adb

放在github上的,介绍的很全

Android ADB 命令大全(通过 ADB 命令查看 wifi 密码、MAC 地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装 APK 等)




链接: https://www.jianshu.com/p/225fef8c6e67

http://www.cnblogs.com/qianxudetianxia/archive/2012/05/14/2497073.html

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值