详解android adb常见用法

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用法的资料请关注我们其它相关文章!

(0)

相关推荐

  • adb通过wifi连接android设备流程解析

    在开发的过程中大家一般都会选择使用数据线连接的方式进行调试,但是有些时候比如使用模拟器时就不能这样了,所以有必要来研究下怎么使用adb通过wifi连接我们的Android; 那么我们今天分别使用adb连接移动设备,模拟器 case 1:连接Android移动设备 1.USB连接手机和电脑: 2.运行 adb devices,测试是否连接成功,能出现设备列表即可: 3.运行 adb tcpip 5555 然后断开 USB 连接. 4.通过手机状态信息,查看手机的IP地址,一般会在[设置]-[关于手

  • Android user版通过adb_enable开启adb 调试 不提示对话框的流程分析

    需求解读 由于定制rom给用户具体需求如下: 入工厂测试app自动打开adb调试模式,退出就关闭,防止客户的用户安装其它应用(直接通过改变Settings.Global.ADB_ENABLED字段) 打开usbdebug不提示弹出框 禁止调试图标出现在通知状态栏 过程分析 通过字段关闭和开启usb调试模式 通过开启开发者模式最终发现开启或者关闭是改变如下字段: Settings.Global.putInt(getContentResolver(),Settings.Global.ADB_ENAB

  • Android adb安装apk时提示Invalid APK file的问题

    今天在使用adb命令安装apk时,无法安装成功,进入到android sdk 下的platform_tools下也是无法安装成功: 先贴一下我的调用过程 xu:~ xiaokai$ adb devices List of devices attached 0123456789ABCDEF device xu:~ xiaokai$ adb shell shell@T36DH_CM3:/ $ pm install /Users/xiaokai/Downloads/app-release.apk pk

  • Android adb命令中pm工具的作用及用法说明

    玩安卓的人都知道adb,玩adb的人都知道install和uninstall,但是为什么adb shell pm install packagename命令中间要有一个pm?pm是什么意思,起什么作用的?这个问题恐怕不是每个人都能回答的出来的. pm工具为包管理(package manager)的简称,可以使用pm工具来执行应用的安装和查询应用包的信息.系统权限.控制应用.pm工具是Android开发与测试过程中必不可少的工具,通常放在/system/bin/下. 在命令行模式下输入pm,系统给

  • python中adb有什么功能

    ADB是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备. ADB主要功能有: 1.在Android设备上运行Shell(命令行) 2.管理模拟器或设备的端口映射 3.在计算机和设备之间上传/下载文件 4.将电脑上的本地APK软件安装至Android模拟器或设备上 python有两种方式去调用adb命令,一种是os.system(),一种是os.popen(). 两者的区别就是前者无法获取到返回值,后者可以获取到返回值. os.po

  • 详解adb shell 常用命令

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号,但会忽略空行 -s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file...] 查询文件或目录的磁盘使用空间 ls [-a] [-i] [-l] [-n] [-s] 列出目录内容

  • python+adb命令实现自动刷视频脚本案例

    python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这个有很多命令我们主要是模拟滑动 直接看代码吧 手机要先连接电脑打开usb调试模式 # _*_ coding:utf-8 _*_ # # @Version : 1.0 # @Time : 2019/9/10 # @Author :wang import os import time b = 0 def

  • Android PC端用ADB抓取指定应用日志实现步骤

    主要功能: 用于在PC端通过ADB工具抓取指定android真机上运行的指定包名应用的调试日志,并生成本地txt文件. 实现步骤: 1.准备ADB调试软件: 2.根据包名找到进程pid; 新建一个txt文件,重命名为"getpid.bat",把下面代码复制到该文档中,保存: 包名"com.wtoe.demo"可替换为自己所需要抓取日志的包名. @echo off adb shell "ps | grep com.wtoe.demo" 3.根据包名

  • 详解android adb常见用法

    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

  • 详解Android TableLayout中stretchColumns、shrinkColumns的用法

    详解Android 中TableLayout中stretchColumns.shrinkColumns的用法 android:stretchColumns="1" android:shrinkColumns="1"这两个属性是TableLayout所特有的,也是这两个属性影响了子对象的布局. 表格布局是按照行列来组织子视图的布局.表格布局包含一系列的Tabrow对象,用于定义行(也可以使用其它子对象).表格布局不为它的行.列和单元格显示表格线.每个行可以包含个以上(

  • 实例详解Android Selector和Shape的用法

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和selector在美化控件中的作用是至关重要的. 1:Selector drawable的item中可以有以下属性: android:drawable="@[package:]drawable/drawable_resource" android:state_pressed=["

  • 详解Android studio 动态fragment的用法

    fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment.第二个则是动态的fragment. 静态fragment直接在layout创建你想要的fragment的XML的文件,然后在你的Java包里面创建对应fragment的class文件 布局代码如下所示 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:

  • 详解Android中Intent对象与Intent Filter过滤匹配过程

    如果对Intent不是特别了解,可以参见博文<详解Android中Intent的使用方法>,该文对本文要使用的action.category以及data都进行了详细介绍.如果想了解在开发中常见Intent的使用,可以参见<Android中Intent习惯用法>. 本文内容有点长,希望大家可以耐心读完. 本文在描述组件在manifest中注册的Intent Filter过滤器时,统一用intent-filter表示. 一.概述 我们知道,Intent是分两种的:显式Intent和隐式

  • 详解Android Automotive车载应用对驾驶模式Safe Drive Mode的适配

    前言 最近在Android Automotive 上遇到的一些问题,有好几个都跟Android 车载操作系统上应用的驾驶模式有关,国内这方面的资料很少,自己在这里总结一下相关的知识,主要包含下面几个方面: Android Automotive 和 Android Auto的区别 Android Automotive 的驾驶模式介绍 Android Automotive 实现驾驶模式的几种实现方式和代码示例,以及实现效果 主要是还是想总结一下Android 车载应用对Automotive 驾驶模式

  • linux 详解useradd 命令基本用法

    linux 详解useradd 命令基本用法 概要: 在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观.以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作.本文主要描述笔者在学习使用 useradd 命令时的一些测试结果. 说明:本文中的所有试验都是在 Ubuntu14.04 上完成. 功能 在Linux中 useradd 命令用来创建或更新用户信息. useradd 命令属于比较难用的命令 (low level utility for

  • 详解Android中图片的三级缓存及实例

    详解Android中图片的三级缓存及实例 为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量.在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响 特别是,当我们想要重复浏览一些图片时,如果每一次浏览都需要通过网络获取,流量的浪费可想而知 所以提出三级缓存策略,通过网络.本地.内存三级缓存图片,来减少不必要的网络交互,避免浪费流量

  • 详解Android 中AsyncTask 的使用

    详解Android 中AsyncTask 的使用 1.首先我们来看看AsyncTask 的介绍:   Handler 和 AsyncTask 都是android 中用来实现异步任务处理的方式:其中: Handler 实例向 UI 线程发送消息,完成界面更新, 优点:对整个过程控制的比较精细:         缺点:代码相对臃肿,多个任务同时执行时,不易对线程进行精确的控制: AsyncTask :比Handler 更轻量级一些,适用于简单的异步处理: 优点:简单 | 快捷 | 过程可控:    

  • 详解Android Studio中Git的配置及协同开发

    一. Android Stutio配置git setting–>Version Control–>Git–>Path to Git executable中选择git.exe的位置,这个Stutio一般会默认配置好: 配置完路径后点击后面的Test按钮,出现下面提示框则表示配置成功: 二. 将项目分享到github 1. 设置github账号密码 打开Setting–>Version Control–>GitHub,填写完账号密码后,点击Test测试,如果连接成功会弹出如下提示

随机推荐