Programming

콘솔에서 Android 앱 중지

procodes 2020. 5. 15. 22:38
반응형

콘솔에서 Android 앱 중지


콘솔에서 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 

작동해야합니다


일식에서 DDMS 퍼스펙티브로 이동하고 장치 탭에서 종료하려는 장치 아래에서 종료하려는 프로세스를 클릭하십시오. 그런 다음 중지 버튼을 누르면 프로세스가 종료됩니다.

I'm not sure how you'd do this from the command line tool but there must be a way. Maybe you do it through the adb shell...


adb shell killall -9 com.your.package.name

according to MAC "mandatory access control" you probably have the permission to kill process which is not started by root

have fun!


pkill NAMEofAPP

Non rooted marshmallow, termux & terminal emulator.

참고URL : https://stackoverflow.com/questions/3117095/stopping-an-android-app-from-console

반응형