是否有可能在主机上停止Android应用程序?喜欢的东西:

adb stop com.my.app.package

这会大大加快我们的测试过程。现在,我们每次卸载/安装应用程序,以确保手动测试用例以干净的状态开始。


当前回答

“stop”命令实现为force-stop;停止后台应用程序运行。如果它在前景,它也会停止。

adb shell am force-stop com.android.providers.telephony

清理包也删除他们的数据,如。

adb shell pm clear com.android.providers.telephony

会删除你所有的短信吗

你要小心选择哪一个。

其他回答

pkill NAMEofAPP

无根棉花糖,termux和终端模拟器。

如果你只是想干掉一个包裹

pkill package_name 

应该工作

首先,将应用程序放到后台(按下设备的home键)

然后……在终端....

adb shell am kill com.your.package

如果您的目标是一个非根设备和/或APK中有您不想停止的服务,那么其他解决方案将不起作用。

为了解决这个问题,我在活动中添加了一个广播消息接收器来阻止它。

public class TestActivity extends Activity {
    private static final String STOP_COMMAND = "com.example.TestActivity.STOP";

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            TestActivity.this.finish();
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //other stuff...

        registerReceiver(broadcastReceiver, new IntentFilter(STOP_COMMAND));
    }
}

这样,你可以发出这个adb命令来停止你的活动:

adb shell am broadcast -a com.example.TestActivity.STOP

停止应用程序的干净方法是:

adb shell am force-stop com.my.app.id

这样就不需要计算进程ID。