添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、前期基础知识储备

在这里插入图片描述
(1)adb命令行的定义与作用
adb的全称为Android Debug Bridge,中文名“调试桥”,顾名思义adb命令是调试手机中应用的一种方法,而且作为Android SDK中的工具,其功能非常强大,用这个命令行工具可以直接 操作管理调试中的Android模拟器或者真机调试中的设备 ,它的主要功能列举如下:

  • 运行设备的shell(多种命令行),进行各种操作;
  • 管理模拟器或移动设备的端口映射;
  • 计算机和设备之间的文件传入/传出;
  • 将本地apk软件安装在模拟器或移动设备中……

(2)adb命令行的运行位置
Windows下使用Android Studio开发的同学可以在两个位置运行adb命令:
1)Android Studio自带的Terminal窗口;(注意自配环境变量,否则无效)
比如,进入一个文件夹
在这里插入图片描述
这里写图片描述
配置adb运行环境变量的方法:
《如何配置android的adb环境变量》 -简单 易懂;
配置JDK运行环境变量的方法:《 JDK的下载安装以及配置 》-注意输入“java” “javac” “java -version” 进行验证。
2)Windows下使用cmd黑窗口;(注意自配环境变量,否则无效)
这里写图片描述
(使用cmd窗口时,配置环境变量的方法同上)

二、上代码,进行具体的adb命令操作

(1)执行adb devices 命令,我们可以看到当前电脑正在连接调试的手机;
这里写图片描述
(2)执行adb shell命令查看设备里面的文件目录和文件;
注意:adb shell,这个命令用于登录设备的shell,后面加直接运行设备命令,相当于执行远程命令,如“ls”列出目录下的文件和文件夹。
这里写图片描述
(3)执行进入目录操作,进入mnt目录下的sdcard目录;
这里写图片描述
该sdcard目录下就是我们手机上重要的sdcard目录,里面有各种重要的存储文件;
(4)执行exit命令 回车 退出文件夹目录;
这里写图片描述
(5)执行push命令,将电脑端文件复制到手机中指定文件夹中去;

这里写图片描述
这里写图片描述
注意:复制的文件源需放置在C:\Users\Administrator目录下,命令行可直接读取;
(6)执行pull命令,将手机移动端文件复制到电脑C:\Users\Administrator目录下;

这里写图片描述
这里写图片描述
(6)adb version,查看adb版本;
注:接下来的用Android Studio Terminal窗口演示adb命令行的使用。
这里写图片描述
(7)adb shell dumpsys package <package_name>,查看app相关所有信息,包括action,codepath,version,需要的权限等等信息;
(8)列出移动设备中所有的应用;
adb shell pm list package — 列出所有的应用;
adb shell pm list package –s — 列出系统应用;
adb shell pm list package -3 — 列出所有第三方应用;
adb shell pm list package –f — 列出应用包名及对应的apk名及存放位置;
adb shell pm list package –I — 列出应用包名及其安装来源;
adb shell pm list package -f -3 -i douyu 参数组合使用,如查找斗鱼的包名;
这里写图片描述
(8)adb shell wm size,获取屏幕的分辨率;
这里写图片描述
(9)adb shell am start -n com.android.camera/.Camera启动手机自带相机;
这里写图片描述

三、Android开发中常用的adb操作 - 大大提升开发便捷性

上面列出的是adb命令是适用性的基础操作,下面推荐一些Android开发中便捷的adb命令。
(1)安装apk
apk放在电脑桌面上,输入adb install C:\Users\Administrator\Desktop\clip.apk
小鹏新电脑安装:adb install C:\Users\Xpeng\Desktop\e1.apk
覆盖当前版本安装,输入adb install -r C:\Users\Administrator\Desktop\clip.apk
过滤安装某个ABI的apk:将apk放在SDK目录下的platform-tools的目录下,与adb.exe一个目录
输入:adb install --abi arm64-v8a pencil.apk,比如安装64位的apk。
(1.0.1)命令行卸载不了 / release debug混装 / 版本down这些情况直接使用强制安装apk的命令:

在app已有的情况下使用-r参数
在app版本低于现有版本使用-d参数
adb install -r -d C:\Users\Xpeng\Desktop\e1.apk

