首先应该知道一下adb命令和adb shell命令的区别:
ADB的全称为Android Debug Bridge,字面意思就是安卓调试桥,ADB是一个“客户端-服务器端“的关联程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备。简单点说,它是Android系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作。
它的主要功能有:
1) 运行设备的shell(命令行)
2)管理模拟器或设备的端口映射
3)计算机和设备之间上传/下载文件
4)将本地apk软件安装至模拟器或android设备
简单说,adb shell 命令是调用Android系统的命令,放在安卓设备的System/bin目录下,是手机端的命令。
具体来看,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。操作系统运行的本身其实并不需要人来控制,但人需要告诉操作系统做什么,这个交互程序,就被称为shell。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。
Android 基于 Linux,那么 Linux shell 命令在 Android 里大都也是适用的。所有以“adb shell”开头的命令,都可以先执行adb shell命令进入目标设备的Linux Shell环境,然后在目标设备的Linux Shell中再执行“adb shell”之后的命令。或者直接执行adb shell 先进入shell环境,然后再执行shell命令,就不用加adbshell了 比如:
退出shell模式:exit 或者 ctrl + D
adb 常用命令:
1.可以在命令前通过-s 和设备号指定设备adb -s STSDU19C25005533 shell wm densitydevices
2.如果只有一个设备和模拟器连接电脑,可以通过:adb -e 来指明是操作模拟器(Emulator); adb -d 来指明是操作设备(Device)
1.打印当前运行应用的包名:
adb shell dumpsys window windows | findstr name=
adb shell dumpsys window w | findstr name=
adb shell dumpsys window | findstr mCurrentFocus
2.adb shell pm list package | findstr zhihu
3.adb shell pm list package -3 -f -i zhihu
-3(-s系统应用)表示第三方app;-f 安装来源 -i 模糊匹配
注意,window用 findstr;linux或者进入shell模式用grep
1.adb logcat 命令窗口直接查看所有日志,没有太大意义
2.adb logcat > D:log2.txt 将日志保存到本地
3.adb logcat -c 清除日志,一般每次保存查看前都要清理一下
4.adb logcat | findstr com.huawei.hms.ads. 查询包含findstr 后的内容
5.adb logcat | findstr com.huawei.hms.ads. > D:log2.txt 将特定日志保存到本地
adb logcat -b crash >error.txt 查看直接闪退日志
adb bugreport > log.txt 程序意外终止
adb pull data/anr/traces.txt > anr_log.txt app出现anr时会在data/anr目录下生成traces.txt文件
注意:打印日志时候,常报 【写入错误】,这时候需要设置编码语言,设置为UTF-8就好了hcp显示活动页的编码,ANSI的编码是936,UTF-8是65001.执行 CHCP 65001就设置为UTF-8了。
官网地址:安卓开发日志部分
6.fc D:\off.txt D:\on.txt 比较两个文件的不同
7.adb logcat *:E ->d:\log.txt 查看E及以上日志
默认级别为V,输出人日志最低,日志级别最低
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal 致命
S —— Silent(最高,啥也不输出)
adb install
adb shell pm install
adb shell pm set-install-location 0/1/2 设置应用安装位置 0:默认 1:内存 2:sdcard
adb shell pm get-install-location 获取安装位置,如图
adb uninstall <包名> 例如 adb uninstall com.ziroom.ziroomcustomer 卸载软件
adb uninstall -k <包名> 卸载软件,但保留数据
adb shell pm uninstall <包名> 卸载软件,但保留数据
adb shell pm clear <包名> 清除应用数据,执行后和新安装的一样
adb shell dumpsys package com.zhihu.android
adb shell dumpsys activity | findstr mActivityComponent 可以查到对应启动的activity
adb shell am start -n com.zhihu.android/.app.ui.activity.LauncherActivity
adb shell am start -s com.zhihu.android/.app.ui.activity.LauncherActivity
adb shell am start -w com.zhihu.android/.app.ui.activity.LauncherActivity
adb shell am start -a android.intent.action.VIEW -d http://baidu.com
adb shell am start -a android.intent.action.CALL -d tel:10086
启动后手机的操作都会记录
adb shell am monitor
adb shell am force-stop 包名
adb shell input text 123456
adb shell input keyevent KEYCODE_HOME
adb shell input tap 500 500
adb shell input swipe 900 500 100 500
adb shell input draganddrop 500 624.5 200 624.5 1000 (拖动)
在小的距离内,较长的持续时间滑动就是长按
adb shell input swipe 500 500 501 501 2000
adb shell screencap -p /sdcard
adb shell setprop service.adb.tcp.port 5555
adb shell getprop service.adb.tcp.port
adb push D:\log5.txt sdcard/360 将电脑d盘文件推送到手机存储/360文件夹下 注意斜杠方向
adb pull sdcard/360/sdk D:\Download 将手机文件推送到电脑
adb start-server 启动服务
adb kill-server 关闭服务
更多dumpsys知识,参考dumpsys命令用法
adb shell wm size //查看屏幕分辨率
adb shell wm density //查看屏幕密度
adb shell wm density 320 //修改屏幕密度=320ppi
adb shell wm density reset //恢复原屏幕密度
adb shell dumpsys gfxinfo com.pplive.androidphone 查看流畅度相关
@echo off
set /p a=请输入:
adb shell screencap -p /sdcard/%a%.png
adb pull /sdcard/%a%.png
echo. & pause
如果运行时发现 “ 请输入” 为乱码,是因为需要将他设置为ANSI编码格式。
常用命令
1、打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
2、打开QQ
adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
3、打开微信
adb shell am start com.tencent.mm/com.tencent.mm.ui.LauncherUI
4、打开支付宝
adb shell am start com.eg.android.AlipayGphone/.AlipayLogin
5、杀死支付宝
adb shell am force-stop com.eg.android.AlipayGphone
6、关闭QQ
adb shell am force-stop com.tencent.mobileqq
7、点击事件
adb shell input tap 500 500
8、home键
adb shell input keyevent 3
9、返回键
adb shell input keyevent 4
10、截图(保存到sdcard)
adb shell /system/bin/screencap -p /sdcard/screenshot.png
11、录屏
adb shell screenrecord /sdcard/test.mp4
adb pull /sdcard/test.mp4 /Users/dhht/Desktop/test.mp4
12、亮屏
adb shell input keyevent 26
13、上下滑动
adb shell input swipe 700 2000 700 1000
14、左右滑动
adb shell input swipe 100 1000 1000 1000
15、拖动
adb shell input draganddrop 500 624.5 200 624.5 1000
16、等待
adb sleep 5 (等待多少秒)
在shell模式下
1.top 查看全部运行的
2.top | grep com.pplive.androidphone 特定的
grep keyword | head -n 10 前10行
grep keyword | tail -n 10 后10行
grep keyword | sed -n "7,13p" 7-13行
获取手机界面xml:adb shell /system/bin/uiautomator dump --compressed /data/local/tmp/uidump.xml
上传xml到桌面:adb pull /data/local/tmp/uidump.xml C:/Users/13633/Desktop
————————————————
文件内容相同 值为0 不相同值为1 有一个文件不存在值为2 所以加上%errorlevel%的判断即可 @echo off :abc rem 你自己添加 fc file1 file2 if %errorlevel%==0 pause else (goto abc)
adb shell am start
例子: adb shell am start com.android.mms/com.android.mms.MainActivity
触发内存级别回调:
adb shell am send-trim-memory [--user
[HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE]
例子: adb shell am send-trim-memory com.android.mms RUNNING_LOW