如何从命令行启动 Android 模拟器?

新手上路,请多包涵

我在 Mac 上,从终端进行 Android 开发。我已经成功创建了 HelloWorld 项目,现在我正在尝试从 Android 模拟器中的命令行运行它。哪个命令为我的 HelloWorld 项目运行模拟器?

我的 PATH 中已经有了 Android 工具和平台工具。

编辑:

如何告诉模拟器从命令行运行我的 HelloWorld 项目?我已经用 ant 构建了这个项目。

原文由 Thierry Lam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

我假设您已经构建了项目并且只需要启动它,但是您没有创建任何 AVD,并且必须使用命令行来执行所有操作。您必须执行以下操作。

  1. 为您需要的平台创建一个新的虚拟设备 (AVD)。如果您必须使用命令行来创建您的 AVD,您可以调用 android create avd -n <name> -t <targetID> 其中 targetID 是您需要的 API 级别。如果您可以使用 GUI,只需输入 android avd 它将启动管理器,您可以在其中执行相同操作。您可以通过 GUI 和 命令行 阅读有关 AVD 管理的 更多信息。
  2. 使用命令 emulator -avd <name> 或通过之前启动的 GUI 运行 AVD。等到模拟器完全加载,这需要一些时间。您可以 在此处阅读有关其他选项的信息
  3. 现在您必须将应用程序安装到您的 AVD。通常在开发过程中您只需使用与构建项目相同的 Ant 脚本,只需选择 install 目标。但是,您可以使用命令 adb install <path-to-your-APK> 手动安装应用程序。
  4. 现在切换到模拟器并像在任何普通设备上一样通过启动器启动您的应用程序。或者,作为替代方案,您可以使用以下命令: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class> 。例如: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld 。正如评论者所建议的那样,您也可以将上述行中的 org.sample.helloworld.HelloWorld .HelloWorld ,它也可以工作。

原文由 Malcolm 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于自动化 (CI),我们执行了以下步骤:

  1. 首先,找到SDK的工具位置,并存储在变量中以备后用。
    tools=$ANDROID_HOME/cmdline-tools/latest/bin
   arch="x86_64"
   package="system-images;android-23;google_apis;$arch"

  1. 确保已下载 Android 映像。
    $tools/sdkmanager "$package"

  1. 接受许可证。
    echo yes | $tools/sdkmanager --licenses

  1. 创建 AVD。
    echo no | $tools/avdmanager create avd --force --name MyAVD --abi google_apis/$arch --package "$package"

对“是否要创建自定义硬件配置文件?…”说“不”

  1. 并行启动模拟器。
    $ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -no-snapshot -avd MyAVD > /dev/null &

  1. 构建 APK。
    ./gradlew assembleDebug

  1. 最后,Android-tests (Instrumented tests) 自动检测并在 Emulator 上运行。
    ./gradlew connectedAndroidTest

请注意,因为我们并行启动 Emulator,所以您需要等到 Emulator 准备好,并且在步骤 #7 之前。

也许用脚本计算构建时间,如果构建时间少于 Emulator-launch 所需的时间,请调用 sleep

原文由 Top-Master 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题