adb命令分享

来源:互联网 发布:职称计算机模拟软件 编辑:程序博客网 时间:2024/05/22 15:03
1.adb命令

adb devices 查看所有连接adb的设备
adb -s 设备名 shell 进入指定设备的内核
adb shell

无法安装带地图的app到虚拟机? 添加x86so文件
exit 退出shell环境

通过adb push,则可将文件添加到SD卡中。如果想在push的时候修改文件名称的话,只需要修改push的第二个参数改成完整路径(目录+文件名),如/sdcard/test-0.jpg。重启模拟器,则可以在见到SD卡中新添加的内容了。

adb push E:/images/test.jpg /sdcard/
adb push E:/images/test.jpg /sdcard/test-0.jpg
而要将test.jpg提取出来的话,可使用adb pull命令。第二个参数为本机硬盘地址,如果不想改名的话,只需要输入目录地址(不能加\),而需要改名的话,输入文件的完整路径就行了。
adb pull /sdcard/images/test.jpg E:\tmp
adb pull /sdcard/images/test.jpg E:\tmp\test-0.jpg

adb logcat

解决中文乱码问题:chcp 65001(设置cmd输出格式为utf-8)
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。
adb logcat -c && adb logcat |grep 包名 #清除之前的缓存

adb logcat [TAG:LEVEL ] [TAG:LEVEL ] ...
Log.v- VERBOSE : 黑色
Log.d- DEBUG : 蓝色
Log.i- INFO : 绿色
Log.w- WARN : 橙色
Log.e- ERROR : 红色

adb logcat -v raw -- "raw"格式 : 只输出日志信息, 不附加任何其他 信息, 如 优先级 标签等, 使用 命令;

adb logcat -v time -- "time"格式 : "日期 时间 优先级 / 标签 (进程ID) : 进程名称 : 日志信息 "
adb logcat -t 5 使用 命令, 可以输出最近的5行日志, 并且不会阻塞;

adb logcat 10 *:E 过滤指定等级日志 : 使用 命令, 显示 Error 以上级别的日志;
adb logcat WifiHW:D *:S 过滤指定标签等级日志 : 使用 命令进行过滤;
-- 命令含义 : 输出10条日志, 日志是 标签为 WifiHW, 并且优先级 Debug(调试) 等级以上的级别的日志;
-- 注意 *:S : 如果没有 *S 就会输出错误;

adb logcat -v process process 只显示进程id



其他

adb shell service 查看当前系统中正在跑的service
adb shell service list 列出service

adb logcat -d -f /sdcard/test_log.txt 保存Log到sd卡。

$ adb devices 查看设备们
adb -s cf264b8f shell wm size 查看分辨率
adb shell wm density 屏幕密度
adb shell dumpsys iphonesubinfo IMEI
adb shell getprop ro.build.version.release 系统版本
adb shell ifconfig | grep Mask IP地址
adb -P <port> start-server 指定 adb server 的网络端口 默认端口为 5037。

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
无 所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
<FILTER> 包名包含 <FILTER> 字符串

adb shell pm list packages | grep mazhuang 可以使用 grep 来过滤:

adb uninstall [-k] <packagename> 卸载应用
adb shell pm clear <packagename> 清除应用数据与缓存
adb shell cat /proc/cpuinfo cpu信息
adb shell cat /proc/meminfo 内存信息
adb shell wm size 480x1024 表示将分辨率修改为 480px * 1024px。
adb reboot 重启手机

adb shell dumpsys activity activities | grep mFocusedActivity 查看正在运行的 Activity
adb shell dumpsys activity services [<packagename>] 查看正在运行的 Services
adb shell am start -n com.tencent.mm/.ui.LauncherUI 调起 Activity
adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService 调起 Service
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED 向所有组件广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver
只向 org.mazhuang.boottimemeasure/.BootCompletedReceiver 广播 BOOT_COMPLETED:
adb shell am force-stop <packagename> 强制停止应用

adb pull /sdcard/sr.mp4 ~/tmp/ 复制设备里的文件到电脑 adb pull <设备里的文件路径> [电脑上的目录]
*小技巧:*设备上的文件路径可能需要 root 权限才能访问,如果你的设备已经 root 过,可以先使用 adb shell 和 su 命令在 adb shell 里获取 root 权限后,先 cp /path/on/device /sdcard/filename 将文件复制到 sdcard,然后 adb pull /sdcard/filename /path/on/pc。


adb push ~/sr.mp4 /sdcard/ 复制电脑里的文件到设备 adb push <电脑上的文件路径> <设备里的目录>
*小技巧:*设备上的文件路径普通权限可能无法直接写入,如果你的设备已经 root 过,可以先 adb push /path/on/pc /sdcard/filename,然后 adb shell 和 su 在 adb shell 里获取 root 权限后,cp /sdcard/filename /path/on/device。

内核日志
adb shell dmesg
型号
adb shell getprop ro.product.model
电池状况
adb shell dumpsys battery


2.linux

ls   显示文件或目录
-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

cd 切换目录 ..上一个目录
cd /root/Docements # 切换到目录/root/Docements
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录

mkdir 创建目录
cat 查看文件内容
cp 拷贝
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
ls -l | grep -i file
rm 删除文件
rm -rf 删除文件夹
-r 递归删除,可删除子目录及文件
-f 强制删除

cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中


grep 在文本文件中查找某个字符串
grep [-acinv] [--color=auto] '查找字符串' filename
-a :将binary文件以text文件的方式查找数据
-c :计算找到‘查找字符串’的次数
-i :忽略大小写的区别,即把大小写视为相同
-v :反向选择,即显示出没有‘查找字符串’内容的那一行
# 例如:
# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
grep --color=auto 'MANPATH' /etc/man.config
# 把ls -l的输出中包含字母file(不区分大小写)的内容输出
ls -l | grep -i file
rmdir 删除空目录
pwd 显示当前目录
ps 显示瞬间进程状态 ps -aux
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出

kill
kill -signal PID
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

cat 查看text文件中的内容

chmod 该命令用于改变文件的权限
chmod [-R] xyz 文件或目录
-R:进行递归的持续更改,即连同子目录下的所有文件都会更改
reboot
shutdown
-r 关机重启

-h 关机不重启

now 立刻关机
halt 关机