Android adb 常用命令
发布日期:2021-06-07 09:28:24
浏览次数:9
分类:技术文章
本文共 5143 字,大约阅读时间需要 17 分钟。
Android开发环境安装好之后,需要将adb路径添加到环境变量(PATH)中,这样,就可以在命令行下直接使用adb命令了。
需要注意的是,有的命令需要先进入手机的linux系统,然后才可以使用,即adb shell, …,这里称这种命令为shell命令。另外有的命令可以直接用adb 使用,这里称之为非shell命令。通常两者可以通用的,下面会分别列出这两种命令。
常用非Shell命令
连接相关
adb version 查看adb版本adb devices 查看连接设备adb connect连接android设备(需要在同一网段下)adb kill-server 杀死adb 服务adb start-server 启动adb服务adb reboot 重启手机
多个Android设备
adb devices 查看连接设备adb -sshell 进入指定的设备shell
串口下输入命令,保证可以adb connect成功stop adbdsetprop service.adb.tcp.port 5555start adbd
应用相关
adb shell pm list packages 显示所有应用信息adb shell pm list packages -s 显示系统应用信息adb shell pm list packages -3 显示第三方应用信息adb shell pm list permissions -d -g 显示权限信息adb shell pm clear清除数据adb shell pm install 安装应用adb shell pm install -r -r 保留数据和缓存文件,重新安装apkadb shell pm uninstall 卸载应用(与adb uninstall相同)adb install 安装应用adb install -r 保留数据和缓存文件,重新安装apkadb uninstall 卸载应用
获取手机系统信息
adb shell cat /proc/cpuinfo 显示cpu信息adb get-serialno 获取序列号adb shell cat /sys/class/net/wlan0/address 获取mac地址adb shell getprop ro.product.model 获取设备型号adb shell wm size 查看屏幕分辨率adb shell wm density 查看屏幕密度
log相关
adb logcat -v time 带时间戳的logadb logcat -b查看不同类型的log,如main,system,radio,events,crash,all.默认为main logadb logcat -c 清除logadb logcat | grep -i "str" 忽略大小写筛选指定字符串logadb logcat | grep -iE "str1|str2|str3" 筛选多个字符串adb logcat > log.txt 打印log输入到文件
fastboot模式
adb reboot-bootloaderfastboot flash boot boot.imgfastboot flash recovery recovery.imgfastboot flash android system.img
输入文本
adb shell input text "str" 在EditText中输入文本。通常在TV或者盒子上,代替用遥控器输入对应shell命令为:input text "str"注:也可以模拟其他事件,如点击,触摸等等。
文件相关
adb remount adb push从PC向手机端push文件adb pull 从手机端向PC端拉取文件eg.adb remountadb push Hello.apk /system/app/Hello/
截屏与录屏
截屏:adb shell screencap -p截取屏幕,并设置图片存储路径adb pull . 拉取该截图到PCadb shell rm 删除截图文件eg.adb shell screencap -p /sdcard/screen.png录屏:adb shell screenrecord 录屏
dumpsys 查看信息相关
adb shell dumpsys 显示当前android系统信息(四大组件,内容太多,一般使用重定向)adb shell dumpsys > info.txt 显示当前android系统信息(文件重定向)activity:adb shell dumpsys activity 显示当前所有activity信息adb shell dumpsys activity top 查看当前应用的 activity 信息package:adb shell dumpsys package [package_name] 查看应用信息内存:adb shell dumpsys meminfo [package_name/pid] 查看指定进程名或者是进程 id 的内存信息数据库:adb shell dumpsys dbinfo [package_name] 查看指定包名应用的数据库存储信息(包括存储的sql语句)
am 相关
启动Activity:adb shell am start -n/ . eg.adb shell am start -n com.example.hello/com.example.hello.MainActivity启动Service:adb shell am startservice -n / . 启动serviceeg.adb shell am startservice -n com.example.test/com.example.test.TestService发送广播:adb shell am broadcast -a 发送广播
查看网络信息
adb shell netcfg 查看设备的 ip 地址adb shell netstat 查看设备的端口号信息
属性信息
adb shell getprop [prop_name] 查看属性信息adb shell setprop设置属性值
Monkey测试
adb shell monkey [options]adb shell monkey -p -v 对指定应用,做evnet_number个随机伪事件
查看进程信息
adb shell ps 查看进程信息
常用shell命令
在命令行下先执行adb shell,进入linux系统,然后再执行这些命令。
通常,大部分非shell命令都对应shell命令。这个使用者灵活掌握即可。eg.
adb shell logcat
对应 logcat
adb shell getprop
对应 getprop
adb shell am start -n
对应 am start -n
其他
显示cpu信息:
启动一个Activity
前提,在真机上,该Activity在AndroidManifest.xml中的exported属性必须为true才可以用adb shell 启动,在模拟器上不需要。即android:exported="true"
。exported的default值是false的。
adb shell am start -n <package name>/<activity name>
eg. adb shell am start -n com.example.hello/com.example.hello.MainActivity
或者
adb shell am start -n com.example.hello/.MainActivity
在真机上exported为false的时候,执行命令会出现异常:
adb shell am start -n com.example.hello/.activity.HelloActivityStarting: Intent { cmp=com.example.hello/.activity.HelloActivity }java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.example.hello/.activity.HelloActivity } from null (pid=9098, uid=2000) not exported from uid 10221 at android.os.Parcel.readException(Parcel.java:1546) at android.os.Parcel.readException(Parcel.java:1499) at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2642) at com.android.commands.am.Am.runStart(Am.java:766) at com.android.commands.am.Am.onRun(Am.java:305) at com.android.internal.os.BaseCommand.run(BaseCommand.java:47) at com.android.commands.am.Am.main(Am.java:97) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:284)
adb 截图命令
截图保存到SD卡里再导出
$ adb shell screencap -p /sdcard/screen.png$ adb pull /sdcard/screen.png$ adb shell rm /sdcard/screen.png
这种方法比较麻烦,需要3步:
- 截图保存到sdcard
- 将图片导出
- 删除sdcard中的图片
截图直接保存到电脑(Windows only)
$ adb shell screencap -p | sed 's/\r$//' > screen.png
执行adb shell 将\n转换\r\n, 因此需要用sed删除多余的\r
使用alias
修改~/.bashrc,添加一句:
alias adb-screencap="adb shell screencap -p | sed 's/\r$//'"
执行source ~/.bashrc
后,可以直接使用
adb-screencap > screen.png
截图并保存到电脑上 参考:
转载地址:https://blog.csdn.net/Next_Second/article/details/73648754 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月18日 20时10分57秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
unity mesh合并
2019-04-27
谈谈类之间的关联关系与依赖关系
2019-04-27
unity5.x assetbundle打包和加载
2019-04-27
C#用正则表达式去匹配被双引号包起来的中文
2019-04-27
lua table排序
2019-04-27
Unity发布的ios包在iphone上声音是从听筒里出来的问题
2019-04-27
UIScrollView复用节点示例
2019-04-27
Unity 5 AudioMixer
2019-04-27
Unity 代码混淆: CodeGuard的使用
2019-04-27
UGUI 列表循环使用
2019-04-27
使用命令行运行unity并执行某个静态函数(运用于命令行打包和批量打包)
2019-04-27
web.py框架
2019-04-27
web.py学习笔记
2019-04-27
python的代码缩进
2019-04-27
A* Pathfinding Project (Unity A*寻路插件) 使用教程
2019-04-27
bash学习笔记
2019-04-27
sqlite学习
2019-04-27
手把手教你实现Unity与Android的交互
2019-04-27
手把手教你使用Unity的Behavior Designer
2019-04-27