Android ADB 常用命令

2016.09.21 00:02* 字数 605 阅读 2912评论 0喜欢 1

[TOC]

adb logcat 查看日志

详细内容可参见

ADB Usage Complete / ADB 用法大全

官方文档Listing of logcat Command Options

他人整合 http://jiongbull.com/2016/03/17/adb%E5%91%BD%E4%BB%A4/

应用相关

查看应用列表

adb shell pm list package
# has root
adb shell ls /data/data/

adb启动/停止 应用程序

adb shell am start -n [packageName/StartActivity]
adb shell am force-stop [packageName]

端口映射

# 显示所有(PC —> DEVICE)映射的端口连接列表
adb forward —list
# 映射端口连接(PC —> DEVICE)
adb forward (local) (remote)
adb forward tcp:6100 tcp:7100
# 映射端口连接,但是如果local已经映射了就会失败
adb forward —no-rebind (local) (remote)
adb forward --no-rebind tcp:6100 tcp:7100
# 移除指定的映射端口连接
adb forward —remove tcp:6100
# 移除所有的映射端口连接
adb forward —remove-all
# 显示所有来自设备的(DEVICE —> PC)映射的端口连接列表
adb reverse —list
# 反向映射端口连接(DEVICE —> PC)
adb reverse (remote) (local)
adb reverse tcp:7000 tcp:5000
# 如果local已经映射了就会失败
adb reverse —no-rebind (remote) (local)
adb reverse --no-rebind tcp:7000 tcp:5000
# 移除指定的反向映射端口连接
adb reverse —remove tcp:7000
adb reverse —remove-all

应用安装卸载

# 获取apk的packagename 和 classname
aapt d badging <apkfile>
# 安装apk
adb install <apkfile>
# 保留数据和缓存文件,重新安装apk,
adb install -r <apkfile>
# 安装apk到sd卡
adb install -s <apkfile>
# 卸载app
adb uninstall <package>
# 卸载app但保留数据和缓存文件
adb uninstall -k <package>
# 同时安装包多个apk到设备上
adb install-multiple

adb install 参数

  • -l 锁定应用
  • -r 替换已存在的应用
  • -t 允许安装测试包
  • -s 安装到sd卡中
  • -d 可以安装低版本安装包
  • -p 安装部分应用
  • -g 授权所有运行时权限

应用状态查看

# 查看进程列表
adb shell ps
# 查看指定进程状态
adb shell ps -x [PID]
# 查看后台services信息
adb shell service list
# 查看IO内存分区
adb shell cat /proc/iomem

调试查看

列出所有拥有JDWP端口进程的进程号

adb jdwp

文件操作

# 查看所有存储设备名
adb shell ls mnt
# 从本地复制文件到设备
adb push <local> <remote>
# 从设备复制文件到本地
adb pull <remote> <local>
# 列出目录下的文件和文件夹,等同于dos中的dir命令
adb shell ls
# 进入文件夹,等同于dos中的cd 命令
adb shell cd <folder>
# 重命名文件
adb shell rename path/oldfilename path/newfilename
# 删除system/avi.apk
adb shell rm /system/avi.apk
# 删除文件夹及其下面所有文件
adb shell rm -r <folder>
# 移动文件
adb shell mv path/file newpath/file
# 设置文件权限
adb shell chmod 777 [filePath]
# 新建文件夹
adb shell mkdir -d path/foldelname

adb sync

把Android设备上/system/data目录中与主机目录中不一致的内容同步到主机上。
使用前需要设置主机目录地址的环境变量。

adb sync(未设置环境变量)

D:\Code\Git>adb sync
adb: Product directory not specified; use -p or define ANDROID_PRODUCT_OUT

set ANDROID_PRODUCT_OUT = (PATH)

D:\Code\Git>set ANDROID_PRODUCT_OUT = D:\Data\Android

adb sync(已设置环境变量)

D:\Code\Git>adb sync
syncing /system...
push: D:\Data\Android\system/app/WAPPushManager.apk -> /system/app/WAPPushManager.apk

文本操作

# 查看文件内容
adb shell cat <file>
# 查看文件的头10行
adb shell head -n 10 <file>
# 查看文件的尾10行
adb shell tail -n 10 <file>

root权限操作

  • 此操作需要root后的手机才可以执行
# 尝试开启root权限,adb连接会重置 成功会提示 restarting adbd as root
adb root
# 关闭root权限
adb unroot
# 重新挂载系统分区,使系统分区重新可写 成功提示 remount succeeded
adb remount
# 重启设备,进入recovery程序的sideload模式,需要root权限
adb reboot sideload

这样就可以操作Android系统文件

调试环境下的dm-verity检查

解锁 system 分区用这个

关闭在调试环境下的dm-verity检查
adb disable-verity
启用在调试环境下的dm-verity检查
adb enable-verity

系统项目

设备信息

# 完整设备信息
adb shell cat /system/build.prop
# 厂商信息
adb shell cat /system/build.prop | grep ro.product

环境变量

ADB_TRACE 指定打印调试信息,可以设置为以下列表中的值,用逗号隔开

adb、sockets、packets、rwx、usb、sync、sysdeps、transport和jdwp

ANDROID_SERIAL
指定要连接的设备,如果通过-s指定了则该变量不起作用

ANDROID_LOG_TAGS
在使用logcat的情况下,只有这些标签的调试信息才会打印

dumpsys


adb shell dumpsys wifi adb shell dumpsys cpuinfo

可以dump当前运行的内容包括

