如何通过Python使用ppadb在安卓设备上启动指定应用?
正确实现方法
你可以直接用 Android 系统自带的 am 命令完成应用启动,不需要依赖界面坐标操作,完全符合你的需求。
只知道包名的最简写法(不需要提前获取启动Activity)
直接替换你代码里的phone.shell(????????????????)为如下内容即可,仅需传入你要启动的应用包名:
# 替换com.your.target.package为你要启动的应用的实际包名 phone.shell("monkey -p com.your.target.package -c android.intent.category.LAUNCHER 1")
这个方案会自动匹配目标应用的桌面启动入口Activity,无需额外查询Activity信息。
已知启动Activity的写法
如果你明确知道目标应用的启动Activity全称(格式为包名/Activity类名,比如com.tencent.wechat/.ui.LauncherUI),可以用更稳定的am start命令:
phone.shell("am start -n com.tencent.wechat/.ui.LauncherUI")
额外优化建议
- 你当前代码里的
phone.shell行写在了if __name__ == '__main__'代码块外部,运行时会因为找不到phone变量报错,需要缩进放到main块内包名遍历逻辑之后。 - 不要用
list作为变量名,会覆盖Python内置的list关键字,建议改成package_list之类的命名。 - 启动应用前可以加个包名校验逻辑,避免目标包不存在导致执行失败:
target_package = "com.your.target.package" package_list = phone.list_packages() if target_package in package_list: phone.shell(f"monkey -p {target_package} -c android.intent.category.LAUNCHER 1") else: print(f"未找到应用{target_package}")
- 如需关闭应用可以调用
phone.shell(f"am force-stop {target_package}")。
内容的提问来源于stack exchange,提问作者Pythonista
相关产品推荐
相关产品推荐

