adb命令大全.docx
- 文档编号:30439234
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:40
- 大小:36.13KB
adb命令大全.docx
《adb命令大全.docx》由会员分享,可在线阅读,更多相关《adb命令大全.docx(40页珍藏版)》请在冰豆网上搜索。
adb命令大全
1.1基本用法
1.1.1命令语法
adb命令的基本语法如下:
adb[-d|-e|-s
如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s
1.1.2为命令指定目标设备
如果有多个设备/模拟器连接,则需要为命令指定目标设备。
参数
含义
-d
指定当前唯一通过USB连接的Android设备为命令目标
-e
指定当前唯一运行的模拟器为命令目标
-s
指定相应serialNumber号的设备/模拟器为命令目标
在多个设备/模拟器连接的情况下较常用的是 -s
如:
$adbdevices
Listofdevicesattached
cf264b8fdevice
emulator-5554device
输出里的 cf264b8f 和 emulator-5554 即为serialNumber。
比如这时想指定cf264b8f 这个设备来运行adb命令获取屏幕分辨率:
adb-scf264b8fshellwmsize
遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。
1.1.3启动/停止
启动adbserver命令:
adbstart-server
(一般无需手动执行此命令,在运行adb命令时若发现adbserver没有启动会自动调起。
)
停止adbserver命令:
adbkill-server
1.1.4查看adb版本
命令:
adbversion
示例输出:
AndroidDebugBridgeversion1.0.32Revision09a0d98bebce-android
1.1.5以root权限运行adbd
adb的运行原理是PC端的adbserver与手机端的守护进程adbd建立连接,然后PC端的adbclient通过adbserver转发命令,adbd接收命令后解析运行。
所以如果adbd以普通权限执行,有些需要root权限才能执行的命令无法直接用adbxxx 执行。
这时可以 adbshell 然后 su 后执行命令,也可以让adbd以root权限执行,这个就能随意执行高权限命令了。
命令:
adbroot
正常输出:
restartingadbdasroot
现在再运行 adbshell,看看命令行提示符是不是变成 # 了?
有些手机root后也无法通过 adbroot 命令让adbd以root权限执行,比如三星的部分机型,会提示 adbdcannotrunasrootinproductionbuilds,此时可以先安装adbdInsecure,然后 adbroot 试试。
相应地,如果要恢复adbd为非root权限的话,可以使用 adbunroot 命令。
1.1.6直接运行root后可执行命令
或者使用如下命令来执行:
(但是好像不能|grep)
adbshellsu-c'ls/data/data'
adbshellsu-c"/data/test/soinject10865hook_entry/data/test/libhook_test.so"
adbshellsu-c"cat/proc/10865/maps|greplibhook_test.so"
永久保持su状态
adbshellsu-c'sleep1'
adbshellls/data/app//注意,这条使用正常命令也可以执行root权限了。
1.1.7指定adbserver的网络端口
命令:
adb-P
默认端口为5037。
1.2设备连接管理
1.2.1查询已连接设备/模拟器
命令:
adbdevices
输出示例:
Listofdevicesattached
cf264b8fdevice
emulator-5554device
输出格式为 [serialNumber][state],serialNumber即我们常说的SN,state有如下几种:
∙
offline ——表示设备未连接成功或无响应。
∙
∙
device ——设备已连接。
注意这个状态并不能标识Android系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到adb,但启动完毕后系统才处于可操作状态。
∙
∙
nodevice ——没有设备/模拟器连接。
∙
以上输出显示当前已经连接了两台设备/模拟器,cf264b8f 与 emulator-5554分别是它们的SN。
从 emulator-5554 这个名字可以看出它是一个Android模拟器。
常见异常输出:
没有设备/模拟器连接成功。
Listofdevicesattached
设备/模拟器未连接到adb或无响应。
Listofdevicesattached
cf264b8foffline
1.2.2USB连接
通过USB连接来正常使用adb需要保证几点:
硬件状态正常。
包括Android设备处于正常开机状态,USB连接线和各种接口完好。
Android设备的开发者选项和USB调试模式已开启。
可以到「设置」-「开发者选项」-「Android调试」查看。
如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:
在「设置」-「关于手机」连续点击「版本号」7次。
设备驱动状态正常。
这一点貌似在Linux和MacOSX下不用操心,在Windows下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。
否则可以下载一个手机助手类程序来安装驱动先。
通过USB线连接好电脑和设备后确认状态。
adbdevices
如果能看到
xxxxxxdevice
说明连接成功。
1.2.3无线连接
除了可以通过USB连接设备与电脑来使用adb,也可以通过无线连接——虽然连接过程中也有需要使用USB的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱USB连接线的限制啦!
操作步骤:
将Android设备与将运行adb的电脑连接到同一个局域网,比如连到同一个WiFi。
将设备与电脑通过USB线连接。
应确保连接成功(可运行 adbdevices 看是否能列出该设备)。
让设备在5555端口监听TCP/IP连接:
adbtcpip5555
断开USB连接。
找到设备的IP地址。
一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到。
通过IP地址连接设备。
adbconnect
这里的
确认连接状态。
adbdevices
如果能看到
5555device
说明连接成功。
如果连接不了,请确认Android设备与电脑是连接到了同一个WiFi,然后再次执行 adbconnect
如果还是不行的话,通过 adbkill-server 重新启动adb然后从头再来一次试试。
断开无线连接
命令:
adbdisconnect
1.3应用管理
1.3.1查看应用列表
查看应用列表的基本命令格式是
adbshellpmlistpackages[-f][-d][-e][-s][-3][-i][-u][--userUSER_ID][FILTER]
即在 adbshellpmlistpackages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
参数
显示列表
无
所有应用
-f
显示应用关联的apk文件
-d
只显示disabled的应用
-e
只显示enabled的应用
-s
只显示系统应用
-3
只显示第三方应用
-i
显示应用的installer
-u
包含已卸载应用
包名包含
1)所有应用
命令:
adbshellpmlistpackages
输出示例:
package:
com.android.smoketestpackage:
com.example.android.livecubespackage:
com.android.providers.telephonypackage:
com.google.android.googlequicksearchboxpackage:
com.android.providers.calendarpackage:
com.android.providers.mediapackage:
com.android.protipspackage:
com.android.documentsuipackage:
com.android.gallerypackage:
com.android.externalstorage
...//otherpackageshere
...
2)系统应用
命令:
adbshellpmlistpackages-s
3)第三方应用
命令:
adbshellpmlistpackages-3
4)包名包含某字符串的应用
比如要查看包名包含字符串 mazhuang 的应用列表,命令:
adbshellpmlistpackagesmazhuang
当然也可以使用grep来过滤:
adbshellpmlistpackages|grepmazhuang
1.3.2安装APK
命令:
adbinstall
参数:
adbinstall 后面可以跟一些参数来控制安装APK的行为,常用参数及含义如下:
参数
含义
-r
允许覆盖安装。
-s
将应用安装到sdcard。
-d
允许降级覆盖安装。
完整参数列表及含义可以直接运行 adb 命令然后查看 adbinstall[-lrtsdg]
如果见到类似如下输出(状态为 Success)代表安装成功:
12040KB/s(22205609bytesin1.801s)
pkg:
/data/local/tmp/SogouInput_android_v8.3_sweb.apkSuccess
而如果状态为 Failure 则表示安装失败。
常见安装失败输出代码、含义及可能的解决办法如下:
输出
含义
解决办法
INSTALL_FAILED_ALREADY_EXISTS
应用已经存在
使用 -r 参数
INSTALL_FAILED_INVALID_APK
无效的APK文件
INSTALL_FAILED_INVALID_URI
无效的APK文件名
确保APK文件名里无中文
INSTALL_FAILED_INSUFFICIENT_STORAGE
空间不足
清理空间
INSTALL_FAILED_DUPLICATE_PACKAGE
已经存在同名程序
INSTALL_FAILED_NO_SHARED_USER
请求的共享用户不存在
INSTALL_FAILED_UPDATE_INCOMPATIBLE
已经安装过签名不一样的同名应用,且数据没有移除
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
请求的共享用户存在但签名不一致
INSTALL_FAILED_MISSING_SHARED_LIBRARY
安装包使用了设备上不可用的共享库
INSTALL_FAILED_REPLACE_COULDNT_DELETE
替换时无法删除
INSTALL_FAILED_DEXOPT
dex优化验证失败或空间不足
INSTALL_FAILED_OLDER_SDK
设备系统版本低于应用要求
INSTALL_FAILED_CONFLICTING_PROVIDER
设备里已经存在与应用里同名的contentprovider
INSTALL_FAILED_NEWER_SDK
设备系统版本高于应用要求
INSTALL_FAILED_TEST_ONLY
应用是test-only的,但安装时没有指定 -t 参数
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
包含不兼容设备CPU应用程序二进制接口的nativecode
INSTALL_FAILED_MISSING_FEATURE
应用使用了设备不可用的功能
INSTALL_FAILED_CONTAINER_ERROR
sdcard访问失败
确认sdcard可用,或者安装到内置存储
INSTALL_FAILED_INVALID_INSTALL_LOCATION
不能安装到指定位置
切换安装位置,添加或删除 -s 参数
INSTALL_FAILED_MEDIA_UNAVAILABLE
安装位置不可用
一般为sdcard,确认sdcard可用或安装到内置存储
INSTALL_FAILED_VERIFICATION_TIMEOUT
验证安装包超时
INSTALL_FAILED_VERIFICATION_FAILURE
验证安装包失败
INSTALL_FAILED_PACKAGE_CHANGED
应用与调用程序期望的不一致
INSTALL_FAILED_UID_CHANGED
以前安装过该应用,与本次分配的UID不一致
清除以前安装过的残留文件
INSTALL_FAILED_VERSION_DOWNGRADE
已经安装了该应用更高版本
使用 -d 参数
INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE
已安装targetSDK支持运行时权限的同名应用,要安装的版本不支持运行时权限
INSTALL_PARSE_FAILED_NOT_APK
指定路径不是文件,或不是以 .apk结尾
INSTALL_PARSE_FAILED_BAD_MANIFEST
无法解析的AndroidManifest.xml文件
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
解析器遇到异常
INSTALL_PARSE_FAILED_NO_CERTIFICATES
安装包没有签名
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
已安装该应用,且签名与APK文件不一致
先卸载设备上的该应用,再安装
INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING
解析APK文件时遇到CertificateEncodingException
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME
manifest文件里没有或者使用了无效的包名
INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID
manifest文件里指定了无效的共享用户ID
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
解析manifest文件时遇到结构性错误
INSTALL_PARSE_FAILED_MANIFEST_EMPTY
在manifest文件里找不到找可操作标签(instrumentation或application)
INSTALL_FAILED_INTERNAL_ERROR
因系统问题安装失败
INSTALL_FAILED_USER_RESTRICTED
用户被限制安装应用
INSTALL_FAILED_DUPLICATE_PERMISSION
应用尝试定义一个已经存在的权限名称
INSTALL_FAILED_NO_MATCHING_ABIS
应用包含设备的应用程序二进制接口不支持的nativecode
INSTALL_CANCELED_BY_USER
应用安装需要在设备上确认,但未操作设备或点了取消
在设备上同意安装
INSTALL_FAILED_ACWF_INCOMPATIBLE
应用程序与设备不兼容
doesnotcontainAndroidManifest.xml
无效的APK文件
isnotavalidzipfile
无效的APK文件
Offline
设备未连接成功
先将设备与adb连接成功
unauthorized
设备未授权允许调试
error:
devicenotfound
没有连接成功的设备
先将设备与adb连接成功
protocolfailure
设备已断开连接
先将设备与adb连接成功
Unknownoption:
-s
Android2.2以下不支持安装到sdcard
不使用 -s 参数
Nospaceleftondevicerm
空间不足
清理空间
Permissiondenied...sdcard...
sdcard不可用
参考:
PackageManager.java
1.3.3卸载应用
命令:
adbuninstall[-k]
命令示例:
adbuninstallcom.qihoo360.mobilesafe
表示卸载360手机卫士。
1.3.4清除应用数据与缓存
命令:
adbshellpmclear
命令示例:
adbshellpmclearcom.qihoo360.mobilesafe
表示清除360手机卫士的数据和缓存。
1.3.5查看前台Activity
命令:
adbshelldumpsysactivityactivities|grepmFocusedActivity
输出示例:
mFocusedActivity:
ActivityRecord{8079d7eu0com.cyanogenmod.trebuchet/com.android.launcher3.Launchert42}
其中的 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher 就是当前处于前台的Activity。
1.4与应用交互
主要是使用 am
command
用途
start[options]
启动
startservice[options]
启动
broadcast[options]
发送
force-stop
停止
用于决定intent对象的选项如下:
参数
含义
-a
指定action,比如 android.intent.action.VIEW
-c
指定category,比如 android.intent.category.APP_CONTACTS
-n
指定完整component名,用于明确指定启动哪个Activity,如com.example.app/.ExampleActivity
参数
含义
--esn
null值(只有key名)
-e|--es
string值
--ez
boolean值
--ei
integer值
--el
long值
--ef
float值
--eu
URI
--ecn
componentname
--eia integer数组 --ela long数组 1.4.1调起Activity 命令格式: adbshellamstart[options] 例如: adbshellamstart-ncom.tencent.mm/.ui.LauncherUI 表示调起微信主界面。 adbshellamstart-norg.mazhuang.boottimemeasure/.MainActivity--es"toast""hello,world" 表示调起 org.mazhuang.boottimemeasure/.MainActivity 并传给它string数据键值对 toast-hello,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- adb 命令 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)