사실, 안드로이드 휴대폰의 남은 메모리 용량에 크게 신경 쓸 필요는 없습니다. 많은 사람들이 다른 시스템을 사용하는 습관을 안드로이드 휴대폰에 그대로 가져오는데, 모든 스마트폰 시스템이 똑같이 만들어진 것은 아닙니다. 대부분의 안드로이드 앱이 종료되지 않는 것은 사실 시스템의 프로세스 스케줄링 메커니즘과 관련이 있습니다. 자바를 안다면 이 메커니즘을 더 잘 이해할 수 있습니다. 실제로 자바의 쓰레기 수거 메커니즘과 유사하게 시스템에는 메모리를 복구하는 규칙이 있습니다. 메모리 스케줄링은 임계값이며, 이 임계값 이하에서만 사용자가 닫을 필요가 없는 항목 목록을 기반으로 시스템이 작동합니다. 물론 이 값은 기본적으로 작은 값으로 설정되어 있으므로 메모리가 항상 작은 값 주변을 맴도는 것을 볼 수 있습니다. 하지만 실제로 속도에는 영향을 미치지 않습니다. 오히려 다음 애플리케이션의 실행 속도가 빨라집니다. 이것은 안드로이드의 장점 중 하나이며 인위적으로 프로세스를 닫을 필요가 없습니다. 특히 프로세스를 자동으로 닫는 소프트웨어.
그렇다면 메모리가 부족한데 왜 대용량 프로그램을 실행하는 것이 느린가요? 사실 아주 간단합니다. 메모리가 거의 남지 않은 상태에서 대용량 프로그램을 열면 시스템 자체의 스케줄링 정책이 트리거되는데, 이는 특히 프로그램이 시스템에 메모리를 자주 요청하는 경우 시스템 리소스를 소모하는 작업입니다. 이 경우 시스템은 열려 있는 모든 프로세스를 닫지 않고 선택적으로 닫으며, 잦은 스케줄링으로 인해 자연스럽게 시스템 속도가 느려집니다.
그렇다면 프로세스 관리 소프트웨어에 어떤 가치가 있을까요? 사실, 여전히 존재합니다. 일부 프로세스는 대규모 프로그램을 실행하기 전에 수동으로 종료하여 메모리를 확보할 수 있으므로 실행 속도를 크게 높일 수 있습니다. 하지만 일부 소규모 프로세스는 시스템 자체에서 관리할 수 있습니다. 많은 친구들이 여전히 프로그램을 종료하지 않으면 전력이 더 많이 소모되나요? 여기에서도 설명하지만, 안드로이드 앱은 백그라운드로 전환되고 실제로 일시 중단되었으며 CPU 리소스를 소비하지 않고 실행 상태를 유지합니다. 그렇다면 왜 일부 프로그램은 메인 인터페이스로 다시 들어가기 위해 크롭되는 걸까요? 하지만 프로그램이 음악 재생과 같이 백그라운드에서 무언가를 처리하려는 경우 서비스를 시작하고, 이 서비스는 백그라운드에서 계속 실행될 수 있으므로 서비스가 있는 앱만 백그라운드에서 전력을 소비합니다. 이것은 서비스라고 하는 프로세스 관리 소프트웨어에서 볼 수 있습니다. 따라서 서비스가 없는 애플리케이션은 백그라운드에서 전력을 소비하지 않으므로 종료할 필요가 없습니다. 이 디자인은 매우 좋은 디자인이며 다음에 응용 프로그램을 시작할 때 인터페이스 리소스를 읽을 필요가 없기 때문에 더 빨라질 것이므로이 Android 이점을 끄고 지우는 이유는 무엇입니까?
한 가지 더, 안드로이드 앱은 왜 그렇게 많은 메모리를 소비하는 것 같나요? 우리 모두 알다시피 안드로이드의 앱은 자바이므로 당연히 가상 머신이 필요하고 안드로이드의 앱에는 별도의 가상 머신, 즉 각 앱이 별도의 가상 머신을 엽니다. 이러한 설계의 이유는 가상 머신이 충돌하여 전체 시스템이 다운되는 것을 방지하기 위한 것이지만, 메모리를 더 많이 사용해야 합니다.
대용량 애플리케이션 또는 여러 개의 애플리케이션을 연 후 전환 속도가 느려지는 이유는 다음과 같이 분석할 수 있습니다.
대용량 애플리케이션이 이미 실행되어 메모리의 70%를 차지하고 있습니다. 이 시점에서 메모리의 50%를 차지하는 다른 프로그램을 실행하려면 큰 프로그램이 차지하는 메모리에서 메모리를 해제하거나 압축하는 과정이 필요하므로 당분간 속도가 느려집니다.
시작된 몇 개의 프로그램이 메모리의 80%를 차지하고, 새 프로그램을 실행하면 20%의 메모리를 차지합니다. 시스템 메모리에 남은 0이 없으므로 여전히 여유 메모리가 있어야 하므로 이전에 열었던 프로그램 중 하나 또는 여러 개를 선택하여 닫아야 합니다. 이 과정에서도 시스템 리소스가 소모되므로 잠시 동안 속도가 느려집니다. 다시 말해, 프로그램을 수동으로 종료하면 시스템 메모리를 확보하는 것입니다. 프로그램을 종료하지 않더라도 시스템이 자동으로 프로그램을 종료하여 필요할 때 메모리를 확보합니다.
백그라운드에서 실행되지 않는 프로그램(서비스 없이)은 종료하지 않더라도 전력을 사용하지 않습니다. 일부 플레이어나 실시간 모니터링 소프트웨어와 같이 백그라운드에서 실행되는 프로그램(서비스 포함)은 자연스럽게 전력을 소비합니다. 이는 프로세스를 종료하는 것이 쓸모없지 않다는 것을 보여줍니다. 서비스 전력 소비가 있는 프로그램이 백그라운드에서 항상 실행되고 있는지 확인하고 서비스를 살펴보기만 하면 됩니다. 이러한 소프트웨어는 사용되지 않으며 끝났습니다.
QQ를 예로 들어 보겠습니다. 정상적으로 종료하면 프로세스 관리에서 QQ가 실행 중이지만 전력이나 CPU를 소비하지 않습니다. 종료하지 않고 집 버튼을 눌러 전환하면 프로그램이 계속 실행 중이고 QQ가 온라인 상태이므로 자연스럽게 전력을 소비하게 됩니다.
한 가지 주의할 점이 있습니다. 집 키와 뒤로 키 모두 프로그램에서 전환할 수 있지만 두 키의 효과는 매우 다릅니다. 뒤로 키는 프로그램을 종료한 것으로 간주할 수 있지만, 집 키를 누르면 프로그램이 백그라운드에서 실행되도록 전환되지만 소프트웨어는 종료되지 않습니다!
이것들은 안드로이드의 안정성을 보장하기 위해 설계되었습니다. 일반적으로 최대 하나의 프로그램만 충돌하지만 전체 시스템이 충돌하지 않으며 메모리 부족에 대한 힌트는 절대 없습니다. 창에 너무 중독되어 항상 더 많은 메모리를 유지하고 싶을 수도 있지만 실제로는 속도가 반드시 증가하지는 않지만 빠른 프로그램 시작이라는 시스템 기능을 잃게되므로 비용의 가치가 없습니다. 다른 방식으로 안드로이드를 사용하는 것이 좋습니다.