前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[1159]adb判断手机屏幕状态并点亮屏幕

[1159]adb判断手机屏幕状态并点亮屏幕

作者头像
周小董
发布于 2022-09-26 02:38:34
发布于 2022-09-26 02:38:34
2K00
代码可运行
举报
文章被收录于专栏:python前行者python前行者
运行总次数:0
代码可运行
  • 唤醒屏幕操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
os.system("adb shell input keyevent KEYCODE_POWER")
or
os.system('adb shell input keyevent 26')
  • 解锁屏幕
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 屏幕从(500700)滑动到(500,50),延迟200号,毫秒
os.system("adb -s shell input swipe 500 700 500 50 200" )
# 输入密码
os.system('adb shell input text 1111')
  • 关闭和开启屏幕样例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import datetime,os

# 手机电源开关
def power_switch(device='',p_num='0号'):
    hour = datetime.datetime.today().strftime('%H')
    adb_msg = os.popen('adb -s %s shell dumpsys window policy' % device)
    phone_msg = adb_msg.buffer.read().decode(encoding='utf-8')
    # 10:00~21:00,使手机处于亮屏和解锁状态
    if '10' <=hour <= '21':
        if 'mAwake=true' in phone_msg and 'mInputRestricted=false' in phone_msg:
            print('%s手机,亮屏时段,####已亮屏,已解锁####'%p_num)
            logger.info('%s手机,亮屏时段,####已亮屏,已解锁####'%p_num)
        elif 'mAwake=true' in phone_msg:
            print('%s手机,亮屏时段,****已亮屏,执行解锁****'%p_num)
            logger.info('%s手机,亮屏时段,****已亮屏,执行解锁****' % p_num)
            # 屏幕从(500700)滑动到(500,50),延迟200号,毫秒
            os.system("adb -s %s shell input swipe 500 700 500 50 200" % device)
        else:
            print('%s手机,亮屏时段,====执行亮屏和解锁====' % p_num)
            logger.info('%s手机,亮屏时段,====执行亮屏和解锁====' % p_num)
            os.system("adb -s %s shell input keyevent KEYCODE_POWER" % device)
            # 屏幕从(500700)滑动到(500,50),延迟200号,毫秒
            os.system("adb -s %s shell input swipe 500 700 500 50 200" % device)
    else:
        # 处于息屏状态
        if 'mAwake=true' in phone_msg:
            print('%s手机,非亮屏时段,====已亮屏,关闭亮屏====' % p_num)
            logger.info('%s手机,非亮屏时段,====已亮屏,关闭亮屏====' % p_num)
            os.system("adb -s %s shell input keyevent KEYCODE_POWER" % device)
        else:
            print('%s手机,非亮屏时段,====未亮屏====' % p_num)
            logger.info('%s手机,非亮屏时段,====未亮屏====' % p_num)
  • 重新启动手机app
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mFocusedActivity = os.popen("adb shell dumpsys activity | grep 'mFocusedActivity' | awk '{print $4}' | awk -F '/' '{print $1}'").read().strip('\n')
if mFocusedActivity == 'com.eg.android.AlipayGphone':
    print("APP已启动,停止APP,等待重新启动")
    os.system('adb shell am force-stop com.eg.android.AlipayGphone')
    time.sleep(1)
    print("启动app")
os.system('adb shell am start -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin activity')

以上操作需要adb环境已经搭建好,使用以下命令查看连接设备

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\enmonster>adb devices
List of devices attached
97dc2d9 device

想获取某个APP名称用于启动时,手机先打开APP,然后执行以下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell dumpsys window windows |grep "Current"

