adb系列(1-2)-命令
- 安装卸载应用程序
adb install 用于安装
- adb install <apkfile> 参数apkfile 为.apk 文件名称 # 安装的时候最好用引号包起来 - adb install -r test.apk 保留数据和缓存文件,重新安装apk - adb install -s test.apk 安装apk 到sd 卡 - --install-location location:使用以下某个值来设置安装位置: 0:使用默认安装位置。 1:在内部设备存储上安装。 2:在外部介质上安装。 安装成功,返回成功提示 "Success"; 安装失败,会返回以下: INSTALL_FAILED_ALREADY_EXISTS 此时需要用 -r 参数来重新安装。 INSTALL_FAILED_SIGNATURE_ERROR 应用的签名不一致,可能是发布版和调试版签名不同所致。也有可能是没卸载旧应用导致。 INSTALL_FAILED_INSUFFICIENT_STORAGE 存储空间不足,需要检查设备存储情况。
- app卸载
adb uninstall cn.com.test.mobile # 卸载app 但保留数据和缓存文件 $adb uninstall -k ccn.com.test.mobile
- 获取启动页Activity
- 通过monkey日志查看
- 通过adb shell dumpsys package com.zhao.myreader 查看
- aapt dump badging D:\dushuwu.apk # 加下面第22行
D:\android_sdk\build-tools\30.0.0-preview>aapt dump badging D:\dushuwu.apk package: name='com.zhao.myreader' versionCode='301' versionName='3.0.1' compileSdkVersion='29' compileSdkVersionCodename='10' sdkVersion:'23' targetSdkVersion:'29' uses-permission: name='android.permission.INTERNET' uses-permission: name='android.permission.VIBRATE' uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' uses-permission: name='android.Manifest.permission.INTERNAL_SYSTEM_WINDOW' uses-permission: name='android.permission.DISABLE_KEYGUARD' uses-permission: name='android.permission.ACCESS_NETWORK_STATE' uses-permission-sdk-23: name='android.permission.ACCESS_COARSE_LOCATION' uses-permission: name='android.permission.CAMERA' application-label:'璇讳功灞? application-label-af:'璇讳功灞? application-label-am:'璇讳功灞? application-label-zu:'璇讳功灞? application-icon-160:'res/mipmap-mdpi-v4/ic_launcher.png' application-icon-65534:'res/mipmap-mdpi-v4/ic_launcher.png' application: label='璇讳功灞? icon='res/mipmap-mdpi-v4/ic_launcher.png' application-debuggable launchable-activity: name='com.zhao.myreader.ui.home.MainActivity' label='' icon='' # com.zhao.myreader.ui.home.MainActivity在此处 feature-group: label='' uses-feature-not-required: name='android.hardware.camera' uses-feature-not-required: name='android.hardware.camera.autofocus' uses-feature-not-required: name='android.hardware.camera.flash' uses-feature-not-required: name='android.hardware.camera.front' uses-feature-not-required: name='android.hardware.screen.landscape' uses-feature-not-required: name='android.hardware.wifi' uses-feature: name='android.hardware.faketouch' uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' uses-feature-sdk-23: name='android.hardware.location' uses-implied-feature-sdk-23: name='android.hardware.location' reason='requested android.permission.ACCESS_COARSE_LOCATION permission' main other-activities supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'he' 'hi' 'hr' 'hu' 'hy' 'id' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh' 'zh-CN' 'zh-HK' 'zh-TW' 'zu' densities: '160' '240' '320' '480' '640' '65534' native-code: 'armeabi' 'armeabi-v7a' 'x86'
- adb devices #查看连接设备
adb [-d|-e|-s <serialNumber>] <command> 参数: -d 指定当前唯一通过USB 连接的Android 设备为命令目标 -e 指定当前唯一运行的模拟器为命令目标 -s <serialNumber> 指定相应serialNumber 号的设备/模拟器为命令目标 command 为所需对设备执行的命令
- adb start-server 启动服务
adb -P <port> start-server # 指定adb server 的网络端口port (默认为5037)启动服务
- adb kill-server 停止服务
- adb version # 查看adb 版本信息
- adb -s cf27456f shell # 指定连接设备使用命令
- adb install test.apk # 安装应用
- adb install -r demo.apk #覆盖安装
- adb uninstall cn.com.test.mobile #卸载应用,需要指定包
- adb uninstall -k cn.com.test.mobile #卸载app 但保留数据和缓存文件
- adb shell pm 模拟android行为或者查询设备上的应用
参数选项:-f:查看关联文件,即应用apk的位置跟对应的包名(如:package:/system/app /MusicPlayer.apk=com.sec.android.app.music); -d:查看disabled packages; -e:查看enable package; -s:查看系统package; -3:查看第三方package; -i:查看package的对应安装者(如:1、 package:com.tencent.qqmusic installer=null 2、package:com.tencent.qqpim installer=com.android.vending); -u:查看曾被卸载过的package。(卸载后又重新安装依然会被列 入); --user<USER_ID>:The user space to query。 list permission-groups :打印所有已知的权限群组。 list permissions [options] <GROUP> :选择性的打印权限。参数选项: list features :设备特性。硬件之类的性能。 list libraries :当前设备支持的libs。 list users :系统上所有的users。(上面提到的USER_ID查询方式,如:UserInfo{0:Primary:3}那么USER_ID为0) path <PACKAGE> :查询package的安装位置。 install [options] <PATH> :安装命令。 uninstall [options] <PACKAGE> :卸载命令。 clear <PACKAGE> :对指定的package删除所有数据。 enable <PACKAGE_OR_COMPONENT> :使package或component可用。(如:pm enable "package/class") disable <PACKAGE_OR_COMPONENT> :使package或component不可用。(如:pm disable "package/class") disable-user [options] <PACKAGE_OR_COMPONENT> :参数选项:--user <USER_ID>: The user to disable. grant <PACKAGE_PERMISSION> :授权给应用。 revoke <PACKAGE_PERMISSION> :撤销权限。 set-install-location <LOCATION> :设置默认的安装位置。其中0:让系统自动选择最佳的安装位置。1:安装到内部的设备存储空间。2:安装到外部的设备存储空间。(这只用于调试应用程序, 使用该命令可能导致应用程序退出或者其他不适的后果)。 get-install-location :返回当前的安装位置。返回结果同上参数选项。 set-permission-enforced <PERMISSION> [true|false] :使指定权限生效或者失效。 create-user <USER_NAME> :增加一个新的USER。 remove-user <USER_ID> :删除一个USER。 get-max-users :该设备所支持的最大USER数。(某些设备不支持该命令)
- adb shell pm list packages #列出手机装的所有app 的包名
- adb shell pm list packages -3 #列出除了系统应用的第三方应用包名
- adb shell pm list packages | find "test" win 列出手机装带有的test的包
- adb shell pm list packages | grep ‘test’ linux 列出手机装带有的test的包
- adb shell pm clear cn.com.test.mobile #清除应用数据与缓存
- adb shell am
# 命令来启动一个APP、启动Activity、启动广播和服务等等
command 用途 start [options] <INTENT> 启动 <INTENT> 指定的 Activity startservice [options] <INTENT> 启动 <INTENT> 指定的 Service broadcast [options] <INTENT> 发送 <INTENT> 指定的广播 force-stop <packagename> 停止 <packagename> 相关的进程 <INTENT> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应,用于决定 intent 对象的选项如下: -a <ACTION> 指定 action,如android.intent.action.VIEW -c <CATEGORY> 指定 category,如android.intent.category.APP_CONTACTS -n <COMPONENT> 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity
- 启动Activity
adb shell am start [options]
#指定完整 component 名,用于明确指定启动哪个Activity $adb shell am start -n <COMPONENT> 如: #表示调起微信主界面 # adb shell am start 包名/完整Activity路径 $adb shell am start -n com.tencent.mm/.ui.LauncherUI
- 启动 Service
adb shell am startservice [options]
示例: 表示调起微信的某 Service。 $adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorS
- 发送广播
adb shell am startservice [options]
示例: #向所有组件广播 BOOT_COMPLETED (开机广播) $adb shell am broadcast -a android.intent.action.BOOT_COMPLETED #如:只向 org.mazhuang.boottimemeasure/.BootCompletedReceiver 广播 BOOT_COMPLETED: $adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemea
-
adb shell am start -ncn.com.test.mobile/.ui.SplashActivity #启动应用
-
adb shell dumpsys # 提供非常多的系统信息
-
adb shell dumpsys package #包信息Package Information
-
adb shell dumpsys meminfo #内存使用情况Memory Usage
-
adb shell dumpsys window | findstr mCurrentFocus 获取当前包名和activity
-
查看实时资源占用情况 # 查看实时资源占用情况
adb shell top
top命令参数如下: 使用方法: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ] -m num 最多显示多少个进程 -n num 刷新多少次后退出 -d num 刷新时间间隔(单位秒,默认值 5) -s col 按某列排序(可用 col 值:cpu, vss, rss, thr) -t 显示线程信息 -h 显示帮助文档
- adb shell am force-stop cn.com.test.mobile #强制停止应用
- adb logcat #查看日志
- adb logcat -c #清除log 缓存
- adb reboot #重启
- adb bugreport 查看bug 报告
- adb get-serialno #获取序列号
- adb shell getprop ro.build.version.release #查看Android 系统版本
- adb shell top -s 10 #查看占用内存前10 的app
- adb push
#从本地复制文件到设备 - adb pull
#从设备复制文件到本地 - adb bugreport #查看bug报告
- adb help #查看ADB 帮助
- 使用ADB命令模拟按键/输入
adb shell input keyevent
# keycode 能实现不同的功能,对应的编码如下
- IP 地址
adb shell ifconfig | find “Mask” adb shell ifconfig wlan0 #设备连着 WiFi,可以使用如下命令来查看局域网 IP adb shell netcfg # 上面两个无结果可以用这个,查看网络连接状态
- CPU 信息
adb shell cat /proc/cpuinfo
- 内存信息
adb shell cat /proc/meminfo
- 屏幕截图
adb exec-out screencap -p > img.png # 老版本无exec-out命令,只适合于新版的截图 adb shell screencap -p /sdcard/img.png # 老版本截图先保存在设备端 adb pull /sdcard/img.png # 通过pull拷贝到本地 参数 含义 -p 指定保存文件为 png 格式 -d display-id 指定截图的显示屏编号(有多显示屏的情况下)
- 录制屏幕
adb shell screenrecord /sdcard/filename.mp4 # 默认录制时间和最长录制时间都是180s
参数 含义 --size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。 --bit-rate RATE 视频的比特率,默认是 4Mbps。 --time-limit TIME 录制时长,单位秒。 --verbose 输出更多信息
- 事件输入
使用adb shell input命令向屏幕输入一些信息,
adb shell input text "insert%stext%shere" # 注意:%s表示空格。
# 市面上输入法的底层就是监控input输入的字符
- 使用adb shell input tap命令来模拟屏幕点击事件
adb shell input tap 500 1450 # 表示在屏幕上(500,1450)的坐标点上进行一次点击
- adb shell input swipe # 模拟手势滑动事件
adb shell input swipe 100 500 100 1450 100 # 从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms
adb shell input swipe 100 500 100 500 500 # 使用上面的命令还可以模拟”**长按(long press)**操作,也就是2个坐标点相同,耗时超过500ms
- adb shell input keyevent # 命令来模拟点按实体按钮的命令
adb shell input keyevent 25
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?