python可以做手机应用吗,Python做手机APP
最近经常看到用Python操作手机APP的项目,比如Tik Tok、闲鱼。看了这些项目,发现都需要部署亚行环境。至于亚行是什么,很多大神都讲过,但是写的很专业。等菜鸟看的时候还是稀里糊涂的。
为了让没有Android开发经验的人能够快速学会如何使用Python操作手机APP,我从Android SDK部署、ADB的基础应用、Python操作手机等方面写了这篇文章。目的是让大家对亚行的使用有一个直观的认识,这样玩上面说的这些项目会比较容易。
事先声明:本文涉及的各种操作可能有多种实现方式,我只提其中一种,我采用的方法很可能不是最好的。
1.Android SDK下载和部署
说起Android SDK工具,还真不少,包括SDK工具,SDK,Platform-tools等。这里我推荐SDK工具。在https://www.androiddevtools.cn/,进入这个网站,选择你对应的系统版本(zip版本)下载,可以看到下图的界面。
解压下载的文件,运行management文件,进入软件包安装管理界面。对于新手朋友,我建议直接使用默认选项,然后点击右下角的安装XX包按钮。整个下载安装过程大概需要几分钟,具体时间和个人网速有关。
然后是配置环境变量,将android-sdk目录下的platform-tools和tools文件夹添加到系统变量中。这一步是常规操作,不再演示。
执行以上步骤后,即使配置了ADB环境,之后你需要做的就是打开手机的开发者选项,打开usb调试,用USB线把手机和电脑链接起来。
接下来进入关键步骤——,测试手机是否通过ADB连接成功。进入系统终端,输入adb设备命令。如果出现下图所示的结果,说明刚才环境已经部署成功,连接的设备号在设备前面。
如果连接测试不成功,比如找不到设备或者设备连接不上,可以尝试关机重新开始调试,重启手机,重启电脑,插拔USB线等。通常可以解决。
2.2的一些基本操作。亚洲开发银行(Asian Development Bank)
虽然是基本操作,但是ADB命令还是挺多的,一时半会大家很难消化。所以我就简单列举几个常用的操作手机APP的指令,都是基本操作。
1).显示所有包名。
adbshellpmlistpackages
本说明将列出手机上安装的所有应用程序包的名称。如果使用参数-s添加后缀,将列出所有系统应用程序的名称(如下),而后缀参数-3将列出所有第三方应用程序的名称。
2).显示活动程序。
adbshelldumpsys活动活动
这个命令可以获取当前移动电话系统中运行的包的名称。比如我在手机里启动小米手机的“游戏中心”,运行上面的命令会得到下图的信息:
图中realActivity后面的参数是当前运行的活动的名称。如果你稍微注意一下,你会发现这个名字比上面的包名更详细。至于这个名字的用法,我们马上就提。
3)启动应用程序。
Adbshellamstart -n要启动的应用程序活动的名称。
这里使用的活动名称是刚刚获得的realActivity后面的参数。使用该指令时,需要注意的是,启动APP必须使用前一条命令获取的活动名,不能使用adb shell pm list packages命令获取的包名。例如,如果我们想启动小米的游戏中心,我们可以使用命令:
adbshellamstart-ncom . Xiaomi . game center/. ui . maintain b activity
但是,如果使用以下命令,应用程序将无法顺利启动:
adbshellamstart-ncom . Xiaomi . game center
4).停止应用程序
Adshell amforce-stop应用程序名称停止。
该命令将强制停止指定的应用程序,这与程序的启动略有不同。当停止应用程序时,您可以只使用通过adb shell pm list packages命令获得的包名。以小米的游戏中心为例。停止使用以下ins
adbshellamforce-stop com . Xiaomi . game center
5).单击指定的位置。
adbshellinputtapxy
这个指令很容易理解。它模拟点击手机屏幕上的某个位置,(x,y)是对应的位置坐标。在ADB中,默认手机屏幕左上角坐标为(0,0),右下角坐标为(xmax,ymax)。
这里要强调一点:
要使用模拟点击功能,必须通过USB调试或者点击模拟来设置手机修改的权限。之后的滑动手机屏幕、输入短信等功能也需要同样的设置。
6).滑动手机屏幕。
adbshellinputswipe x _ start y _ start x _ end y _ end
这个指令的本质是使坐标为(x_start,y_start)的点移动到(x_end,y_end)的坐标位置,从而达到屏幕滑动的效果。
7).输入文本信息。
要输入的Adbshellinputtext字符
这个指令没什么好解释的。只需选择相应的位置,然后输入相应的字符。
8).模拟手机按键。
adbshellinputkeyeventX
现在大部分手机除了常规的键盘字符之外,还有一些特殊的按键,比如HOME键,音量/-,还有软键盘中有时会出现的确认键等等。这些按键的模拟可以通过上面的指令来实现。
其中X对应于特殊键的数量。以下是一些常见的例子(还有许多其他特殊的键):
3对应于HOME键。
24对应于体积
25对应于体积-
66对应于确认键。
9).获取元素位置。
细心的朋友现在可能会发现,上面提到的一些关于模拟点击和输入的命令,涉及到手机元素的定位。那么我们在实践中如何确定具体的坐标位置和元素信息呢?在这里,我建议使用工具uiautomatorviewer.bat,它将与SDK工具一起安装,就在tools目录下。
看下图。手机连接成功后,点击左上角绿色图标,即可获得手机当前页面信息。然后,您可以单击屏幕左侧的任何位置或元素,相关信息将显示在屏幕右侧。
是不是感觉和用chrome分析网页很像?有了这些信息,使用上述说明操作手机就不成问题了。
3.Python控制着移动应用程序
1).命令行操作
前面讲了亚行控制手机的一些基本操作。只是理论太枯燥了。现在让我们做一个小实验来看看效果。
我们以小米的游戏中心为例,利用ADB依次完成以下任务:
切换到“在线游戏”选项卡和命令:adb shell输入tap 400 263
选择搜索栏和命令:adb shell input tap 776 139。
输入“wangzherongyao”,命令:ADB shell输入文本wangzherongyao。
点击确认键,指令为adb shell input keyevent 66。
进入王者荣耀的游戏页面,指令是adb shell输入tap 600 500。
2).Python脚本操作
从上面的演示视频来看,使用ADB操作手机APP还是比较成功的,但是如果像刚才那样一条一条的输入指令,可能就没有直接操作手机那么方便了,所以我们需要使用Python脚本使其批量自动运行。
Python可以借助os.system()函数执行终端指令。让我们看看下面的代码:
上面代码实现的功能和我们之前演示的基本相同,主要是增加了一个打开游戏中心的操作,简化了一些中间步骤。
总结:
今天的文章讲的是亚行的入门操作。我不知道ADB中很多与Android APP相关的做法无法实现,但是仅仅学习这些还不足以实现一个像样的控制脚本。如果想了解更多Python相关的学习教程,请关注!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。