You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Appium-Python启动Android应用指定Activity?

使用Appium的mobile: startActivity启动指定Android Activity

mobile: startActivity是Appium替代旧版start_activity的扩展命令,本质是通过执行脚本调用Appium的扩展接口,核心是传对两个必填参数:

核心参数说明

  • appPackage: 目标应用的包名(比如微信的包名是com.tencent.mm)
  • appActivity: 要启动的Activity完整类名(比如微信的主Activity是com.tencent.mm.ui.LauncherUI)

不同语言的示例代码

Python 示例

假设你已经初始化好了Appium Driver实例(比如driver),直接调用execute_script即可:

# 替换成你的应用包名和Activity名
driver.execute_script('mobile: startActivity', {
    'appPackage': 'com.example.your_app',
    'appActivity': 'com.example.your_app.TargetActivity'
})

Java 示例

同样基于已初始化的AndroidDriver实例:

import java.util.HashMap;

// 构造参数Map
HashMap<String, String> activityParams = new HashMap<>();
activityParams.put("appPackage", "com.example.your_app");
activityParams.put("appActivity", "com.example.your_app.TargetActivity");

// 执行扩展命令
driver.executeScript("mobile: startActivity", activityParams);

怎么找自己应用的包名和Activity?

新手最头疼的就是不知道这两个值,用adb命令就能搞定:

  1. 打开你的应用,切换到要启动的目标Activity页面
  2. 在电脑终端执行:
adb shell dumpsys window | grep mCurrentFocus
  1. 输出结果类似mCurrentFocus=Window{xxxx u0 com.example.your_app/com.example.your_app.TargetActivity},其中com.example.your_app是包名,后面的com.example.your_app.TargetActivity就是Activity完整类名。

注意事项

  • 确保你的Appium服务器是较新版本(建议用最新稳定版,避免兼容性问题)
  • 驱动实例必须处于正常连接状态(设备没断开,Appium服务没崩溃)
  • 如果目标Activity需要特定权限,要提前让应用获取到这些权限,否则可能启动失败
  • 启动后如果需要等待Activity加载完成,可以配合显式等待(比如Python的WebDriverWait,Java的WebDriverWait)或者driver.wait_activity()(Python专属)

内容的提问来源于stack exchange,提问作者YanaK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:22:48