adb shell 书籍_开发必备---你应该知道的一些 ADB 命令

版权声明:本文为LooperJing原创文章,转载请注明出处!

0693b841c83b

一、设备相关

1、adb devices

显示连接到计算机的设备

List of devices attached

be34d81e device

输出格式为 [serialNumber] [state],state 有如下几种:

列名

解释

nodevice

没有设备/模拟器连接

offline

表示设备未连接成功或无响应。

device

设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态

2、进入设备的shell界面

adb shell

多个设备情况下:adb -s shell

3、退出设备的shell界面

exit

4、adb reboot

重启设备

5、adb kill-server

终止adb服务进程

6、adb start-server

重启adb服务进程

7、adb connect

连接到指定的ip,这个通常配合wifidebug,比如adb connect 127.0.0.1:5037,5037是默认端口号,海马模拟器是adb connect 127.0.0.1:26944

8、adb disconnect

adb disconnect 127.0.0.1:26944

二、应用管理

1、adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

查看应用列表,pm即PackageManager

参数

解释

-f

显示应用关联的 apk 文件

-d

只显示 disabled 的应用

-e

只显示 enabled 的应用

-s

只显示系统应用

-3

只显示第三方应用

-i

显示应用的 installer

-u

包含已卸载应用

包名包含 字符串

比如查看第三方应用:adb shell pm list packages -3

package:apk.wangjing.com.apkpatch

package:apk.wangjing.com.multidex

package:com.example.wangjing.animation

package:com.example.wangjing.eventdispatch

package:com.jcstudio.app.recycle

package:com.jcstudio.app.recycle.recycler

package:com.sunfusheng.StickyHeaderListView

package:com.tencent.mobileqq

package:csdnblog4.example.com.disscrollview

package:csdnblog4.example.com.ndk

package:mall.chenwenxin.com.demo

package:test.volley.com.volley

package:tool.test.memory.memoryleak

比如查看包名带有qq的应用:adb shell pm list packages qq

2、adb install

安装APK, adb install -r 允许覆盖安装

3、adb uninstall

卸载APK

4、adb uninstall -k

卸载APK但保留数据和缓存文件

5、adb shell am start -n /

启动APK,am是ActivityManager

6、 adb shell pm clear

清除APK数据与缓存

三、内存、进程相关

1、adb shell dumpsys cpuinfo

查看CPU信息

2、adb shell dumpsys meminfo

要获取具体应用的内存信息,可加上包名adb shell dumpsys meminfo PACKAGE_NAME

3、adb shell dumpsys meminfo [package-name]

查看内存泄露

详细移步Android性能优化第4篇---Allaction Tracing追踪内存分配的轨迹

4、adb shell top

查看设备cpu和内存占用情况

5、adb shell top -m 2

查看占用内存前2的app

6、adb shell ps|grep

查看某一程序进程,如果不用包名也可以写成 adb shell ps |findStr

7、adb shell ps -x [PID]

查看指定进程状态

8、adb shell kill [PID]

杀死进程

9、adb shell top -n 1

刷新一次内存信息,然后返回

10、adb shell cat /proc/meminfo

查看当前内存占用

四、Android四大组件相关

1、adb shell dumpsys activity top

查看栈顶Activity,可以用来获取包名

0693b841c83b

用此命令查看QQ的登录界面的结果,可以看到Activity的名字和状态以及这个Activity的视图结构,很厉害的样子。如果只要查看Activity的名字,不要看UI的视图结构,用adb shell dumpsys activity top |findStr ACTIVITY,dumpsys系列命令对于Android开发真的很有用的。

2、adb shell dumpsys activity activities

这条命令会有很长的内容出来,显示当前所有在运行的任务栈,它们的id分别是什么。对于每个Task,也有Activity数量等信息,同时也列出了其中的Activity列表,并且对于每个Activity也有比较详细的描述,比如启动它的Intent的内容。如果觉得内容过多,只想看看栈的内容,也可以直接跳到”Running activities (most recent first)”那部分,比较简洁而又明了的列出了栈中得Activity列表,就能知道当按下返回键的时候会应该会回到哪个Activity以后是要退出程序。

2、adb shell dumpsys activity services []

查看正在运行的 Services

参数不是必须的,指定 表示查看与某个包名相关的 Services, 不一定要给出完整的包名,可以模糊匹配, 列举相关的 Services,不指定表示查看所有 Services。

比如查看QQ的Servicer是: adb shell dumpsys activity services com.tencent.mobileqq

3、应用交互

主要是使用 am 命令,am是ActivityManager,常用的 如下:

参数

解释

start [options]

启动 指定的 Activity

startservice [options]

