차례:
휴대폰의 소프트웨어가 큰 업데이트를받을 때마다 성능이 향상되고 배터리를 덜 사용하는 방법을 듣습니다. 사실이지만 아이디어와 구현 방법은 기대치를 충족시키기 위해 많은 미세 조정이 필요합니다. Android 7.0은 두 가지 기존 기능을 개선하여 Project Doze 및 Project Svelte를 최대한 활용합니다.
목표는 간단합니다. 휴대 전화를 사용하지 않을 때 전력 소비를 줄이면서 백그라운드 프로세스를보다 효율적으로 관리 할 수있는 방법을 찾으십시오. 모든 소프트웨어는 성능과 효율성에 중점을두고 운영 체제가 훨씬 더 중요합니다. 변경 사항을 살펴보고 변경 사항이 미치는 영향을 살펴 보겠습니다.
프로젝트 스 벨테
Project Svelte는 2013 년에 Android 4.4 KitKat을 출시하여 OS가 저가형 휴대 전화에서 더 나은 성능을 발휘할 수 있도록했습니다. 그면에서는 성공했지만 우리는 우리가 얻은 것보다 더 큰 변화를 기대했습니다. Svelte의 원래 의도가 무엇인지에 대한 좋은 아이디어를 얻으려면 Android One 이상을 보지 마십시오. 목표는 최신 버전의 Android를 실행할 수있는 저렴한 하드웨어를 만드는 것이 었습니다.
Android 7.0을 사용하면 백그라운드 프로세스 관리를위한 더 나은 시스템을 사용하여 프로젝트가 성능에 미치는 영향을 계속 줄입니다.
Svelte의 변경 사항은 백그라운드에서 앱이 실행되도록하는 두 가지 구체적이고 중요한 문제를 해결합니다.
안드로이드는 iOS와 매우 다릅니다. 모든 개발자는 아주 적은 비용을 지불하고 Facebook 또는 Samsung과 같은 이름과 함께 Google Play에 앱을 게시 할 수 있습니다. 앱에 악성 코드가없는 경우 모든 사용자가 설치할 수 있으며 부적절한 콘텐츠 나 조치가보고되지 않는 한 유지됩니다 (Google은 앱을 푸시하기 전에 모든 앱을 자동으로 확인한다고 말하지만). 수동 승인 프로세스를 통해 제출 된 모든 앱과는 큰 차이가 있으며, 이는 최고의 개발 방식을 따르지 않기 때문에 앱이 거부되지 않음을 의미합니다. 일부 현재 API의 동작은 도움이되지 않으며 잘못된 앱으로 인해 최고의 앱도 깨우고 리소스를 너무 자주 사용할 수 있습니다.
Android Nougat의 Svelte 개선으로 두 가지 눈부신 문제가 해결되었습니다.
- 앱은 브로드 캐스트 수신기를 사용하여 네트워크가 변경되는지 확인합니다. 변경이 발생하면 기본 방법을 통해 변경 사항을 수신하는 모든 앱이 한 번에 깨어나 변경에 대한 데이터를 처리하려고 시도합니다. 휴대 전화가 처음 시작될 때 작동하는 방식과 모든 것이 한 번에 발생하는 방식을 고려하십시오. 왜 이것이 일종의 개선이 필요한지에 대한 아이디어가 있습니다. Android 7.0을 대상으로하는 경우 앱은 주 스레드 (앱이 깨어 있고 사용 중일 때 실행되는 스레드)를 통해서만 네트워크 변경 사항을 수신 할 수 있으므로 네트워크를 전환 할 때마다 깨지 않습니다. 이렇게하면 RAM과 CPU 시간이 줄어 휴대 전화의 성능이 향상되고 전력 소비량이 줄어 듭니다.
- 이전 버전의 Android에서 앱은 사진이나 비디오를 찍기 위해 유사한 브로드 캐스트 수신기에서들을 수있었습니다. 이런 일이 발생하면 듣고 있던 모든 응용 프로그램이 깨어나서 한 번에 데이터를 처리하려고했습니다. 위와 같이 성능 측면에서는 그다지 좋지 않습니다. Android 7.0에서는 새 사진 및 새 비디오 브로드 캐스트를 보낼 수 없습니다. 즉, 개발자가 기존 앱을 업데이트하지 않더라도 사진이나 비디오가 촬영 될 때 깨어나도록 지시받지 않습니다.
앱이 원하는 많은 일을하려면 앱이 살아 있어야합니다. 불필요한 기능을 제거하여 조용히 다시 활성화되기를 기다리는 동안 수행하는 작업을 줄이면 백그라운드로 전송 될 때 잠자기 대신 실행되는 앱 수가 줄어 듭니다.
프로젝트 Doze
현재 상황에서 Doze를 좋아하거나 Doze가 휴대 전화에서 눈에 띄는 작업을 수행하는 것을 보지 못합니다. 그것이 작동하는 방식 때문입니다.
Doze가 Android 6.0에서 데뷔했을 때 휴대 전화의 화면이 꺼져 있고 플러그가 뽑히고 움직이지 않는 동안 CPU 및 네트워크 활동을 지연시키는 것이 목적이었습니다. 세 가지 기준을 모두 충족하지 않으면 Doze가 시작되지 않고 앱이 계속 정상적으로 실행됩니다. 이것은 사무실과 책상에서 잘 작동했지만 주머니에 들어가 자마자 Doze는 아무것도하지 않고 혜택이 중단되었습니다.
2 단계 Doze를 사용하면 이동 중에도 배터리를 덜 사용합니다.
Android Nougat의 동작 변경은 간단합니다. 이제 Doze에는 두 단계가 있습니다. 하나는 화면이 꺼져 있고 전화가 분리되어 있고 다른 하나는 전화가 움직이지 않을 때입니다.
휴대 전화가 배터리로만 실행되고 있고 일정 시간 동안 화면이 꺼져 있으면 응용 프로그램이 네트워크에 대한 직접 액세스를 중지하고 미리 정의 된 시간이 지날 때까지 동기화 및 기타 작업과 같은 활동이 지연됩니다. 그런 다음 짧은 유지 관리 기간을 통해 정상적인 백그라운드 기능을 수행 할 수 있습니다. 이 부분은 휴대 전화가 주머니에 있거나 다른 형태의 움직임이있을 때 작동합니다.
전화가 일정 시간 동안 계속 사용 된 경우 모든 Doze 제한 사항 – 백그라운드에서 깨어나거나 알람 (아침에 깨어나거나 영향을받지 않는 종류가 아님)을 듣는 앱과 같은 추가 사항 또는 현재 위치 찾기 - 네트워크 상단에 적용되며 작업 연기입니다. 유지 관리 기간은 여전히 정기적으로 나타나지만, 그 기간 사이에는 전화기가 간신히 작동하며 집어들 때까지 많은 일을하지 않습니다.
우리는 전화가 여전히있는 동안 Doze가 얼마나 잘 작동하는지 알고 있습니다 (휴대 전화를 만든 사람이 수정하지 않은 경우). 이제 우리는 일어나서 움직일 때도 이점을 보게 될 것입니다.
Svelte 및 Doze로 변경하면 모든 성능 및 배터리 문제가 해결됩니까? 물론 대답은 '아니요'입니다. 그러나 이러한 변경은 해결해야 할 두 가지 매우 구체적인 사항을 해결하는 논리적 단계입니다. 결과가 모든 것을 해결할 수 없더라도 현재의 것보다 더 나은 것으로 판명됩니다.