(1.1)解压小鹏 - xp文件
将jar文件一起放在桌面上,然后在AS的黑窗口中执行下面的方法即可,这样可以得到一份zip文件(xp文件同目录),解压缩后,去到
Log\log0\main.txt文件下查找即可,里面的Log信息和AS中打印的log信息一一对应。
java -jar C:/Users/Xpeng/Desktop/decryptFile.jar F:/Xpeng-Downloads/XpengFile_20210430174418.xp
(1.2)重启终端,若是没有上电/下电按钮,则执行
adb reboot命令行可以重启终端。
(1.3)命令行截图,然后保存到本地;
分为两步:
①使用screencap 命令,对安卓设备的当前屏幕进行截屏:
adb shell screencap -p /sdcard/01.png
②将截屏的图片下载到本地电脑:
adb pull /sdcard/01.png
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
另外,需要注意的一点,如果使用了360桌面整理这一类的整理软件,那么desktop的位置会发生变化,如博主的变为:adb install -r F:\360MoveData\Users\Administrator\Desktop\1.6.apk
补充几个当项目编译失败时,可以执行的命令行,用以确认错误的源头:
gradlew build --stacktrace
gradlew compileDebug --stacktrace
gradlew compileDebugJavaWithJavac
gradlew processDebugResources --debug
(2)获取当前Activity名和包名
adb shell dumpsys activity |find “mFocusedActivity” (注意这里用英文引号)
有一些手机,或者其他类型的终端,使用上面的命令行无法获取的时候,可以使用下面的命令行试试看:
1)查看当前Activity :adb shell “dumpsys window w | grep name=”
2)查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name
或者:
adb shell dumpsys activity top
3)也可以使用Android Studio自带的Layout Inspector查看当前页面的调用栈:
在这里插入图片描述

(3)获取连续10次冷启动耗时 (用于测试应用冷启动时间)
adb shell am start -S -R 10 -W calculator.calculate.calcu/.calc.BasicCalculatorActivity
(4)卸载apk
直接卸载,adb uninstall com.clip.apk
保留数据,adb uninstall -k com.clip.apk
(5)启动一个Activity
直接启动,adb shell am start 包名 / 完整 Activity 路径
携带Intent参数启动,adb shell am start com.clip.apk/com.clip.apk.MainActivity -e name clip
启动隐式Intent,adb shell am start -a “android.intent.action.VIEW” -d “https://www.google.com”
(6)发送广播
直接发送,adb shell am broadcast -a “broadcastactionfilter”
携带Intent参数发送,db shell am broadcast -a “broadcastactionfilter” -e name clip
(7)启动服务
直接启动,adb shell am start 包名 / 完整 Service 路径
adb shell am startservice “com.clip.apk/com.clip.apk.ClipService”
(8)屏幕截图 - 一些较老的机型没有截屏快捷方式时特别好用
adb shell screencap /sdcard/screen.png 后面路径是存储截图路径(路径名+图片名)
(9)录制屏幕
使用 screenrecord [options] filename 命令来录制屏幕视频,如:
adb shell screenrecord /sdcard/clip.mp4 后面路径是存储录屏路径(路径名+文件名)
(10)查看应用签名信息 - 版本更新失败时,用于检查两次版本的签名信息是否相同。
apk放在桌面上,重命名.zip,解压缩得到其中META-INF文件夹中的CERT.RSA文件(放在桌面上);
adb命令行输入 keytool -printcert -file C:\Users\Administrator\Desktop\CERT.RSA
信息如下图: 可以看到应用的签名信息
在这里插入图片描述
(11)清除应用数据与缓存 - 一些测试手机不太熟悉操作时特别好用
adb shell pm clear 相当于手动点击清除数据和应用缓存
(12)查看正在运行的Service
adb shell dumpsys activity services []
参数不是必须的,指定 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。
(13)查看应用详细信息 - 重点使用
adb shell dumpsys package
输出中包含很多信息,包括 Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等。
(13.1)查看应用版本信息
adb shell pm dump com.xiaopeng.musicradio | findstr “version”
中间的com.xiaopeng.musicradio是包名,得到的结果如下:
versionCode=5965 minSdk=28 targetSdk=28
versionName=V1.4.0_dev
signatures=PackageSignatures{701827d version:2, signatures:[b4addb29], past signatures:[]}

