常⽤的安卓⼿机adb命令总结
很早就想整理⼀下⾃⼰平时常⽤的⼀些adb命令,不仅为了便于以后查,⽽且整理的过程⾃⼰⼜重新复习了⼀遍,但是当我开始在度娘⼀搜的时候,发现很多⼈已经写的⾮常详细了,尤其是当我发现了这篇adb概括
⼼中⼀句NND,怎么可以写的这么详细,瞬间没了想写这篇⽂章的欲望,如果你点了链接发现确实很全,那么恭喜你可以关掉这篇了,哈哈哈。
我就不这么想的,虽然很全,但不是我常⽤的,因⼈⽽异,所以我就权当记笔记+替这哥们宣传了。
– adb devices , 获取设备列表及设备状态
设备的状态有 3 种
device , 设备连接正常
offline , 设备离线,连接出现异常
unauthorized 设备为进⾏授权,需要在设备上是否允许调试对话框进⾏授权
offline情况解决办法,先执⾏adb kill-server 命令,再执⾏adb start-server 命令,再尝试adb devices 查看列表,如果还是offline,来来来,使⽤必杀技,重启⼤法。
当电脑连接多个android设备并可⽤时,所有的adb命令都需要指定设备后执⾏(当然你也可以移除多余的设备)
adb -s <;设备名称> install/uninstall/shell/pull/push等命令
– adb install app在pc硬盘路径,选中app直接拖⼊即可
常见的错误情况
INSTALL_FAILED_TEST_ONLY, 安装的app的debug版本的,未签名,adb install -t 路径即可安装
INSTALL_FAILED_DUPLICATE_PACKAGE, 已经安装相同包名的app, 先卸载再安装
– adb uninstall app的包名,卸载app
adb pull 将 Android 设备上的⽂件或者⽂件夹复制到本地
adb pull sdcard/ E:\
⼩技巧,可以将本地路径指定为桌⾯,⽅便查看, 在桌⾯按住shift键,⿏标右键选择在此处打开命令⾏窗⼝,直接输⼊adb pull
sdcard/ 执⾏,就可将复制到桌⾯。
前提是设备已经获取root权限
adb root
adb remount
adb push 将pc上⽂件复制到android设备中,修改room原⽣应⽤时⽐较频繁使⽤,如settings.apk, launcher3.apk
– adb shell pm 命令
adb shell pm list package 列出android设备上的所有app
adb shell pm list package -s 列出android设备上的系统级别app
adb shell pm list package -3 列出android设备上的第三⽅app(⽤户安装的)
adb shell pm list package -f 列出app包名及对应的apk名及存放位置
adb shell pm list package -i 列出app包名及其安装来源(应⽤市场名称)
adb shell pm dump app包名 列出app的相关信息,类似获取Manifest⽂件内容
-查看前台 Activity
adb shell dumpsys activity activities “| grep mFocusedActivity”
-adb shell am 命令
最常⽤的就是启动指定的activity和发送指定的⼴播
启动指定的activity
操作指令 adb shell am start -n 包名/类名
注:如果启动activity时,出现如下错误
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 > > di
解决办法,1、如果是你⾃⼰可控的app,那么到你要调⽤的activity在l中,增加
1
配置即可, android:name="" 可以为空字符串。
2、如果是不可控的app,例如我调⽤的系统原⽣app,那么你就洗洗睡吧,别折腾了,除⾮你修改源码和上边⼀样操作,重新push替换原来的app。
启动默认浏览器打开⼀个⽹页
adb shell am start -a android.intent.action.VIEW -d *********
先停⽌⽬标应⽤,再启动
adb shell am start -s com.android.camera/.Camera
启动相机
adb shell am start -n com.android.camera/.Camera
启动设置
adb shell am start -n com.android.settings/com.android.settings.Settings
启动Wifi设置
adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings
启动蓝⽛设置
adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings
其它的类似只要你能在manifest中到配置的,都可以通过这种⽅法来调⽤
发送指定的⼴播
操作指令 adb shell am broadcast -a ⼴播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
–ei integer 值
–es String 值
–ez boolean 值
安卓软件签名工具–ef float 值
–el long 值
例如之前写的
Android6.0 源码修改之Setting列表配置项动态添加和静态添加, 当中就通过发送⼴播来接收增加配置列表项
adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location “0-2” --es title “红” --es intent “com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING”
-adb shell input keycode 指令
HOME 键 adb shell input keycode 3
返回键 adb shell input keycode 4
打开浏览器 adb shell input keycode 64
-adb shell wm 指令
屏幕分辨率 adb shell wm size
屏幕密度 adb shell wm density
adb shell wm density 320/480/640 可修改屏幕密度查看效果,对应Launcher图标会缩放
adb shell ifconfig 命令
IP 地址 adb shell ifconfig “| grep Mask”
WIFI 地址 adb shell ifconfig wlan0
状态栏和导航栏的显⽰隐藏
命令:
adb shell settings put global policy_control
可由如下⼏种键及其对应的值组成,格式为 key1=value1:key2=value2。
key 含义
immersive.full 同时隐藏
immersive.status 隐藏状态栏
immersive.navigation 隐藏导航栏
immersive.preconfirms 同时显⽰
这些键对应的值可则如下值⽤逗号组合:
value 含义
apps 所有应⽤
所有界⾯
packagename 指定应⽤
packagename 排除指定应⽤
例如:
adb shell settings put global policy_control immersive.full=*
表⽰设置在所有界⾯下都同时隐藏状态栏和导航栏。(重启也不会失效,恢复需调⽤下⾯的命令)
adb shell settings put global policy_control immersive.preconfirms=*
表⽰恢复显⽰
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
表⽰设置在包名为 com.package1 和 com.package2 的应⽤⾥隐藏状态栏,在除了包名为 com.package3 的所有应⽤⾥隐藏导航栏
adb shell am force-stop app 关闭APP
adb shell pm clear APP app进程被杀死,且会清楚所有数据
1:查⼿机安装应⽤的包名:adb shell pm list packages -f
2:查看系统盘符:adb shell df
3:查看Log 1:adb shell 2: logcat | grep "abc"
4:删除应⽤:1:adbremount 2:adb shell 3:cdsystem/app 4:rm *.apk
5:安装APK: adbinstall -r *.apk 或者 adb push*.apk /system/app
6:查看APP启动的时间指令
adb shell am start -W -ncom.android.dialer/.DialtactsActivity (W是⼤写)执⾏命令后APP会⾃ 动启动,其中ThisTime即是本次 App启动所花费的时间。
7:查看包名中当前所在进程信息:adb shell ps | grep +包名
8:查看Activity运⾏的任务栈:adb shell dumpsys activity
9:查看键值:adb logcat | grep intercep -i
10:查看模块所占有的CPU资源:adb shell top -d 2 -m 10
11:查看可⽤系统的权
$ adb shell
# pm list permissions
12:模拟按键的输⼊:adb shell input keyevent + 键值
eg: adb shell input keyevent 82 表⽰menu
adb shell input keyevent 3 表⽰home
adb shell input keyevent 19 表⽰up
adb shell input keyevent 20 表⽰down
adb shell input keyevent 21 表⽰left
adb shell input keyevent 22 表⽰right
adb shell input keyevent 66 表⽰enter
adb shell input keyevent 4 表⽰back
13:模拟滑动输⼊:adb shell input touchscreen <x1> <y1> <x2> <y2>
eg: adb shell input touchscreen swipe 18 665 18 350
14:启动⼀个Activity : adb shell am start -n 包名+类名
15:录制屏幕:adb shell screenrecord /sdcard/demo.mp4
16:重新启动:adb reboot
17:Monkey的基本⽤法下⾯是⼀个更为典型的命令⾏⽰例,它启动指定的应⽤程序,并向其发送500个伪随机事件:
$ adb shell monkey -p your.package.name -v 500
如果跑桌⾯或者systemUi的monkey的话:
adb shell monkey -v -v -p 桌⾯包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000 18:查第三⽅应⽤的详细信息:
adb shell dumpsys package +第三⽅包名(webchat)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论