adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过 adb 我们可以在IDE中通过DDMS来调试Android程序,其实也就是debug工具。
连接多个设备:
1、查看所有连接设备。
adb devices
List of devices attached
127.0.0.1:5555 device
SH0A6PL00243 device
2、在指定设备执行指令。
adb -s
例如:
adb -s shell
adb -s 127.0.0.1:5555 shell getprop ro.product.model
启动指定的app
1、列出packagename
adb shell pm list packages -f
2、获取安装app的信息,查看包名/activityname
adb shell dumpsys package>package.txt
3、启动指定的app packagename/activityname
adb shell am start -n com.android.settings/.Settings
4、如果仅仅知道packagename的话,可以通过如下方式启动。如:com.android.settings
adb shell monkey -p com.android.settings -c android.intent.category.LAUNCHER 1
APK包名获取或解析
1、常用的ADB命令
adb shell pm list package (可以查看已安装的所有包名)
在adb shell 中输入命令:logcat | grep ActivityManager然后手动启动apk,这时就会在log中看到“ActivityManager: Displayed”,这句log之后就会显示你打开的apk的包名。
#输出日志到logcat.log
adb logcat > logcat.log
#输出日志到手机
adb logcat -f /sdcard/log.txt
2、有代码的话,代码中查看
在AndroidManifest.xml中找到package属性即是
3、使用aapt工具
在Android sdk中的\android-sdk-windows\build-tools\26.0.2文件下有个aapt工具,进入目录,输入命令 aapt d badging apk路径,
即可解析得到Apk信息(包名,版本名,版本号,安装位置,sdksdkVersion,targitSdkVersion,所需权限等)。
adb 常用命令:
#----------------设备查询操作-----------------#
adb version
#查看adb版本
adb devices
#查看所有设备
adb install
#安装指定apk(路径可不用手写,直接把apk文件拖拽过来)
adb uninstall
#卸载指定包
adb connect [[:]](默认端口号是:5555)
#链接设备
disconnect [[:]]
# 断开设备
adb shell
#执行远程的shell命令
exit
#退出远程命令
adb push
#拷贝文件到设备上
adb pull []
#从设备上拷贝文件
adb bugreport
#查看设备所有信息(包括 bug 报告)
adb help
#查看命令帮助
#----------------设备控制操作-----------------#
adb shell input text 1234
#输入文本1234
adb shell input keyevent 4
#键盘事件,4 为返回
adb shell input tap 100 300
#单击触屏事件 ,模拟点击x=100 y = 300 位置
adb shell input swipe 100 300 500 300
#触屏滑动事件,模拟滑动,从x =100 y = 300 滑动到 x = 500 y = 300
adb shell input press
#模拟按下轨迹球
adb shell input roll 100 300
#模拟轨迹球滑动 x 方向100 y方向300
查看设备型号:adb shell getprop ro.product.model
查看电池信息:adb shell dumpsys battery
查看设备ID:adb shell settings get secure android_id
查看设备IMEI:adb shell dumpsys iphonesubinfo
查看Android版本:adb shell getprop ro.build.version.release
查看手机网络信息:adb shell ifconfig
查看设备日志:adb logcat
重启手机设备:adb reboot
安装一个apk:adb install /path/demo.apk
卸载一个apk:adb uninstall
查看系统运行进程:adb shell ps
查看系统磁盘情况:adb shell ls /path/
手机文件下载到电脑:adb pull /sdcard/aa.png ./
电脑文件上传到手机:adb push aa.png /data/local/
手机设备录像:adb shell screenrecord /sdcard/ab.mp4
手机屏幕分辨率:adb shell wm size
手机屏幕密度:adb shell wm density
手机屏幕点击:adb shell input tap xvalue yvalue
手机屏幕滑动:adb shell input swipe 1000 1500 200 200
手机屏幕带时间滑动:adb shell input swipe 1000 1500 0 0 1000
手机文本输入:adb shell input text xxxxx
手机键盘事件:adb shell input keyevent xx
手机设备截屏(存储在手机相册里):adb shell screencap -p /sdcard/screenshot.png
屏幕录制,执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard/ 下:
adb shell screenrecord /sdcard/dev.mp4
从手机存储导出照片: adb pull /sdcard/screenshot.png /Users/Downloads/screenshot.png
高版本安卓支持截屏保存本地:adb exec-out screencap -p > /Users/Downloads/screenshot.png
列出设备上的输入法:adb shell ime list -s
//截图
adb shell screencap -p /sdcard/01.png
//截图发送到本地
adb pull /sdcard/01.png /Users/guohaoyuan/Downloads/test01.jpg
//查看连接设备
adb devices
下面说一个控制抖音的学习例子:
#!/usr/bin/env python2
# -*-coding:utf-8-*-
# 点击屏幕抖音短视频图标启动抖音,根据分享外链进入小视频,点赞,截图,回到桌面。
import sys
import os
import re
import time
from com.dtmilano.android.viewclient import ViewClient
def test():
# print(sys.version)
# os.system('source /Users/bianruifeng/.bash_profile')
# os.system('echo $ANDROID_HOME')
# 连接手机
device, serialno = ViewClient.connectToDeviceOrExit()
vc = ViewClient(device, serialno)
# 按HOME键
# device.press('KEYCODE_HOME')
# time.sleep(1)
# vc.dump()
weixin_button = vc.findViewWithTextOrRaise(u'抖音短视频')
# 点击图标
weixin_button.touch()
vc.dump()
time.sleep(1)
#点击的位置是坐标点儿,可以根据手机屏幕截图,通过作图工具测量,坐标原点(0,0)左上角。
# 通过分享链接复制,进入抖音前往分享内容
os.system('adb shell input tap 550 1375')
time.sleep(0.5)
# 点赞
os.system('adb shell input tap 990 775')
time.sleep(1.2)
#截屏 在手机的保存地址 /sdcard/aa.png
os.system('adb shell screencap -p /sdcard/aa.png')
device.press('KEYCODE_HOME')
if __name__ == '__main__':
test()
当然还有很多工具,例如:
1). 工具