콘솔에서 Android 앱을 중지 할 수 있습니까? 다음과 같은 것 :
adb stop com.my.app.package
테스트 프로세스가 너무 빨라질 것입니다. 지금은 수동 테스트 사례가 깨끗한 상태로 시작되도록 매번 앱을 제거 / 설치합니다.
답변
편집 : 나는이 게시물을 작성한 사람과는 응답으로, 허용 된 후 긴 am force-stop
명령했다 구현 에 언급 한 바와 같이, 안드로이드 팀 이 답변 .
또한 : 오히려 당신이, 당신이 사용할 수있는 각 테스트 실행에 대해 “깨끗한 슬레이트”을 원하는 말할 것도 있기 때문에 그냥 응용 프로그램을 중지하는 것보다 adb shell pm clear com.my.app.package
응용 프로그램 프로세스를 중지 할, 그리고 그 응용 프로그램에 저장된 모든 데이터를 지 웁니다.
Linux를 사용하는 경우 :
adb shell ps | grep com.myapp | awk '{print $2}' | xargs adb shell kill
쉘을 실행하자마자 루트가있는 장치 / 에뮬레이터에서만 작동합니다. su
미리 전화해서 약간 다듬을 수 있습니다 .
그렇지 않으면 (수동으로 또는 스크립트로 가정) 할 수 있습니다.
pc $ adb -d shell
android $ su
android # ps
android # kill <process id from ps output>
답변
앱을 중지하는 가장 좋은 방법은 다음과 같습니다.
adb shell am force-stop com.my.app.package
이렇게하면 프로세스 ID를 알 필요가 없습니다.
답변
먼저 앱을 백그라운드에 놓습니다 (기기의 홈 버튼을 누름)
그런 다음 …. 터미널에서 ….
adb shell am kill com.your.package
답변
장치 콘솔에서 다음을 사용할 수 있습니다 pm disable 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 옵션은 현재 앱과 관련된 데이터를 유지합니다. 그러나 언급 한 것처럼 깨끗한 슬레이트를 원하면 해당 옵션을 사용하지 않을 수 있습니다.
답변
루팅되지 않은 기기를 타겟팅하거나 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
답변
당신이 찾고있는 모든 패키지를 죽이고있다
pkill package_name
작동해야합니다