이 튜토리얼에서는 숨겨진 ADB 명령을 사용하여 루트 없이 Android 7.0 및 7.1 Nougat에서 앱의 백그라운드 프로세스를 정지하는 방법을 보여줍니다.
Android는 타사 애플리케이션의 자유로움 때문에 iOS에 비해 항상 더 "강력한" 모바일 플랫폼으로 간주되어 왔습니다. 이를 통해 Android 애플리케이션이 백그라운드에서 실행되는 동안 더 많은 작업을 수행할 수 있기 때문에 많은 자동화가 가능해집니다. 그러나 이는 장치에서 실행되는 백그라운드 프로세스로 인해 잠재적으로 더 많은 배터리 소모가 발생할 수 있다는 단점이 있습니다.
앱이 제공하는 이점을 위해 배터리 수명의 일부를 기꺼이 희생할 의향이 있으므로 백그라운드에서 실행되는 애플리케이션을 휴대폰에 로드하고 있다는 것을 아는 것이 중요합니다. 최적화되지 않고 원하지 않거나 필요하지 않을 때 백그라운드에서 작업을 수행하는 기존 애플리케이션을 다운로드하는 경우에는 다른 이야기입니다. Google은 애플리케이션에서 수행할 수 있는 작업에 점점 더 많은 제한을 적용하여 이 문제를 해결하기 위해 노력해 왔습니다. Android O의 출시로 가장 많은 백그라운드 프로세스/수신기 제한 사항이 적용되었습니다. 멀리.
그러나 대다수의 사용자는 지금부터 몇 달 동안(전혀 없다면) 자신의 기기에서 Android O를 볼 수 없을 것입니다. 하지만 달리고 있다면 안드로이드 7.0 또는 안드로이드 7.1, 수동으로 수행할 수 있는 간단한 방법이 있습니다. 애플리케이션이 백그라운드에서 실행되지 않도록 방지 -그리고 그거 루트가 필요하지 않습니다 또는 타사 응용 프로그램. 이는 Greenify나 Brevent와 같은 앱이 제공하는 것보다 더 강력합니다. 루트 액세스가 없으면 해당 앱이 수행할 수 있는 작업이 상당히 제한되기 때문입니다. 하지만 이 트릭을 사용하면 이제 다음과 같은 작업을 수행할 수 있습니다. Facebook이나 행아웃과 같은 앱 차단 백그라운드에서 실행되지 않습니다. 적극적으로 사용될 때만 작동합니다!
백그라운드 프로세스 제한 튜토리얼
요구사항:
- Android Nougat(7.0 또는 7.1) 기기
- 특정 장치 OEM용 USB 드라이버를 설치합니다(Google에서는 일부 OEM 목록을 제공합니다). 범용 USB 드라이버는 여기).
- 다운로드 ADB 바이너리 특정 OS(윈도우, 맥, 리눅스). 이러한 링크는 항상 최신 버전의 바이너리를 가리킵니다.
- PC에서 쉽게 액세스할 수 있는 폴더에 ZIP 파일의 내용을 추출합니다.
- 휴대폰의 설정 앱으로 이동하여 휴대폰 정보 옵션을 탭하세요.
- 빌드 번호를 찾아 7번 탭하면 개발자 모드가 활성화됩니다.
- 설정 메인 메뉴로 돌아가서 개발자 옵션에 들어가서 USB 디버깅 모드를 활성화하세요.
- 휴대폰을 컴퓨터에 연결하고 "충전 전용" 모드에서 "파일 전송(MTP)" 모드로 변경하세요. 이는 모든 장치에 필요한 것은 아니지만 많은 장치에서는 ADB가 작동하기 전에 보안 조치로 이를 요구합니다.
- PC로 돌아가서 ADB 바이너리를 추출한 디렉터리로 이동합니다.
- ADB 디렉터리에서 명령 프롬프트 또는 터미널을 실행합니다. Windows 사용자의 경우 Shift 키를 누른 채 마우스 오른쪽 버튼을 클릭한 다음 "여기에서 명령 프롬프트 열기" 옵션을 선택하면 됩니다. (일부 Windows 10 사용자의 경우 "명령 프롬프트"가 "PowerShell"로 대체되어 표시될 수 있습니다.)
- 명령 프롬프트 또는 터미널 환경에 있으면 다음 명령을 입력하십시오.
adb devices
- 아직 시작되지 않은 경우 ADB 데몬이 시작됩니다. 완료될 때까지 기다리세요. ADB를 처음 실행하는 경우 휴대폰에 컴퓨터 연결을 승인하라는 메시지가 표시됩니다. 여기에서 USB 디버깅 액세스를 허용하세요.
- 이제 10단계에서 adb devices 명령을 다시 실행하면 명령 프롬프트/터미널이 장치의 일련번호를 인쇄합니다. 그렇다면 다음 단계로 넘어갈 준비가 된 것입니다. 그렇지 않으면 USB 드라이버가 제대로 설치되지 않았을 가능성이 높습니다.
- 그런 다음 백그라운드 프로세스를 동결하려는 애플리케이션의 패키지 이름을 찾아야 합니다. 이 작업은 다음을 설치하여 수행할 수 있습니다. 앱 검사기 귀하의 휴대 전화에 응용 프로그램입니다.
- 명령 프롬프트로 돌아가서 다음 명령을 입력합니다.
adb shell
- 이제 다음 명령을 실행하여 애플리케이션의 백그라운드 프로세스를 해제합니다.
cmd appops set
RUN_IN_BACKGROUND ignore - 방금 변경한 내용을 되돌리고 앱의 백그라운드 프로세스를 다시 허용하려면 다음 명령을 입력하세요.
cmd appops set
RUN_IN_BACKGROUND allow - 다른 ADB 쉘 프롬프트로 돌아가고 오류 메시지가 표시되지 않으면 작동한다는 것을 알 수 있습니다.
설명
이 명령이 정확히 작동하는 방식은 설정 앱에서 일반적으로 사용자가 액세스할 수 없는 숨겨진 권한을 제한할 수 있다는 것입니다. 이 권한을 RUN_IN_BACKGROUND 권한이라고 하며 수정할 수 있는 유일한 방법은 "cmd"를 사용하는 것입니다. appops"는 Google의 사용자 대상 권한 관리 시스템인 "App Ops"의 명령줄 인터페이스입니다.
Google은 모든 애플리케이션이 암시적 브로드캐스트 인텐트(예: 앱이 백그라운드에서 깨어나는 것) 또한 해당 애플리케이션이 JobScheduler를 사용하지 않고 백그라운드 서비스를 예약하는 것을 방지합니다(예: 앱이 부적절한 시간에 깨어나 배터리를 소모합니다). 이 명령은 실제로 낮은 메모리 조건에서 앱이 어떻게 작동하는지 시뮬레이션하려는 개발자만 사용하기 위한 것이지만 다행히도 우리가 직접 사용할 수 있습니다.
앱의 백그라운드 서비스 및 매니페스트에 등록된 암시적 브로드캐스트 수신기에 대한 종속성을 제거함으로써 개발자는 메모리가 부족한 장치에서 더 잘 실행되도록 애플리케이션을 최적화할 수 있습니다. Google은 이러한 유형의 장치 또는 메모리가 부족한 장치에 최적화된 응용 프로그램이 성능과 사용자 경험을 모두 향상시킬 수 있다고 말합니다. 올해 Google I/O에서 회사는 다음과 같이 발표했습니다. Android Go라는 Android의 수정된 버전, 이는 메모리가 매우 낮은 스마트폰에 사용될 것이므로 해당 플랫폼을 목표로 하는 개발자에게 이 명령이 유용할 것이라고 추정합니다.
어떤 경우든 이 명령은 일반 사용자에게 매우 유용할 수 있지만 여기서 제한하는 내용에 주의하세요. 행아웃이나 Facebook과 같은 앱은 열 때까지 백그라운드에서 동기화가 완전히 중단됩니다. 이것이 당신이 목표로 하는 것이라면 괜찮을 것입니다. 하지만 백그라운드 수신기에 의존하는 앱에서 이 명령을 실행하면 이메일이나 메시지가 지연되더라도 놀라지 마세요.