是否有可能在主机上停止Android应用程序?喜欢的东西:
adb stop com.my.app.package
这会大大加快我们的测试过程。现在,我们每次卸载/安装应用程序,以确保手动测试用例以干净的状态开始。
是否有可能在主机上停止Android应用程序?喜欢的东西:
adb stop com.my.app.package
这会大大加快我们的测试过程。现在,我们每次卸载/安装应用程序,以确保手动测试用例以干净的状态开始。
当前回答
编辑:在我写了这篇文章并被接受为答案后很长时间,am强制停止命令被Android团队实现了,就像在这个答案中提到的那样。
或者:而不是仅仅停止应用程序,因为你提到想要一个“干净的石板”为每次测试运行,你可以使用adb shell pm clear com.my.app。包,它将停止应用程序进程并清除该应用程序的所有存储数据。
如果你使用的是Linux: Adb shell ps | grep com。Myapp | awk '{print $2}' | xargs adb shell kill
这只适用于在运行shell时立即拥有root权限的设备/模拟器。可以稍微改进一下,预先调用su。
否则,你可以这样做(手动,或者我认为脚本): PC $ adb -d shell Android $ su Android # ps Android # kill <进程id from ps output>
其他回答
您可以从设备控制台使用以下命令:PM禁用com.my.app.package,这会杀死它。然后使用pm enable com.my.app.package,这样就可以再次启动它。
如果您可以访问应用程序包,那么您可以使用-r选项进行安装,如果进程当前正在运行,它将作为副作用杀死进程。是这样的:
adb -d install -r MyApp.apk;adb -d shell am start -a android.intent.action.MAIN -n com.MyCompany.MyApp/.MyActivity
-r选项保留当前与应用程序相关的数据。然而,如果你想要一个干净的石板,你可能不想使用该选项。
编辑:在我写了这篇文章并被接受为答案后很长时间,am强制停止命令被Android团队实现了,就像在这个答案中提到的那样。
或者:而不是仅仅停止应用程序,因为你提到想要一个“干净的石板”为每次测试运行,你可以使用adb shell pm clear com.my.app。包,它将停止应用程序进程并清除该应用程序的所有存储数据。
如果你使用的是Linux: Adb shell ps | grep com。Myapp | awk '{print $2}' | xargs adb shell kill
这只适用于在运行shell时立即拥有root权限的设备/模拟器。可以稍微改进一下,预先调用su。
否则,你可以这样做(手动,或者我认为脚本): PC $ adb -d shell Android $ su Android # ps Android # kill <进程id from ps output>
停止应用程序的干净方法是:
adb shell am force-stop com.my.app.id
这样就不需要计算进程ID。
首先,将应用程序放到后台(按下设备的home键)
然后……在终端....
adb shell am kill com.your.package