Google Pixel 2 obsługuje odciążanie tetheringu – znane również jako tethering z akceleracją sprzętową – co pomaga wydłużyć czas pracy baterii podczas tetheringu z Internetem.
Jest wiele rzeczy na temat nowych Google Pixel 2/Pixel 2 XL, które nie zostały jeszcze odkryte. Google szybko podbiło świat technologii, gdy nagle ujawniło, że nowe smartfony mają wbudowany niestandardowy procesor obrazu zwany Rdzeń wizualny pikseli, chociaż tak było jeszcze nie włączone. Jest jeszcze jedna interesująca rzecz, którą znaleźliśmy na Pixelu 2, chociaż nie jesteśmy w 100% pewni, jakie są pełne implikacje tej nowej funkcji. Funkcja tzw tethering z akceleracją sprzętową, prawdopodobnie wydłuży żywotność baterii podczas mobilnego tetheringu danych, przenosząc całą logikę związaną z przekazywaniem pakietów i innymi obowiązkami związanymi z tetheringiem na sprzęt.
Obecni właściciele Google Pixel 2 lub Pixel 2 XL mogą znaleźć tę funkcję w Opcjach programisty w kategorii Sieć. Jest domyślnie włączona, więc prawdopodobnie działa już na tych urządzeniach. W projekcie Android Open Source Project (AOSP) możemy zobaczyć kilka zatwierdzeń związanych z tą funkcją w sekcji „
odciążenie tetheringu„znacznik. Widzimy, że jest w tym logika przekazywanie limitu danych w smartfonie do kodu odciążającego, aby ograniczyć limit danych nie jest przekroczona.Co najważniejsze, możemy zobaczyć implementację dla „odciążenie HALWarstwy abstrakcji sprzętu (HAL) umożliwiają systemowi Android komunikację z chipem Wi-Fi w SoC, który obsługuje tethering z akceleracją sprzętową. Ta warstwa HAL jest używana przez system Android do przeniesienia całego obciążenia związanego z przekazywaniem pakietów z systemu Android na dedykowany dla niego sprzęt.
Efektem końcowym jest zwolnienie zasobów systemowych przeznaczonych do mobilnego tetheringu danych na inne cele. Im mniej procesor urządzenia jest odpowiedzialny za operacje związane z tetheringiem, tym więcej energii jest oszczędzane. Może to być szczególnie przydatne, gdy urządzenie przechodzi w tryb uśpienia, ponieważ obecnie tethering oparty na oprogramowaniu w systemie Android wymaga utrzymywania procesora w stanie czuwania za pomocą blokady wakelock. Przerzucając odpowiedzialność za tethering na sprzęt, być może procesor rzeczywiście będzie mógł przejść w stan uśpienia —wydłużając czas pracy baterii, im dłużej jesteś podłączony.
Które urządzenia obsługują tethering z akceleracją sprzętową? Cóż, do tej pory znaleźliśmy przełącznik tylko w Google Pixel 2/Pixel 2 XL, więc zakładamy, że obsługują go tylko te urządzenia. Zgodnie z zobowiązaniami HAL dotyczącymi odciążania tetheringu wygląda na to, że Google testował obsługę Google Nexusa 5X (bulhead). Co więcej, według kilku komentarzy Googlersów wydaje się, że HAL odciążający tethering jest raczej neutralny dla dostawcy:
W innym komentarzu Googler wspomina, jak urządzenia mogą mieszać i dopasowywać chipsety Wi-Fi oraz odciążać warstwy HAL, ale to wszystko Stworzony przez nich interfejs API jest nadal zaprojektowany tak, aby maksymalnie wydłużyć czas pracy baterii urządzenia tethering.Chociaż ta HAL ma kilka dziwactw w konfiguracji Qualcomm, zdecydowana większość z nich jest neutralna dla dostawcy. Każdy sprzedawca z odpowiednio wydajnym SoC mógłby teoretycznie obsłużyć w ten sposób odciążanie sprzętu tetheringowego (kto wie, może pominąć dodatkowe przekazywanie fd podczas konfiguracji).
Na samej górze definiujemy, że to API zwróci konfigurację statyczną. W zależności od dostawcy/implementacji sprzętu możliwości te mogą się zmieniać. Dla np. jedno urządzenie może mieć Wi-Fi od dostawcy A i odciążyć HAL od dostawcy B. podczas gdy inne urządzenie może mieć chipset Wi-Fi od dostawcy B i odciążać HAL od dostawcy B. W tym przypadku możliwości odciążenia mogą być inne. Nawet przy ograniczonych możliwościach framework/klient może chcieć skorzystać z odciążania sprzętu dla ograniczonego zestawu. Dlatego interfejs API zaprojektowano tak, aby maksymalnie wykorzystać potencjał sprzętu, biorąc pod uwagę, że mogą występować różnice w zależności od implementacji społecznościowej.
Jeśli posiadasz Google Pixel 2/Pixel 2 XL i chcesz zobaczyć stan tetheringu z przyspieszeniem sprzętowym, możesz wprowadzić następujące dane Polecenie powłoki ADB i poszukaj ciągów związanych z „odciążaniem sprzętu”:
adb shell dumpsys connectivity tethering
Będziemy musieli przeprowadzić testy, aby faktycznie zobaczyć, jak skuteczne tethering z przyspieszaniem sprzętowym poprawia żywotność baterii podczas tetheringu. Tethering również powodował ogromny spadek wydajności, ale ogromna poprawa szybkości procesora i optymalizacje w Androidzie w dużej mierze rozwiązały ten problem. Dlatego nie spodziewamy się, że przeniesienie logiki tetheringu poprzez warstwę HAL do chipsetu Wi-Fi doprowadzi do zauważalnej poprawy wydajności.