(14)查看设备信息
型号 adb shell getprop ro.product.model
电池状况 adb shell dumpsys battery
屏幕分辨率 adb shell wm size
屏幕密度 adb shell wm density
android_id adb shell settings get secure android_id
Android 系统版本 adb shell getprop ro.build.version.release
IP 地址 adb shell ifconfig | grep Mask 或者 adb shell netcfg
内存信息 adb shell cat /proc/meminfo
CPU 信息 adb shell cat /proc/cpuinfo processor 的编号是 0 到 3,有几个就是几核
修改屏幕分辨率 adb shell wm size 480x1024 恢复 adb shell wm size reset 或者重启设备
(15)检测应用是否有context引起的内存泄露
在Terminal窗口输入命令 adb shell dumpsys meminfo 查看内存使用情况
重复,切换Activity,查看最终有几个Activity:
​​在这里插入图片描述
如图,最后回到一个页面,但是有2个,甚至多个Activity的,则肯定有Activity被长期持有了。
(16)Manifest merger failed with multiple errors, see logs问题处理
在这里插入图片描述
此时在Terminal窗口输入命令 gradlew processDebugManifest --stacktrace,其中,processDebugManifest是log里面提到的,这个命令是会了获取更多的log信息。比如:
在这里插入图片描述
可以看到Build失败是由于没有足够空间分配给JVM。
(17)compileDebugJavaWithJavac问题处理
Execution failed for task ‘:app:compileDebugJavaWithJavac’
导致此问题的原因有很多种,每种问题的解决方法也各不相同,最主要的地方还是要可以定位出问题的地方在哪里。这里可以借助adb命令行实现:
在Terminal窗口输入命令 gradlew compileDebugJavaWithJavac,得到的结果如图:
在这里插入图片描述
可以定位到,是由于对应库中的一个Activity导包失败导致的此问题。
(18)executing external native build for cmake问题处理
此为使用cmake编译C++代码时出现的问题,甚至直接利用AS构建含C++原生代码的项目时都会出现这个问题,此时可以输入gradlew build --stacktrace,用以追踪出错的地方。博主是定位到项目根目录下的gradle版本(3.1.2)不兼容,然后升级为3.2.1,即可编译通过。
(19)Android Studio - 编译debug捅过了, release却无法打包问题处理
做完一个新功能之后,有时会碰见debug编译通过,但打release包出错的问题,此时可以检查是否是混淆出错了,例如引入了一个新的依赖库,但是没有添加对应的依赖。如果确定不是混淆出错,此时可以输入:gradlew lint ,此命名行会花费大概几分钟的时间去检查代码,直至定位到出错的地方,可以在build下找到出错的文件,如:
在这里插入图片描述
可以直接定位到出错的代码,包括XML,定位到具体的行。

后续补充:

Android svc命令与自动化/压力测试
adb shell
svc help
svc指令可用于电源控制, 无线业务控制(modem/wifi/nfc/bt, etc), 等等.
可以不适用按键,触控设备, 而通过使用svc命令实现这些模块的功能操作,比如wifi的开关:
svc wifi enable //打开wifi
svc wifi disable //关闭wifi
svc data disable // 关闭蜂窝网络
svc data enable // 打开蜂窝网络
svc power stayon [true|false|usb|ac]
设置屏幕的常亮,true保持常亮,false不保持,usb当插入usb时常亮,ac当插入电源时常亮
因此, 对于涉及到这些模块的自动化测试和压力测试, 都可以使用svc命令, 来解放双手.

scrcpy——Android投屏神器(使用教程)
通过Scrcpy,可以USB或者WIFI进行终端连接调试
Failure [DELETE_FAILED_INTERNAL_ERROR]之后rm apk卸载
上面的命令可以进到shell内,去卸载普通uninstall命令无法卸载的apk
[adb WIFI连接终端调试] cannot connect to 192.168.137.137:5555: 由于目标计算机积极拒绝,无法连接。
Android 共享用户不兼容,安装失败 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
慢慢更新中…
在这里插入图片描述
推荐一波其他好文:
参考脚本之家文章《android adb实用命令小结》
参考博客园文章《Android 常用 adb 命令总结》

在这里插入图片描述
补充一个知识点:
在这里插入图片描述
https://www.jianshu.com/p/a01bc1650dd4

