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


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


조회수 253


1 답변


좋아요
2
싫어요
채택취소하기

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

일단 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) )

  • 2016년 03월 30일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

  • 친절한 답변 정말 감사합니다!!    Hyunjoong Kim   2016.3.30 16:34     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close