Android app 'Smart app protector'에 대해 질문드립니다.

조회수 2043회

안녕하세요. android를 공부하는 대학생입니다. android를 공부하는 도중, smart app protector라는 일종의 잠금 앱을 발견하였는데, 이 앱은 자신이 지정한 앱을 설정하고 그 후에, 설정된 앱을 키게되면 오류창이 뜨게하면서 강제로 종료시키게 됩니다. A의 앱이 B의 앱을 강제로 종료시킬 수 있는지 궁금합니다! 혹시 가능하다면 어떤 기술로 이게 구현된 것인지도 궁금합니다!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 앱을 확실히 종료 시키는 방법은 잘 모르겠습니다만, 종료시키려고 노력하는 코드 조각은 다음과 같습니다.

    일단 manifest에 다음과 같은 권한을 부여합니다. (프로요버전 이후)

    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    

    프로그램을 종료 시킬려면 다음과 같은 코드가 필요로 합니다.

    ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
    manager.killBackgroundProcesses("앱의 패키지 이름");
    

    다만 옛날과 달리 지금의 안드로이드는 저렇게 요청을 한다고 해서, 꼭 앱을 종료시키지는 않습니다. 안드로이드 프로세스 관리 전략인 프로세스의 상태에 따라 중요하지 않은 프로세스만을 선별적으로 종료시키게 됩니다.

    그래도 강제로 죽이고자 한다면... 실행중인 앱의 pid를 구해와서, KILL 시그널은 먼저 보낸 후 시도해보세요. 좋은 방법이라고 할 순 없지만, 종료시킬 가능성이 조금 더 높아집니다.

    android.os.Process.sendSignal(pid, android.os.Process.SIGNAL_KILL);
    

    안드로이드 개발문서 참조 하기 ( http://developer.android.com/reference/android/app/ActivityManager.html#killBackgroundProcesses(java.lang.String) )

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)