云手机的使用

云服务器大家肯定不生了,有了云服务器,我们可以通过 ssh 连接云服务器,并可以执行相应的命令对云服务器进行控制。

云服务器大多是 Linux、Windows Server 系统,这些其实都是电脑,于是有的朋友就会好奇:既然有云电脑,那有没有云手机呢?答案当然是有。

所谓的云手机就是一种搭建在云服务器上的虚拟手机,云手机的功能和真手机的基本相同,只不过我们拿不到真机。云手机平台会提供一些控制面板或者 API,使我们可以通过操控手机或者执行相应命令实现需求。

平台

目前的云手机平台还是比较多的,个人比较推荐河马云手机平台( http://www.longene.com.cn/ ),其首页如图 12-87 所示。

图12-87 河马云手机平台的首页

在这个平台上,我们可以选购相应的云手机并开通相应的服务。购买云手机之后,就可以在河马云手机平台的网页中控制相应的云手机,其功能非常丰富,包括基础控制、应用管理、IP 切换、数据备份、日志调试、实时直播、adb 调试、远程虚拟相机等,平台官网也提供了相应介绍,如图12-88 所示。

图12-88 平台官网提供的功能介绍

下面我就使用河马云手机平台来演示云手机的申请和使用过程。

购买云手机

先注册一个河马云手机平台的账号,注册之后登录,然后点击页面右上角的订购入口,即可进入订购页面,如图 12-89 所示。

图12-89 订购云手机的页面

这里有多个套餐供选择一一基础版、标准版、高级版和荣耀版,不同套餐对云主机的基本配置也不同,配置信息包括分辨率、DPI、内存、flash、cpu和版本号。本节我们是用来测试,先购买 “试用 1天的荣耀版” 套餐。

管理云手机

图12-90 支付金额后的控制台

可以点击该云手机打开控制面板,如图 12-91 所示。

在这里,我们可以控制手机屏幕做任何操作,如打开某个App、下拉查看通知栏等,和使用真机时的操作基本一致。另外,云手机的右侧有一栏基本控制项,如音量控制、返回首页键、返回上一步等。

接下来我们尝试在云手机上装一个App,在此之前,先对云手机分组,直接在控制面板操作即可,如图12-92所示。

图12-91 打开云手机的控制面板

图12-92 对云手机分组

分组完成后,点击 “应用安装/卸载” 按钮来安装 App。这里安装我们的示例 App,访问 https:/app5.scrape.center 下载安装包,安装包保存为 scrape-app5.apk 文件,然后上传这个文件,如图 12-93 所示。

图12-93 上传下载的安装包

上传之后,即可看到云主机提示 “应用同步中..”,如图 12-94 所示。稍等片刻,App 就安装好了。我们可以在云手机上查看其运行效果,如图 12-95 所示。

图12-94 即将安装好 App

图12-95 示例 App 的运行效果

至此我们成功实现了在云手机上安装和启动 App。

高级服务

云手机还有很多高级服务,如切换 IP、远程相机、消息转发、ADB调试等,点击 “配套服务” 即可查看,如图 12-96 所示。

图12-96 查看云手机的高级服务

点击 “云机预览” → “批量操作”,会弹出操作菜单,如图 12-97 所示。

图12-97 一些基本操作

对于切换IP服务,选择地域并点击 “确定”,即可切换到对应地域的IP,如图 12-98 所示。

图12-98 切换新IP

对于云机扫码功能,选择扫码云机,然后在被扫码云机上打开二维码页面,点击 “扫码” 按钮即可开始扫码,扫码成功后会执行相应的处理流程,如图 12-99 所示。

图12-99 云机扫码

ADB调试

云手机的 ADB 调试功能需要单独付费购买,购买之后,我们可以点击云机菜单中的 “调试ADB” 选项获取 ADB 远程连接信息,如图 12-100 所示。

点击之后,页面会弹出一个包含远程连接 IP 和远程连接端口的提示框,分别是 183.220.196.75 和 15998,如图 12-101 所示。

图12-100 点击 “调试ADB” 图12-101 页面提示框

那怎么连接呢?运行 adb connect 命令即可:

adb connect 183.220.196.75:15988

如果顺利的话,运行结果会包含 connected to 183.220.196.75:15998,如图12-102所示。

图12-102 连接结果

连接成功后,运行 adb devices 命令,返回结果的设备列表中就会包含一部远程的手机,如图 12-103 所示。

图 12-103 返回的设备列表

现在尝试修改一下 12.7 节的内容, 将手机的连接信息修改为该远程主机:

PACKAGE_NAME = 'com.goldze.mvvmhabit'
APK_PATH = 'scrape-app5.apk'

def run(device_uri):
controller = Controller(device_uri=device_uri,
package_name=PACKAGE_NAME,
apk_path=APK_PATH,
need_reinstall=False,
need_restart=True)

controller.init_device()
controller.run()

if **name** == '**main**':
device_uri = 'Android:///183.220.196.75:15998'
run(device_uri)

运行这段代码后,Airtest 进行了一系列初始化操作,在云手机上安装了一些和 Airtest 相关的 App,如图 12-104 所示。

然后示例 App 自动启动了,运行界面如图 12-105 所示。

图12-104 安装了和 Airtest 相关的 App

图12-105 示例 App 的运行界面

其最终的运行结果和12.7节的是相同的,爬虫控制手机点击了一个个电影条目并爬取了每部电影的详情信息,最后将信息保存下来。

总结

本节中我们了解了云手机的申请和使用方法,云手机和真机没有太大差别,甚至还在真机的基础上提供了增值服务,这在一定程度上使我们的开发和数据爬取变得更为便利。