详解android adb常见用法

 更新时间:2021年04月09日 14:18:48   作者:liulanba  
这篇文章主要介绍了详解android adb常见用法,对android开发测试的同学参考下

ADB,即 Android Debug Bridge,是 Android 开发/测试人员不可替代的强大工具。

adb与应用的连接

1.启动/停止

启动 adb server 命令:

adb start-server

(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)

停止 adb server 命令:

adb kill-server

2.查看 adb 版本

命令:

adb version

输出为:

C:\WINDOWS\system32>adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as E:\program\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools\adb.exe

3.查看已连接设备

adb devices

输出为:

C:\WINDOWS\system32>adb devices
List of devices attached
CVH7N16A12000234 device

显示屏参数

1.android_id

adb shell settings get secure android_id

2.android系统版本

adb shell getprop ro.build.version.release

3.分辨率

adb shell wm size

输出为:

C:\WINDOWS\system32>adb shell wm size
Physical size: 1440x2560

4.密度

adb shell wm density

输出为:

Physical density: 560

5.显示屏参数

adb shell dumpsys window displays

其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键

adb与应用交互

1.查看前台 Activity

adb shell dumpsys activity | findstr "mFocusedActivity"

获取完整路径:

adb shell dumpsys window | findstr mCurrentFocus

2.查看正在运行的Services

adb shell dumpsys activity services [packagename]

3查看应用详细信息

adb shell dumpsys package [packagename]
command 用途
start [options] 启动 Activity
startservice [options] 启动 Service
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
-W 输出完整的打开应用过程

am(Activity Manager)命令来启动一个APP、启动Activity、启动广播和服务等

4.启动应用

adb shell am start xx

举例:

C:\WINDOWS\system32>adb shell am start -W com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqq/.activity.SplashActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: com.tencent.mobileqq/.activity.SplashActivity
ThisTime: 2916
TotalTime: 2916
WaitTime: 2936
Complete

5.启动Service

adb shell am startservice "com.example.crime/com.example.crime.MyService"

6.停止Service

adb shell am stopservice [options] <INTENT>

7.发送广播

adb shell am broadcast -a "our.specified.action"

8.强制停止应用

adb shell am force-stop com.qihoo360.mobilesafe

9.查看应用安装路径

adb shell pm path  (PACKAGE)

举例:

C:\WINDOWS\system32>adb shell pm path com.tencent.mobileqq
package:/data/app/com.tencent.mobileqq-xt0XnDpe7yq8Z5YGef0iEA==/base.apk

10.查看手机应用

adb shell pm list packages 

可在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:

参数 显示列表
所有应用
-f 显示应用关联的apk文件
-d 只显示disabled的应用
-e 只显示enabled的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用

举例:
1.打印第三方应用的列表

adb shell pm list package -3

输出为:

C:\WINDOWS\system32>adb shell pm list package -3
package:com.quark.browser
package:com.safervpn.android
package:de.blinkt.openvpn
package:com.zhiliaoapp.musically.go
package:net.ivpn.client
package:com.networkprotect.ultravpn
package:com.google.android.apps.docs.editors.docs
package:com.expressvpn.vpn
package:com.sharpvpn.freefast_ipchanger
package:com.whatsapp
package:com.google.android.apps.docs.editors.sheets
package:com.google.android.apps.docs.editors.slides
package:com.digitanlabs.apps.supervpn
package:com.gaditek.purevpnics
package:com.speedify.speedifyandroid
package:net.hideman.free
package:net.safemove.android.cip
package:com.securitykiss.android
package:im.zpn

2.包名含有某字符的应用

C:\WINDOWS\system32>adb shell pm list packages tencent
package:com.tencent.mm
package:com.tencent.qqlivei18n
package:com.tencent.mobileqq

当然也可以用管道符来过滤:

C:\WINDOWS\system32>adb shell pm list packages | findstr tencent
package:com.tencent.mm
package:com.tencent.qqlivei18n
package:com.tencent.mobileqq

11.安装apk

adb install  xx.apk

允许覆盖安装:

adb install -r xx.apk

12.卸载apk

adb uninstall com.tencent.mobileqq

卸载并保留数据:

adb uninstall -k com.tencent.mobileqq

13.指定adb server的网络端口

adb -P <port> start-server

文件管理

1.复制设备里的文件到电脑

adb pull <设备里的文件路径> [电脑上的目录]

其中 电脑上的目录 参数可以省略,默认复制到当前目录。

2.复制电脑里的文件到设备