参考:https://www.cnblogs.com/Kirito-Asuna-Yoyi/p/Python-ADB1.html https://blog.csdn.net/weixin_40895135/article/details/121487532 https://wenku.baidu.com/view/60353365e75c3b3567ec102de2bd960590c6d9db.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
adb 常用命令解析
adb shell dumpsys activity activities | grep mFocusedActivity
测试开发社区
2022/11/16
1.7K0
Android自动化测试探索(一)adb详细介绍
adb,即Android Debug Bridge,它是Android开发/测试人员不可替代的强大工具
周希
2019/10/15
2.7K0
必须掌握的ADB命令 | 让你的测试事半功倍
ADB的全称是Android Debug Bridge,是一个与模拟器或者连接设备通讯的桥梁。ADB是CS结构包含三个部分:
京东技术
2018/07/30
8.7K0
必须掌握的ADB命令 | 让你的测试事半功倍
如何保持Android设备屏幕常亮?
在做客户端UI自动化测试或者Monkey自动化测试中,使用jenkins中持续集中测试,经常会遇到因为设备原因导致执行任务失败的Case。
测试加
2022/12/05
4.6K0
如何保持Android设备屏幕常亮?
一篇清晰易懂的Python操控手机APP攻略!
最近由于一直处于在家远程办公状态,新的一年,很多公司、部门事情要处理,比较忙,公号原创文的创作速度明显减慢!亲爱的读者们,你们都等着急了吧。
测试开发技术
2020/02/28
7.2K1
一篇清晰易懂的Python操控手机APP攻略!
android adb shell 常用命令
mac: /Users/xx/Library/Android/sdk/tools/bin archquery jobb monkeyrunner sdkmanager avdmanager lint screenshot2 uiautomatorviewer
tea9
2022/09/08
3.5K0
盘点Python编程的简易版自动化工具——ADB史上全操作
ADB,中文名安卓调试桥,它是一种功能多样的命令行工具,可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
前端皮皮
2021/05/18
2.3K0
盘点Python编程的简易版自动化工具——ADB史上全操作
再说adb
之前其实已经写过好几篇过于adb的文档了,而且基本上说的已经比较全了。奈何adb就是这么好用,而且就是这么强大,因此今天再对一些开发者使用很频繁但是之前说的并不详细的内容进一步说明下。(其实主要是把一些常用的命令列一下) 复习一下 之前已经写过三篇关于ADB的文章了,也在这里汇总一下。算作大纲吧。 ADB Base Command点击查看 重点介绍一些基本的adb命令,例如devices,start-server,kill-server,install,uninstall,push,pull,bugrepo
子勰
2018/05/22
8430
玩转ADB命令(ADB命令使用大全)
我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,更深的就不知道了,其实我们完全可以了解多一点,有一些不常用的场景我们至少应该知道它可以做到,比如,我们知道adb install 却不知道adb shell am start。前者是用来安装软件,后者用来打开软件,后者的一个使用场景让我对他重视:公司定制Android系统,在调试屏幕的时候要看是否满屏验证驱动是否正常,比较麻烦的做法是要拿到Android开发者手里用eclipse或者其他ide安装打开。显然相对于驱动人员连上数据线使用adb命令要复杂得多。因此,了解多一点还是很有必要的。
全栈程序员站长
2022/08/27
9.7K0
玩转ADB命令(ADB命令使用大全)
[python][企业微信]企业微信自动打卡Python脚本,价值一万元的自动打卡脚本
[python][企业微信]企业微信自动打卡Python脚本 价值一万元的自动打卡脚本
landv
2020/05/12
4.2K0
Android开发必须知道的adb命令大全
Android adb 命令大全 描述 命令 1、查询已连接设备/模拟器 adb devices 2、指定设备获取屏幕分辨率 adb -s 设备号 shell wm size 3、给指定设备安装应用 adb -s 设备号 install test.apk 4、启动 adb server 命令 adb start-server 5、停止 adb server 命令 adb kill-server 6、查看adb版本 adb version 7、指定 adb server 的网络端口 adb -P sta
用户7557625
2020/07/15
1.3K0
adb命令大全,保存以备参考
adb root //restarts adb with root permissions
孟船长
2023/12/14
5140
adb命令大全,保存以备参考
Android自动化之-ADB与ADB shell常用命令
针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。
十四君
2019/11/23
5.9K1
ADB常用命令及其用法大全「建议收藏」
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 ADB 命令以图形化的形式实现了,但是了解一下还是有必要的。 注: 有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。
全栈程序员站长
2022/08/12
5.5K0
ADB常用命令及其用法大全「建议收藏」
adb下载安装及使用[通俗易懂]
adb介绍: Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 ADB是一个C/S架构的应用程序,由三部分组成: 运行在pc端的adb client: 命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求; 运行在pc端的adb server: ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上; 运行在设备端的常驻进程adb demon (adbd): 程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
全栈程序员站长
2022/08/10
9.9K0
adb下载安装及使用[通俗易懂]
appium+python自动化38-adb按键操作(keyevent)
接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作
上海-悠悠
2018/07/25
2K0
appium+python自动化38-adb按键操作(keyevent)
adb(Android Debug Bridge,Android调试桥)常用命令
说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android 调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率, ADB 的命令有很多,今天就来整理下我在开发常用到的一些 ADB 命令。
ihoey
2018/10/31
1.8K0
adb控制手机屏幕滑动(批处理)
一般情况下,adb 通过 USB 与设备进行通信,但您也可以在通过 USB 完成一些初始设置后通过 WLAN 使用 adb,如下所述。不过,如果您开发的是 Wear OS 应用,则应参阅调试 Wear OS 应用指南,其中提供了有关如何通过 WLAN 和蓝牙使用 adb 的特别说明。
JQ实验室
2022/02/10
2.9K0
ADB常用命令整理(全网最全)
调试Android程序时,我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。
天天Lotay
2023/10/15
13.4K0
安卓测试常用的 ADB 命令
    adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。  1.通过adb可以轻松的执行Linux Shell命令,如adb shell dir 就是列举目录,在Linux中根目录为/而不是Windows上的C盘、D盘。  2.安装apk程序到模拟器则执行adb install android123.apk,这样名为android123的安装包就会安装到Android模拟器中,前提是android123.apk文件需要放到SDK/Tools目录下。  3.向emulator传送文件, 使用adb push android123.txt /tmp/android123.txt命令可以把SDK/Tools下的android123.txt文件传输到模拟器的/tmp/文件夹中,需要注意的是/tmp/文件夹中内容会在Android模拟器重新启动时清空。  4.从Android仿真器中回传文件到电脑 
测试之道
2021/03/04
5.2K0
相关推荐
adb 常用命令解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验