编号 参数
1 SurfaceFlinger
2 accessibility
3 account
4 activity
5 alarm
6 appwidget
7 audio
8 backup
9 battery
10 batteryinfo
11 bluetooth
12 bluetooth_a2dp
13 clipboard
14 connectivity
15 content
16 cpuinfo
17 device_policy
18 devicestoragemonitor
19 diskstats
20 dropbox
21 entropy
22 ethernet
23 hardware
24 input_method
25 iphonesubinfo
26 isms
27 keybar
28 location
29 media.audio_flinger
30 media.audio_policy
31 media.camera
32 media.player
33 meminfo
34 mount
35 netsta

设备信息

# 查看设备cpu和内存占用情况
adb shell top
# 查看占用内存前6的app
adb shell top -m 6
# 刷新一次内存信息,然后返回
adb shell top -n 1
# MAC地址
adb shell cat /sys/class/net/wlan0/address
# CPU序列号
adb shell cat /proc/cpuinfo

备份

# 把设备的数据归档写入文件中
adb backup
adb backup -f backup.ab -all
  • -f 如果没有这个标识,数据将会写入到当前目录中的backup.ab文件中
  • -apk|-noapk 启用|禁用备份.apk文件自己,默认是noapk
  • -obb|-noobb 启用|禁用备份应用关联的apk扩展,默认是noobb
  • -shared|-noshared 启用|禁用备份设备共享存储/SD中的内容,默认是noshared
  • -all 备份所有安装的应用
  • -system|-nosystem 决定-all是否包含系统应用,默认是包含系统应用
  • packages... 将要备份的应用列表,如果设置了-all或-shared标识,那么这个参数将是可选的

从归档的备份文件中恢复设备内容

adb restore
adb restore backup.ab

设备操作

# 返回所有应该包含在错误报告中的设备信息
adb bugreport
# 重启
adb reboot
# 重启刷机模式
adb reboot bootloader
# 重启到恢复模式
adb reboot recovery

小礼物走一走,来简书关注我

 
Android

© 著作权归作者所有
举报文章
泛原罪

写了 56743 字,被 178 人关注,获得了 301 个喜欢

没有什么是一行代码不能解决的,如果有就两行 Context https://github.com/sinlov
 
 https://www.jianshu.com/p/37af717761cc

Android ADB 常用命令的更多相关文章

  1. Android ADB常用命令使用

    Android SDK: adb shell 命令的使用(am.pm.wm.screencap.monkey等) https://blog.csdn.net/xietansheng/article/d ...

  2. android adb常用命令

    android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...

  3. 54. Android中adb常用命令及应用常用目录

    本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需 ...

  4. Android开发系列之adb常用命令

    对于Android开发者来说,如果没有adb的帮助,那肯定就跟少了一只手那样别扭.其实笔者在刚刚学习Android开发的时候,也没有意识到adb的重要性.想想只要用IDE画出界面,然后实现后台的逻辑代 ...

  5. 【android】adb常用命令

    ADB常用命令: [adb help]获取帮助 [adb get-serialno]获取设备串号 [adb -s <serialNumber> <command>]给特定设备发 ...

  6. adb常用命令-android学习第一天

    转载出处:http://www.cnblogs.com/xiaoxuetu/ 转载来源:https://www.cnblogs.com/xiaoxuetu/p/3411214.html 平时开发and ...

  7. adb常用命令(转)

    1.Android Debug Bridge -adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件 ...

  8. adb常用命令教程

    1.Android Debug Bridge - adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文 ...

  9. ADB常用命令(一)

    转自:https://blog.csdn.net/qq_26552691/article/details/81348222 一.操作前请确认电脑上已配置好ADB环境.可在CMD命令行输入adb,如果出 ...

随机推荐

  1. Spring Boot (20) 拦截器

    动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台.拦截器不会拦截静态资源,如spring boot默认静态 ...

  2. 【SQL】INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND

    INTERVAL YEAR TO MONTH: 作为年和月的时间间隔存储 INTERVAL DAY TO SECOND: 作为天.小时.分和秒的时间间隔存储(DAY,HOUR,MINUTE,SECON ...

  3. I2C controller core之Bit controller(01)

    FPGA proven, AISC proven, I2C controller core from OpenCores http://opencores.org/project,i2c Bit-co ...

  4. 我的C++笔记(数据的共享与保护)

    *数据的共享与保护: * .作用域: * 作用域是一个标识符在程序正文中有效的区域.C++中标识符的作用域有函数原型作用域.局部作用域(块作用域).类作用域和命名空间作用域. * ().函数原型作用域 ...

  5. (转)基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化

    http://www.cnblogs.com/wuhuacong/p/4775282.html 在各种Web开发过程中,对话框和提示框的处理是很常见的一种界面处理技术,用得好,可以给用户很好的页面体验 ...

  6. spring IOC 装配一个bean

    1.0属性注入 新建一个people类 package com.java.test3; /** * @author nidegui * @create 2019-06-22 14:45 */ publ ...

  7. Linux下文件查找命令find笔记

    在Linux命令下如果需要快速自己系统所需要处理的文件,可以通过find命令快速进行检索. 如果想在某个路径下查找相应的文件可以执行如下命令: find path -name filename # p ...

  8. Spring实战(中文4,5版) PDF含源码

    Spring实战 读者评价 看了一半后在做评论,物流速度挺快,正版行货,只是运输过程有点印记,但是想必大家和你关注内容,spring 4必之3更加关注的是使用注解做开发,对于初学者还是很有用,但是不排 ...

  9. SPLAY or SPALY ?

    写在前面: 由我们可爱的Daniel Sleator和Robert Tarjan提出的一种数据结构,平衡树的一种,本质是二叉树. 至于到底是splay还是spaly,我认为可能splay更对一些 毕竟 ...

  10. eas之网络互斥功能示手工控制

    public void doMutexService()    {        IMutexServiceControl mutex = MutexServiceControlFactory.get ...