1.5.1 常用工具之ADB介绍与快速入门

一、什么是ADB

ADB是Android-Sdk里的一个客户端-服务器端程序,其中客户端是我们操作的电脑, 服务器端是Android设备,它的全称为Android Debug Bridge,就是起到调试桥的作用。通过这个桥我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。

简而言之,ADB就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

二、安装方法

电脑上需要安装客户端,客户端包含在sdk里,而服务端设备上不需要安装,只需要在手机上打开开发者选项并启用USB调试功能即可。

对于Linux用户有一个最简单的安装方法:在terminal下键入sudo apt-get install adb然后回车输入密码再回车,稍等片刻即可使用。

不过这样我们就没法知道adb具体的安装位置了,虽然这也没什么。对于好奇心爆棚的同学可以采用这样的方法安装:
1、将下载好的sdk解压后放在“~目录”或者其它任意目录,然后修改~/.bash_profile文件,设置运行环境指向sdk的tools目录。
2、具体是打开~/.bash_profile文件(如果没有此文件也可以自行添加),然后在里面加入一行 export PATH=${PATH}:<你的sdk目录>/tools,然后就可以使用adb命令了。

三、ADB常用命令

  • adb devices

这个命令是查看当前连接的设备, 连接到计算机的Android设备或者模拟器将会被显示出来。

  • adb install

用来安装软件,将指定的apk文件安装到设备上。

  • adb uninstall

用来卸载软件,将指定包名的apk文件从设备上卸载。

  • adb shell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用这种方式:adb shell [command],如:adb shell dmesg会打印出内核的调试信息。

  • adb push 本地路径 远程路径

用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)。

  • adb pull 远程路径 本地路径

用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑。

  • adb get-product

获取设备的ID号

  • adb get-serialno

获取设备的序列号

  • adb help

显示帮助信息(包括各种命令用法与含义)

四、push 和 Install 的不同

adb push和adb install是apk包安装的两种方法,用法如下:

1.adb push XXX.apk /你想推送的路径
2.adb install XXX.apk

显而易见,两者的区别是:

adb push可以自定义推送路径,adb install 只能安装在/data/app文件下。
其次,adb push 是将apk包复制到路径下面,重启后/system/app和/data/app下的apk包都会自动安装。
adb install是将apk安装到手机里,流程是:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录(so文件也在./包名/lib下,或者/data/app-lib/包名)。
另外,install复制APK安装包到data/app目录下的过程中,会将apk名改为包名-1.apk,数字为android接收到的版本号。
其中对于/system文件夹比较容易碰到的问题是报read only file的错误,哪怕/system已经被你改成了777的权限,解决的方法是:1.adb shell 2.su 3.mount -o remount rw /system重新挂载一下/system文件系统

五、常用的抓取日志命令

捕获Logcat输出:

adb logcat -c && adb logcat -v time | tee logcat.txt | grep -i 7837
adb logcat -c && adb logcat -v time | tee logcat.txt | grep -E 'showImgWithUrl'

抓取崩溃日志:

logcat -s AndroidRuntime DEBUG

adb命令向设备复制导入、导出、删除文件等

//导入文件复制文件
adb push 文件 目标文件路径
adb push lo.log storage/sdcard0
//导出文件 mac默认是你的$home文件查看home文件方法 echo $HOME
adb pull storage/sdcard0/wifi_config.log

获取序列号:

adb get-serialno

查看连接计算机的设备: adb devices
重启机器: adb reboot
重启到bootloader,即刷机模式: adb reboot bootloader
重启到recovery,即恢复模式: adb reboot recovery
查看log: adb logcat
终止adb服务进程: adb kill-server
重启adb服务进程: adb start-server
获取机器MAC地址: adb shell cat /sys/class/net/wlan0/address
获取CPU序列号:adb shell cat /proc/cpuinfo
安装APK:adb install <apkfile> //比如:adb install baidu.apk
保留数据和缓存文件,重新安装apk:adb install -r <apkfile>
//比如:adb install -r baidu.apk
安装apk到sd卡:adb install -s <apkfile>
// 比如:adb install -s baidu.apk
卸载APK:adb uninstall <package>
//比如:adb uninstall com.baidu.search
卸载app但保留数据和缓存文件:adb uninstall -k <package>
//比如:adb uninstall -k com.baidu.search
启动应用:adb shell am start -n <package_name>/.<activity_class_name>
查看设备cpu和内存占用情况:adb shell top
查看占用内存前6的app:adb shell top -m 6
刷新一次内存信息,然后返回:adb shell top -n 1
查询各进程内存使用情况:adb shell procrank
杀死一个进程:adb shell kill [pid]
查看进程列表:adb shell ps
查看指定进程状态:adb shell ps -x [PID]
查看后台services信息:adb shell service list
查看当前内存占用:adb shell cat /proc/meminfo
查看IO内存分区:adb shell cat /proc/iomem
将system分区重新挂载为可读写分区:adb remount

从本地复制文件到设备: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 /system/fonts/DroidSansFallback.ttf
新建文件夹:adb shell mkdir path/foldelname

查看文件内容:adb shell cat <file>
查看wifi密码:adb shell cat /data/misc/wifi/*.conf
清除log缓存:adb logcat -c
查看bug报告:adb bugreport
获取设备名称:adb shell cat /system/build.prop
查看ADB帮助:adb help
跑monkey:adb shell monkey -v -p your.package.name 500

更详细的ADB命令指南

感谢优秀的你跋山涉水看到了这里,不如关注下让我们永远在一起!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容