启动 指定的 Service

broadcast [options]

发送 指定的广播

force-stop

停止 相关的进程

kill-all

杀死后台所有进程

kill

参数是包名,杀死指定包名的进程

display-size WxH

改变显示的分辨率,有的可能不支持

display-density

改变显示的density,有的可能不支持

参数很灵活,和写 Android 程序时代码里的 Intent 相对应。用于决定 intent 对象的选项如下:

参数

解释

-a

指定 action,比如 android.intent.action.VIEW

-c

指定 category,比如 android.intent.category.APP_CONTACTS

-n

指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity

比如:打开QQ的注册界面

adb shell am start -n com.tencent.mobileqq/.activity.RegisterPhoneNumActivity

4、查看后台services信息:

adb shell service list

5、 adb shell dumpsys notification

获取通知信息

五、文件相关

1、adb shell cd

进入某个目录

2、adb shell ls -a

查看这个目录下的文件

3、adb pull

从手机复制文件出来,比如把Crash日志写在SD卡上,再pull到电脑上 或者 pull ANR的trace日志

4、adb push

向手机发送文件,比如测试热修复补丁~

5、adb shell rename path/oldfilename path/newfilename

重命名文件:

6、adb shell rm -r

删除文件夹及其下面所有文件:

7、adb shell mv path/file newpath/file

移动文件

8、adb shell touch .

创建一个隐藏文件

9、adb shell makedir

创建一个文件夹

10、adb shell cat

查看文件内容:

11、adb shell cat /data/misc/wifi/*.conf

查看wifi密码:

12、 adb shell getprop

读取系统的各种文件配置信息,比如/data/anr/traces.txt

13、adb shell dumpsys package

获得手机里面某个apk的应用信息、版本信息

14、adb logcat -c

清除log缓存

15、adb bugreport

查看bug报告

六、实用功能

1、 adb shell input keyevent

adb 命令代替键盘操作,不同的 keycode 能实现不同的功能

keycode 移步:https://developer.android.com/reference/android/view/KeyEvent.html

2、adb shell input text 123

输入文本在焦点处于某文本框时,可以通过 input 命令来输入文本。现在 123 出现在文本框中。

3、adb shell screencap -p /sdcard/sc.png

屏幕截图

4、adb shell screenrecord /sdcard/filename.mp4

录制 mp4 格式的视频保存到 /sdcard

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python生成器迭代_二十、深入Python迭代器和生成器

「Author:Runsen」学习python的过程中,迭代器与生成器是绕不开的话题, 什么是迭代器和生成器呢?下面我们来了解一下什么是迭代。但在了解迭代器之前,首先需要知道什么是容器。容器正所谓:一切都是对象&…

批改网禁止粘贴怎么破_重大利好!教育部声明,要求家长批改作业等行为,发现一起严处一起...

前段时间,在江苏一位家长发布短视频,他在视频中怒喊:我就退出家长群怎么了!引起网上一阵热议起因是这位家长认为老师总是让家长帮忙批改作业,自己承担了太多教师应负的责任,完了还要昧着良心说老师你辛苦了…

mysql实验步骤_MySQL双方配置实验步骤

实验环境:两台MariaDB服务器,IP分别为: 172.16.2.16 和 172.16.2.17MariaDB的版本是5.5.36,使用二进制方式安装。已安装完成。/mydata/data 数据库文件存放目录/mydata/binlog/ 二进制日志文件存放位置/mydata/relaylog/ 中继日志…

mac 系统安装 eclipse 方法

经过好几天的折腾,终于在各种不靠谱的经验、说明的忽悠中把自己心爱的 mac 安装上了 eclipse,看到别人的不靠谱,我决定自己写一篇经验,为了大家能够不走我这么多的弯路,也为了自己将来可以回来看看,下次安装…

python自动化和教程_《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)...

1. 简介今天我们还是继续练习练习基本功,各位小伙伴要耐住住性子,要耐得住寂寞啊,不要急躁,后面你会感谢你在前边的不断练习的。到后面也是检验你前边的学习成果的一次很好实践。本文介绍如何通过link text、partial link text、c…

异常在哪一层处理_WiFi速度慢,信号不稳定,除了重启路由器外,自己能怎么处理?...

前言WiFi出了故障,速度慢,信号不稳定,自己处理,除了重启路由器,也没有什么别的招了;好在这万能重启,差不多能解决一大半的小故障;那信号不好,速度慢,不稳定&a…

linux运维、架构之路-HAProxy反向代理

一、HAProxy介绍 专业反向代理,支持双机热备支持虚拟主机,配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端节点出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入,基于TCP和HTTP应用的代理软件,开源免费、快速并且可靠的…

CSS3 3D transform变换

transform的坐标是需要了解的特性。 我们的rotateX,rotateY,rotateZ,和translateX,translateY等都是基于相同的坐标系来定位的。 3D的坐标如下入所示: 3D transform中有下面这三个方法: rotateX( angle )rotateY( angle )rotateZ( angle )理解了这三个方…

vba结束本次循环进行下次_VBA掌握循环结构,包你效率提高500倍

这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。1.认识VBA:什么是VBA?2.这些掌握了,你才敢说自己懂VBA3.VBA变量5年踩坑吐血精华总结4.VBA中重要的强制申明,谁看谁明…

CefSharp 支持MP4

效果图: 下载链接:https://share.weiyun.com/d1e249ef5c56b4d909b2124dc2dd8902 创建Wpf项目引用 如下: 第一步:创建项目引用CefSharp 第二步:将DLL拷贝到运行项目的Debug下 第三步:项目平台设置32位 第四…

ReentrantLock 分析

带着疑问去分析 ReentrantLock是如何实现锁管理的。ReentrantLock是如何实现重入的。ReentrantLock是如何实现公平锁与非公平锁。ReentantLock的公平锁为什么一般情况下性能都比公平锁查。ReentrantLock数据结构 ReentrantLock的底层是借助于AbstractQueuedSynchronizer实现的&…

v4l2 框架下如何设置分辨率_Linux下如何进行FTP设置

目录: 一、Redhat/CentOS安装vsftp软件二、Ubuntu/Debian安装vsftp软件一、Redhat/CentOS安装vsftp软件1.更新yum源yum update -y2.安装vsftpyum install vsftpd -y3.修改配置文件vi /etc/vsftpd/vsftpd.conf # 原有初始配置 local_umask022 dirmessage_enableYES x…

2017-2018-1 20155213 《信息安全系统设计基础》第十一周学习总结

2017-2018-1 20155213 《信息安全系统设计基础》第十一周学习总结 【学习内容:第九章——虚拟存储器】 一、课本内容梳理 1.虚拟存储器 作用: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和…

vscode弹出cmd_先看看 VS Code Extension 知识点,再写个 VS Code 扩展玩玩

TL;DR文章篇幅有点长 ,可以先收藏再看 。要是想直接看看怎么写一个扩展,直接去第二部分 ,或者直接去github看源码 。第一部分 --- Extension 知识点一、扩展的启动如何保证性能 --- 扩展激活(Extension Activation) 我…

webp转换gif_用 WebP 创建尺寸更小、细节更丰富的图片,以此来提高网站的速度...

WebP 文件格式是一种基于 RIFF(资源互换文件格式)的文档格式。WebP 是 2010 年 Google 开发的一种图片格式,它为网页上的图片提供了卓越的无损和有损压缩。网站开发者们可以使用 WebP 来创建尺寸更小、细节更丰富的图片,以此来提高网站的速度。更快的加载…

python 如何判断excel单元格为空_如何用python处理excel(二)

读取excelimport xlrdworkbookxlrd.open_workbook(rC:\Users\Desktop\hebing\学生登记表.xls)sheetworkbook.sheet_by_index(0)#根据序列号来打开某一个sheetrowsheet.nrows#将excel的行数赋值给变量colsheet.ncols#将excel的列数赋值给变量print(sheet.cell_value(1,0))#打印出…

web前端到底是什么?有前途吗

web前端到底是什么? 某货: “前几年前端开发人员鱼目混杂,技术参差不齐,相对学习起来不规范,导致> 前端开发人员聚集,所以现在前端工种和工资还是没得到普遍重视,但近2年来,> …

此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程

软件下载▼关注微信公众号:贵州永航科技回复Jade即可获得软件安装包下载地址以及详细安装教程更多软件安装教程可点击菜单栏获取软件介绍MDI Jade是一款专门用于XRD分析的软件,XRD分析就是X射线衍射分析,MDI Jade通过对材料进行X射线衍射&…

java 线程定时器_Java线程之Timer定时器

定时/计划功能主要使用的就是Timer对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联。Timer类主要作用就是设置计划任务,但封装任务的类却是TimerTask类。TimerTask类是一个抽象类。执行任务的时间晚于当前时间…

vscode 写vue 没有js提示_如何用VSCode实现一个vue.js项目?

1,新建项目打开Visual studio code打开一个你想要创建项目的文件夹打开集成终端:查看 –> 集成终端 或者直接按 ctrl\ 如果没有安装vue-cli,在终端输入:npm install \-g vue-cli全局安装vue-cli然后新建项目vue init webpack projectNamep…