adb介绍和命令使用

一、adb 的概念

ADB 全名 Android Debug Bridge,是一个调试工具。

二、adb 使用

        下载安装Android SDK并配置path路径,在终端输入adb出现如下图所示即安装配置成功,具体安装方法可以在本站搜索。

三、adb 的构成和工作原理

adb包含三个部分:

  • client端:运行在开发机器中,即你的开发电脑,用来发送adb命令;
  • Daemon 守护进程:运行在调试设备中,手机或模拟器,用来接收并执行adb命令;
  • Server端:同样运行在开发机器中,用来管理client端和手机端Daemon之间的通信。

四、adb 常用命令

1、获取包名和界面名

  • 包名(package):决定程序的唯一性(不是应用的名字)
  • 界面名(activity):程序每一个界面对应一个界面名

使用方法:先在模拟器或者手机打开要查看的应用程序,输入对应系统的命令 

命令格式:

  • Mac/Linux:
adb shell dumpsys window windows | grep mFocusedApp
  •  Windows:
adb shell dumpsys window windows | findstr mFocusedApp

实例:打开模拟器的设置程序,在终端输入命令获取包名和界面名

输入:adb shell dumpsys window windows | findstr mFocusedApp

输出:mFocusedApp=AppWindowToken{7db1bd6 token=Token{11ec57b ActivityRecord{cc6790a u0 com.android.settings/.Settings t3}}}
  • 包名: com.android.settings(/ 左边)
  • 界面名:.Settings(/ 右边)

2、文件传输

发送文件到手机:

adb push 电脑的⽂件路径 ⼿机的⽂件夹路径

从手机中拉取文件:

adb pull ⼿机的⽂件路径 电脑的⽂件夹路径

3、获取app启动时间

命令格式:

adb shell am start -W 包名/启动名

实例:使用该命令打开模拟器设置主界面

输入:adb shell am start -W com.android.settings/.Settings

输出:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.settings/.Settings }
Status: ok
Activity: com.android.settings/.Settings
ThisTime: 254
TotalTime: 254
WaitTime: 258
Complete

解释:

  • ThisTime:该界面(activity)启动耗时(毫秒)
  • TotalTime:应用自身启动耗时 = ThisTime + 应用 application 等资源启动时间(毫秒)
  • WaitTime:系统启动应用耗时 = TotalTime + 系统资源启动时间(毫秒)

4、获取手机日志

命令格式:

adb logcat

使用步骤:

  • 打开需要测试的应用程序
  • 找到触发bug的位置
  • 使用日志查看命令
  • 触发bug
  • 获取日志信息(日志中大写E开头的信息是报错信息)

5、获取app占用手机CPU情况

命令格式:

# 获取瞬时数据
adb shell top | findstr 包名

# 获取一段时间内的数据
adb shell dumpsys cpuinfo findstr 包名

实例:使用命令打开模拟器设置主界面

6、获取app占用手机内存情况

命令格式:

# 获取所有应用的内存占用情况
adb shell dumpsys meminfo

# 获取指定APP的内存占用详细情况
adb shell dumpsys meminfo 包名

实例:使用命令打开模拟器设置主界面

7、获取app使用流量情况

命令格式:

# 获取当前APP的进程号PID
adb shell ps | findstr 包名

# 根据进程号获取流量信息
adb shell cat /proc/{pid}/net/dev

实例:使用命令打开模拟器设置主界面

8、获取手机电量数据

命令格式:

# 查看手机的电池信息
adb shell dumpsys battery

# 关闭USB充电模式(同理可以设置其他信息)
adb shell dumpsys battery set usb 0    # 0为关闭 1为开启

# 查看手机的电池详细信息
adb shell dumpsys batterystats

# 重置电池详情信息
adb shell dumpsys batterystats --reset

实例:

9、其他命令

命令说明
adb install 路径/xx.apk安装app到手机(安装包格式注意)
adb uninstall 包名卸载手机上的app,需要指定包名
adb devices获取当前电脑已经连接设备和对应的设备号
adb shell进入到安卓手机内部的linux系统命令行中
adb start-server启动adb服务端,出bug时使用可以重启服务器,先关闭再启动
adb kill-server停止adb服务器,出bug时使用可以重启服务器,先关闭再启动
adb --help查看adb帮助,命令记不住时可以使用

拓展:

adb命令在Python代码中调用

import os

os.popen(command)

注意:

  • command为adb命令
  • 返回的结果是一个对象
  • 打印命令执行结果必须使用循环输出
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本帖最后由 591691826 于 2013-4-10 13:32 编辑 0.我只说些常用的以及目前用的到的 1.下载附件。解压后拷到c:windows\system32里面。 2.打开运行(快捷键windows键+R)输入cmd 回车。 3.输入adb devices 可以获取当前连接的设备。 4.输入adb shell 回车 接着输入su。这时候$变成#。说明你已经取得权限了,可以进行各项调试命令了。 5.如果要从电脑上传送文件到手机的话,使用adb push命令。格式:adb push 本地路径 手机路径 ;举例:把c盘根目录下的456.txt传送到system。则:adb push c:\456.txt /system/ 传送文件到system文件夹的话。需要先挂载system分区。再改读写权限。 如下:mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system回车 (这是挂载分区) chmod 777 /system回车 (修改权限为可读) 这两步做完后退出shell指令端(exit回车 exit回车)就可以push文件到system里面去了。 如果push文件到sdcard卡的话。一般来说直接push就行。如果出现premission denied 的话,需要修改sdcard权限为可读写。即chmod 777 sdcard。 6。adb pull 是从手机传送文件到电脑上。格式: adb pull 手机路径 电脑路径 。会push的话pull很简单。大同小异嘛。 7.关于这个地方的权限,具体说下: 在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读、写、运行设定权限。例如我用ls -l命令列文件表时,得到如下输出: -rw-r--r-- 1 bu users 2254 2006-05-20 13:47 tt.htm 从第二个字符起rw-是说用户bu有读、写权,没有运行权,接着的r--表示用户组users只有读权限,没有运行权,最后的r--指其他人(others)只有读权限,没有写权和运行权。这是系统默认设置,我可以改写tt.htm,同组的人和其他人只有权读,没人有权运行,因为只是一个html文件,不必运行。这在Novell的directory services之前很先进。 读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,rw-r--r--用数字表示成644。 反过来说777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。 再多说一句。我用chmod o-r tt.htm命令改权限,o-r是others的权限中减掉读。结果是 -rw-r----- 1 bu users 2254 2006-05-20 13:47 tt.htm 如果用命令chmod 777 tt.htm,结果是 -rwxrwxrwx 1 bu users 2254 2006-05-20 13:47 tt.htm 任何人都有读、写、运行三项权限。8。以后比如替换系统文件神马的不能开机。可以通过救援模式下adb命令替换系统文件并该权限即可。 .想写的就是这么多了。仅把我的心得告诉大家。内容编辑可能有些混乱。不好意思。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值