ADB看完这篇就够了for安卓开发/测试人员
ADB看完这篇就够了for安卓开发/测试人员
【本篇文章的视频地址】
适合安卓初学者或者Android测试人员,视频地址:
http://study.163.com/u/4381854733
【关于什么是ADB】
一般来说,我们礼貌性地会问,什么是ADB的,那就请大家看这一篇文章吧!
什么是ADB:
http://bbs.sunofbeaches.com/thread-5975-1-1.html
如果你想看视频怎么办呢?
去我们的站内视频模块下载吧!
【ADB的下载和安装】
对于ADB的下载和安装,有两种方式,一种是针对开发人员的,那么可以看我在网易云上的视频即可:
http://study.163.com/course/introduction/1003788008.htm#/courseDetail
对于测试人员来说,看这个就够了哈,后面我会录制成视频的:http://bbs.sunofbeaches.com/thread-5985-1-1.html【ADB核心使用指令】大家先看思维导图吧:
下面,我们就分开来讲解:【设备相关的指令】设备查看
- 查看设备,一般我们用于查看设备是否已经连接上了,或者说,是否有打开USB调试,授权之类的。这个命令很简单:
adb devices
要注意的是,这个devices是复数,有s的呢,别漏掉了哈!
-
设备重新挂载
设备重新挂载,这个命令使用的时机是在对已经root的安卓系统文件进行操作前。执行重新挂载才有权限,否则会被禁止的。
adb remount
这里面要注意的是,即使remount了显示成功了,如果没有root的话,也是没有权限删除里面的文件的。 -
设备重启
重启很简单,就跟linux的命令一样,reboot,一般在自动化测试的时候 ,需要机器重启,或者死机了,就使用这个指令去让机器重新启动一次。指令如下:
adb reboot -
设备关机
设备关机,设备关机的使用情况比较少,这里的话也跟大家说一下吧,这个指令是很简答的,跟前面一下,也是Linux指令:
adb reboot -p -
处理命令执行时多个设备的情况
当我们在执行一个指令的时候 ,如果我们的电脑连接了多个设备的话,那么命令行窗口就会提示说有多个设备。这个时候 ,我们执行命令,就需要添加一个命令了,比如说,我们要对设备进行重启操作,但是有多个设备,那么我们的指令就是这么写了:
adb -s 设备名 reboot
这里面这个设备名,可以通过前面的查看设备来看到,查看设备的指令就是显示设备的名字和设备的状态的。 -
进入sehll
进入shell,也就是进入android系统的命令行窗口,用linux指令来控制android系统。但是不是所有的指令都可以用,因为android系统是一个精简版的linux系统。
adb shell
【常用的Shell指令】
前面,进入了shell脚本命令行以后就可以用Linux指令来操作android系统了。所以,常用的一些指令,我们还是必要掌握的。
-
目录的切换
目录的切换很简单,和windows的是一样的。cd 目录地址绝对路径 cd ./文件夹名称/文件夹名称/...
面这个点表示的是当前目录,跟windows下一样用就可以了
-
列出所有的文件
列出所有的文件,这个的话跟windows不一样了,windows是dir,而linux下面是 l 也就是list的意思,列表的意思。一般来说,我用ls 或者ll这两个
lls ll
这三个都可以,列出文件列表。
- 复制文件
复制文件的话,用cp命令,它的原英文是copy的意思。
cp 文件的绝对路径包括名字和后缀 目标文件的路径包括名字和后缀
//如果是文件夹
cp -r 文件夹的绝对路径包括名字和后缀 目标文件夹的路径包括名字和后缀
-
删除文件/文件夹
删除文件的话,要注意的,如果是删除文件,直接是rm 原单词是remove 的意思,删除的意思。相关的参数的,-r删除文件夹 -f 强制删除force的意思。
rm 文件绝对路径包括名字和后缀//这个需要再次确认的rm -f 文件绝对路径包括名字和后缀 //这个不需要确认,直接删除 rm -rf 文件夹的绝对路径//强制删除某一个文件夹
-
文本内容的查看
文本内容查看,这个有时会用得到,这个命令是cat,其实LLinux下有好多查看文本的命令,比如说用less more之类的也可以,甚至是用vi也可以。这里的话,给大家看一下,如何去查看已经连接的wifi密码:
cat /data/misc/wifi/*.conf
【文件操作】
对于文件的操作,推入和拖出,就两个,一个是pull拉的意思,从android操作系统里头把文件拉出来,或者说拖出来。push是推的意思,也就是把文件从本地推送到android操作系统里头去。但是要注意的是,这是adb指令,不是android的shell指令哦,不需要进入到shell里头哈!
-
把文件推入android操作系统
adb pull 本地文件路径(可以直接拖过来) android系统内部路径 -
把文件从android系统中拖出来
adb pull android系统里目标文件/文件夹绝对路径 本地的绝对路径/当前路径
【log文件的捕捉】
对于log的捕捉,这里我不进行细分了,也不建议大家用这个指令去过滤日志之类的,因为有工具,为什么不使用工具呢,对吧!那么,这个命令什么时候用呢,一般是测试人员使用比如说,在测试之前进行捕捉log,这是必要的,比如说,我要知道前应用的包名是什么,当然啦,这个是妙用了。
先看命令:
adb logcat > 路径/test.log
这里面这个指令是用捕捉log,并且把它输出到本地上。一般为了方便,我们就是放在当前路径的。怎么在当前文件夹或者路径下打开cmd命令行呢。按着键盘的shift键,然后右键---在当前目录下打开命令行。
再举一个例子,找到当前运行程序的包名:
步骤:
把当前应用退到后台(按Home键)
在命令行输入以下指令:
adb logcat | grep START
-
打开目标应用就可以看到包名啦:
【应用的操作】应用的操作,对于测试人员来说,是比较常用的命令了。我们除了需要对应用的安装之外,还需要对应用进行打开,清除内部的缓存(这个可以进设置里头删除,但是在做一些界面不太大的系统开发时,则不好操作了,比如说,我以前做智能手表系统开发的时候 ,经常要使用到这些指令)应用安装
安装应用很简单,直接是adb install apk的绝对路径
adb install apk的绝对路径
应用启动
应用的启动的话,需要指导主的activity哦,这个不一定是MainActivity的。这个时候 ,我们需要借助一下破解工具了。比如说,我们需要启动小米论坛的apk,那么,我们先破解这个应用的apk。结果如图:看吧,小米论坛的客户端apk就不是MainActivity启动的。那我们怎么启动它,当然啦,前提是先安装了哈!
adb shell start -n com.xiaomi.bbs.activity.SplashActivity
这样子的话,就会启动小米论坛客户端了。
那我们怎么查看那个是主的Activity呢,这个很简单嘛,看配置文件就知道了!
哪个Activity配置有:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
那么它就是应用的入口啦!
-
清除应用数据
这里面的包名,可以通过破解的方法去获取,也可以通过前面的方法去获取,反正,获取包名的方法真的有很多的呢!adb shell pm clear 包名
-
卸载应用
adb都玩完了,是吧,呵呵!就算没完也够用了,到这里的 话,我们就以卸载应用来结束吧。指令请看:adb uninstall 包名
这里的包名也一样,可以使用前面的方法哈,如果实在不会的,可以发帖子提问哈!知道的同学们,纷纷解答!
【结语】
到这这里的话,adb指令基本讲完了,如果大家觉得不懂的,可以去发帖子提问,或者去看视频练习,但是,一定要进行练习哈,看到的不是你的,是我的。你自己写出来的才是属于你自己的呢!!
同时,也欢迎大家支持我们的网站,发表原创文章,有没有一种荣誉感呢!别人看你的哇!
用到的工具或软件:请看原文啦!嘻嘻!
http://bbs.sunofbeaches.com/thread-5992-1-1.html
视频地址:
http://study.163.com/u/4381854733