adb+shell+入门_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}:/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 //比如:adb install baidu.apk

保留数据和缓存文件,重新安装apk:adb install -r

//比如:adb install -r baidu.apk

安装apk到sd卡:adb install -s

// 比如:adb install -s baidu.apk

卸载APK:adb uninstall

//比如:adb uninstall com.baidu.search

卸载app但保留数据和缓存文件:adb uninstall -k

//比如:adb uninstall -k com.baidu.search

启动应用:adb shell am start -n /.

查看设备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

从设备复制文件到本地:adb pull

列出目录下的文件和文件夹,等同于dos中的dir命令:adb shell ls

//进入文件夹,等同于dos中的cd 命令:

adb shell cd

重命名文件:adb shell rename path/oldfilename path/newfilename

删除system/avi.apk:adb shell rm /system/avi.apk

删除文件夹及其下面所有文件:adb shell rm -r

移动文件:adb shell mv path/file newpath/file

设置文件权限:

adb shell chmod 777 /system/fonts/DroidSansFallback.ttf

新建文件夹:adb shell mkdir path/foldelname

查看文件内容:adb shell cat

查看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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值