一、前期基础知识储备(1)adb命令行的定义与作用 adb的全称为Android Debug Bridge,中文名“调试桥”,顾名思义adb命令是调试手机中应用的一种方法,而且作为Android SDK中的工具,其功能非常强大,用这个命令行工具可以直接操作管理调试中的Android模拟器或者真机调试中的设备,它的主要功能列举如下:  运行设备的shell(多种命令行),进行各种操作;...
android studio 版本不同连接手机方式有细微的不同,主要方式相似。介绍主要分手机和电脑两部分介绍。 一、手机部分 1、手机端下载一个“一键root权限获取“,在安装的过程需要安装KingRoot,获取手机root权限。网上有些说法,说手机侧不需要获取root权限,我自己尝试失败了。不过不是所有的手机都能获取root权限的。比如我手上的三星就没有能获取到,不过我的老手机多,这也就不是什么问题了 2、下载“ABD Wireless”,这是一个adb服务。需要运行起来,studio才能连接到手机,点击图标,手机屏幕就会显示“adb connect 192.168.0.x:5555”的字
Android SDK 包含了开发应用所需的多个软件包。本页列出了可供使用的最重要的命令行工具(按提供这些工具的软件包整理)。 可以使用 Android Studio 的 SDK 管理器或 sdkmanager 命令行工具来安装和更新每个软件包。 所有软件包都会下载到 Android SDK 目录
下面就每个命令做相应的使用说明: 1、power  在shell环境下输入svc power可以得到详细说明,其最常用的是 svc power stayon true ,可以实现屏幕常亮效果,表示当插入usb时保持屏幕常亮,ac表示插入电源时候常亮,wireless表示无线充电时常亮 使用方法如下 svc power stayon usb 设置当插入usb设备时保持屏幕常亮 svc power stayon ac  设置插入电源时屏幕常
一:文件传输 在android开发,有时候需要将文件从pc端传递至android,或者将软件运行的日志,从android设备传递到pc进行分析,我们可以使用windows的cmd窗口,或者android studioterminal窗口来传递文件。 1:连接android设备 此处默认是android设备,已打开usb调试模式,并且数据线已经和电脑连接。我们先使用adb devices指令,查询一下设备是否正常连接. 2:设备连接后,将pc文件传输至android设备 adb -s xxxx push C:/advert /sdcard/ 3:将android设备文件传递至pc电脑
一、adb介绍SDK的Tools文件夹下包含着Android模拟器操作的重要命令adbadb的全称为(Android Debug Bridge就是调试桥的作用。通过adb我们可以在Eclipse方面通过DDMS来调试Android程序。借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:1、快速更新设备或手机模拟器的代码,如应用或Android 系统升级; 2、在设备上运行shell命令; 3、管理设备或手机模拟器上的预定端口; 4、在设备或手机模拟器上复制或粘贴文件; 二、adb在集成开发环境的工作  adb的工作方式比较特殊采用监听Socket TCP 5554
由于windows系统没有安装,所以需要下载好粘贴到C:\Windows\System32目录 http://www.interlog.com/~tcharron/wgetwin.html https://eternallybored.org/misc/wget/ wget www.baidu.com 原因是adb没检测到设备(包括真机和虚拟机)。 在Terminal执行adb devices命令,查看有没有连接到的设备。 在android stdio打开terminal 工程,鼠标右键 提示:这里可以添加要学的内容 1、 搭建 Java 开发环境 2、 掌握 Java 基本语法 3、 掌握条件语句 4、 掌握循环语句 学习时间: 提示:这里可以添加计划学习的时间 1、 周一至周五晚上 7 点—晚
本文为大家汇总了Android Studio ADB网络调试使用方法,供大家参考,具体内容如下 随着技术的发展,现在的安卓手机大部分开始使用type-c接口了,这对于我们安卓程序猿来说也不是件好事情哈,如果要在不同版本手机做测试,每次调试程序的时候是不是要换数据线呢,当然二合一的数据线接口用起来也麻烦。今天就想着研究下网络调试应用程序,用起来很棒,给大家分享一下吧^_^ 首先请确保你的设备和电脑处于同一局域网络! 下面开始介绍两种连接方法。 1.使用AS命令控制台adb命令手动调试 USB连接上手机,在AS底部Terminal窗口输入adb tcpip 5555 然后接着输入adb sh
1. 打开Android Studio,连接您的Android设备到计算机上。 2. 在Android Studio的工具栏,选择“View”->“Tool Windows”->“Terminal”打开终端窗口。 3. 在终端输入以下命令: adb devices 如果您的设备已经成功连接,终端会显示设备的序列号和设备状态。 4. 在终端输入以下命令: adb shell 这样就会进入设备的shell环境。 5. 在设备的shell环境,您可以执行各种命令,比如: 该命令会列出设备的文件和文件夹。 pm list packages 该命令会列出设备的所有应用程序包名。 cat /proc/cpuinfo 该命令会显示设备的CPU信息。 6. 如果您需要退出设备的shell环境,请输入以下命令: 这样就可以退出设备的shell环境并返回到终端窗口了。 需要注意的是,使用adb shell命令需要您的设备已经开启了开发者模式,并且已经启用了USB调试模式。