在进行APP爬虫开发的时候,我们一般是通过手机连接PC端代理上网,进行抓包分析,那么以这种方式抓包的时候就需要在手机端进行对应的操作,但是我们不可能一直通过手动去操作手机进行抓包,所以要使用adb这种Android开发命令的方式进行操作。但是现在很多手机权限控制比较严密,直接连接真机有很多操作是不支持的,所以就必须用到模拟器。很庆幸安卓模拟器有很多种,下面我们就介绍一下APP爬虫开发环境的简单搭建和基础使用。
安卓模拟器有很多种,夜神模拟器、腾讯手游助手、mumu模拟器等都是比较常用的模拟器,其中夜神模拟器是比较好的,但是它不支持Mac系统,mumu模拟器是由网易开发的,支持Windows和Mac平台,而且更新比较频繁,所以我使用的是mumu模拟器,官方文档和论坛也比较丰富。安装好以后就可以直接打开使用,如果碰到问题,可以在官方的常见问题中进行查看。
安装完模拟器之后,我们就要安装adb了,在Mac上首推brew cask进行安装
然后可以先使用真机进行测试,打开手机的“开发者选项”,并启用“USB调试”模式,在控制台输入adb devices
这样就表示我们的adb已经安装好了,下面就是连接我们的模拟器了。
在模拟器中打开“USB调试模式”,然后在控制台中关闭adb server,再重启即可
adb kill-serveradb server
这个时候再查看连接设备
438ec4b1为真机,emulator-5554为模拟器,要连接机器使用以下命令
adb -s 438ec4b1 shell
连接真机
连接模拟器
在红框中你会发现区别,在连接真机的ls前面是$符号,在连接模拟器的ls前面是#,#符号就表示拥有root权限,非#符号就表示没有root权限,我试过几个真机,都是无root权限的,可能需要我们自行root后才能正常使用。所以这就是我们一定要使用模拟器的原因了。
因为我们不在真机上进行调试,所以就把连接断掉,只保留模拟器一个连接设备。在这种情况下,我们的adb命令也可以简短一些,比如使用adb连接设备,原来是adb -s xxx shell,现在就可以直接写adb shell,其他的adb命令也是类似。
电脑端常用的抓包软件Fiddler、Charles、mitmproxy,Fiddler是专属于Windows系统的抓包软件,并且功能强大,Charles是跨平台的软件,但是功能不如Fiddler,在Mac和Linux使用Charles,mitmproxy也是跨平台的抓包工具,虽然也有可视化界面,但是不够友好,使用成本比较高,因此我们常用mitmproxy配合Python实现抓取工作。mitmproxy需要专门写了一个帖子,这里就不在详述了。
打开SDK Manager,安装对应的SDK版本
export ANDROID_HOME=/Users/xxxx/Library/Android/sdkexport PATH=${PATH}:${ANDROID_HOME}/toolsexport PATH=${PATH}:${ANDROID_HOME}/platform-toolsexport PATH=${PATH}:${ANDROID_HOME}/build-tools/29.0.2
ANDROID_HOME路径就是上面图中SDK下载路径
PS: 上面环境变量中的build-tools/xx.xx.xx要在build-tools目录下去看具体情况,我们主要是需要使用aapt工具,所以aapt在哪个目录下就填写哪个目录。
配置完以后执行source ~/.bash_profile命令,重新加载环境变量,然后输入aapt -v查看命令是否正常运行
3.安装JDK从官网下载JDK 8,官网下载需要注册账号,比较麻烦。可以在找第三方网站上的下载,我是在一个百度云分享链接下载的,可惜现在忘了地址了,不好意思。
然后就可以正常使用了。
上海之声版权及免责声明:
1、凡本网注明 “来源:***(非上海之声)” 的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
2、如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。