一、常用指令
adb常用命令大全
参考:adb 常用命令大全(3)- 查看手机设备信息 - 小菠萝测试笔记 - 博客园
adb logcat -s XXX 只输出与XXX有关的信息
adb nodaemon server 查看端口是否被占
adb start-server 开启ADB
adb kill-server 关闭ADB
adb logcat -v time -s XXX 显示指定字符和时间
adb logcat -c 清空日志缓存
adb logcat //显示全部日志
adb logcat > c:\test.log //将日志保存到文件test.log
根据tag标记和级别过滤日志输出:
adb logcat *:W //显示所有优先级大于等于“warning”的日志
adb devices 查询电脑已连接的设备
adb shell pm list packages 列出目标设备中已安装的应用程序包
adb shell pm list packages -f 列出目标设备中已安装的应用程序包的具体位置
adb uninstall xxx 卸载或删除的应用包xxx
adb push <local> <remote> local是电脑本地的文件a的路径,remote是手机的文件夹b的路径,该命令会将文件a放到文件夹b中
adb pull <手机目录> <电脑目录> 将手机本地文件放在电脑目录下(注:手机目录和电脑目录的分隔符都是 "/")
adb命令进入手机root模式
1. adb reboot(重启手机)
2. adb root(在手机进入重启加载过程中的黑屏界面时运行该命令)
3. adb remount(可能会有fail报告,若有则再执行adb disable-verity命令,然后再执行adb remount)
4. adb shell
5. 这时候就可以在root模式访问手机文件了
二、adb shell操作数据库
1. 进入sqlite命令行
(1)首先在命令框中依次输入:adb root ,adb remount,adb shell
(2)进入数据库所在包:cd /data/data/com.android.providers.media.module/databases
(3)输入命令:sqlite3 external.db进入sqlite命令行
2.常用命令
.tables命令
.table表示当前表集合 .help命令帮助说明
执行结果
sqlite> .tables
album_art audio_playlists log
查表命令
sqlite> select * from imges;查看名为imges的表
遍历获取表结构
sqlite> select * from sqlite_master where type="table";
要获得数据库中的所有表
sqlite> select name from sqlite_master where type=’table’ order by name;
注意:
SQLITE_MASTER 表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATE TABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自动更新。
临时表不会出现在 SQLITE_MASTER 表中。临时表及其索引和触发器存放在另外一个叫 SQLITE_TEMP_MASTER 的表中。SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 差不多,
但它只是对于创建那些临时表的应用可见。如果要获得所有表的列表, 不管是永久的还是临时的,可以使用类似下面的命令:
SELECT name FROM (SELECT * FROM sqlite_master UNION ALL/SELECT * FROM sqlite_temp_master) WHERE type=’table’ ORDER BY name
三、其他命令
3.1 屏幕录制
(1)录制视频到内部存储;
adb shell screenrecord <手机目录>(例如:/storage/sdcard0/demo.mp4)
(2)指定录制时间;
# 设置视频最长录制时间,以秒为单位。默认最长为180秒。中途可按「Ctrl键+C」停止录制
adb shell screenrecord --time-limit 10 /storage/sdcard0/demo.mp4
(3)指定视频比特率;
# 设置视频的比特率。参数范围为[100 000,100 000 000],默认是4Mbps,即4000000。 比特率越大,文件越大,画面越清晰
adb shell screenrecord --bit-rate 6000000 /storage/sdcard0/demo.mp4
(4)停止录制;
Ctrl + C中断录制,或者到达指定录制时间自动停止
(5)录制视频时指定分辨率
# --size WIDTHxHEIGHT:指定视频分辨率大小
# 设置视频的尺寸,默认是设备的主屏幕分辨率大小,效果最佳(如果支持);如果不支持,默认使用“1280x720”。如果对视频分辨率没要求,这个参数可不写
adb shell screenrecord --size 1280x720 /sdcard/test.mp4
(6)视频旋转90度
adb shell screenrecord --rotate /sdcard/test.mp4
特别说明:
1. 在Android 4.4 KitKat 版本以上才支持通过adb shell screenrecord命令来录屏;
2. 模拟器上不能通过该手段录屏;
3. SurfaceView可以通过调用setSecure(true)防止敏感/版权信息被录屏;
3.2 进程管理
3.2.1 查看进程
# 列出手机中所有进程,再通过包名或进程号去查找
adb shell ps
# 通过grep命令查找
# keyword是我们想要找的进程名字的全称或者是一部分,也就是app的包名或者包名的一部分
adb shell "ps |grep keyword"
3.2.2 杀死进程
# (1)kill -9 进程号
adb shell kill -9 1137
# (2)adb shell am force-stop 包名全称
# 该方法不支持部分匹配,必须是包名全称。
adb shell am force-stop com.xxxxx.yyyy
3.2.3 查看当前界面Activity代码位置
# 查看运行APP当前页面的Activity相关的代码位置
# 查看测试机某个界面对应的代码所在的位置(先将测试机点击到该界面显示,然后输入如下命令)
adb shell "dumpsys window | grep mCurrentFocus"
3.2.4 查看Service
adb shell service list
3.3 导出apk
导出手机中某应用的apk并在其他的设备上进行安装
# 查找设备
adb devices
# 确认要导出的apk包名
adb shell pm list package
# 查看指定apk的路径
adb shell pm path [apk包名](例如: com.exp.zw)
# 导出apk
adb pull [apk的位置] [导出在电脑中的位置]
# 安装apk
adb install-multiple -r -t [apk的位置]
或者
adb install [apk的位置]