adb push <电脑上的文件路径> <设备里的目录>

事件输入

1.模拟按键操作

adb shell input keyevent < keycode > 

不同的 keycode 能实现不同的功能,列表如下:

 keycode: 含义 
3	HOME 键
4	返回键
5	打开拨号应用
6	挂断电话
24	增加音量
25	降低音量
26	电源键
27	拍照(需要在相机应用里)
64	打开浏览器
82	菜单键
85	播放/暂停
86	停止播放
87	播放下一首
88	播放上一首
122	移动光标到行首或列表顶部
123	移动光标到行末或列表底部
126	恢复播放
127	暂停播放
164	静音
176	打开系统设置
187	切换应用
207	打开联系人
208	打开日历
209	打开音乐
210	打开计算器
220	降低屏幕亮度
221	提高屏幕亮度
223	系统休眠
224	点亮屏幕
231	打开语音助手
276	如果没有 wakelock 则让系统休眠

亮屏熄屏:

adb shell input keyevent 26

2.滑动屏幕

adb shell input swipe x1 y1 x2 y2

参数分别表示:起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标

3.输入文本

adb shell input text 123

4.模拟屏幕点击事件

adb shell input tap 500 500

事件输出

1.日志信息:

使用adb logcat可以显示日志信息

2.dumpsys:

dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务。
列举几个:
查看电池信息

adb shell dumpsys battery

查看闹钟信息

adb shell dumpsys alarm

3.截屏

adb shell screencap /imgpath/screen.png

4.录屏

adb shell screenrecord /imgpath/demo.mp4

imgpath可以根据自己相册里面的照片路径信息获取

以上就是详解android adb常见用法的详细内容,更多关于android adb用法的资料请关注脚本之家其它相关文章!

相关文章

  • Android实现支付宝蚂蚁森林水滴浮动效果

    Android实现支付宝蚂蚁森林水滴浮动效果

    这篇文章主要为大家详细介绍了Android实现支付宝蚂蚁森林水滴浮动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android树形控件绘制方法

    Android树形控件绘制方法

    这篇文章主要为大家详细介绍了Android树形控件绘制方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Kotlin Flow操作符及基本使用详解

    Kotlin Flow操作符及基本使用详解

    这篇文章主要为大家介绍了Kotlin Flow操作符及基本使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android App跳转微信小程序踩坑实战

    Android App跳转微信小程序踩坑实战

    现在市面上很多的应用都可以实现相互跳转,下面这篇文章主要给大家介绍了关于Android App跳转微信小程序踩坑的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • android现有项目轻微改动适配平板心得

    android现有项目轻微改动适配平板心得

    这篇文章主要介绍了android现有项目轻微改动适配平板心得,对android适配感兴趣的同学可以参考下
    2021-04-04
  • Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

    Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

    在Android所有系统自带的控件当中,ListView这个控件算是用法比较复杂的了,关键是用法复杂也就算了,它还经常会出现一些稀奇古怪的问题,让人非常头疼,下面通过本篇文章给大家分享Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案,需要朋友可以参考
    2015-08-08
  • android获取屏幕的长与宽实现代码(手写)

    android获取屏幕的长与宽实现代码(手写)

    android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533,于此问题很是疑惑,于是自己写了几行代码,亲测一下,效果还不错,需要了解的朋友可以参考下
    2012-12-12
  • 基于linux与windows平台下 如何下载android sdk源代码的方法详解

    基于linux与windows平台下 如何下载android sdk源代码的方法详解

    本文主要是介绍在linux和windows平台下,如何下载android sdk的源代码,注意是sdk的源代码,而不是android的所有源代码,同时介绍如何把sdk源代码加入到eclipse里,使android 平台手机开发者可以直接查看源代码,通过阅读SDK源码,能更好的理解和运用Android的API
    2013-05-05
  • Android 个人理财工具一:项目概述与启动界面的实现

    Android 个人理财工具一:项目概述与启动界面的实现

    本文主要介绍Android 开发个人理财工具项目概述与启动界面的实现,这里主要对实现项目的流程做了详细概述,并对启动界面简单实现,有需要的小伙伴可以参考下
    2016-08-08
  • Android基于CountDownTimer实现倒计时功能

    Android基于CountDownTimer实现倒计时功能

    这篇文章主要介绍了Android基于CountDownTimer实现倒计时功能,简单分析了基于CountDownTimer类实现倒计时功能的技巧,需要的朋友可以参考下
    2015-12-12

最新评论