Jedną z najciekawszych nowości, jakie przynosi Android 15, jest długo wyczekiwana aplikacja Linux Terminal. Dzięki niej użytkownicy urządzeń z systemem Android – głównie smartfonów Pixel – mogą uruchamiać pełnoprawne aplikacje linuksowe za pomocą wirtualnej maszyny (VM), która oparta jest na systemie Debian. Rozwiązanie to ma olbrzymi potencjał z punktu widzenia deweloperów i zaawansowanych użytkowników, jednak nie jest pozbawione ograniczeń. Jednym z najpoważniejszych jest sztywny limit przydzielonej pamięci operacyjnej – wynoszący zaledwie 4 GB.
Co istotne, pamięć RAM przeznaczona na wirtualną maszynę nie zależy od wielkości faktycznej pamięci w urządzeniu. Oznacza to, że nawet jeśli korzystamy z flagowego smartfona Pixel 9 Pro wyposażonego w 12 lub 16 GB RAM, terminal linuksowy i tak zarezerwuje tylko 4 GB na swoje działanie. Dla porównania, w przypadku Chromebooków uruchomienie aplikacji linuksowych pozwala na zagospodarowanie niemal całego dostępnego RAM-u, pozostawiając zaledwie 1 GB na potrzeby systemu ChromeOS. To sprawia, że użytkownicy Chromebooków mają znacznie większą swobodę w realizacji wymagających zadań programistycznych.
Deweloperzy, którzy liczyli, że aplikacja Linux Terminal stanie się potężnym narzędziem developerskim dla Androida, mogą poczuć się rozczarowani. Co prawda wbudowana funkcja „memory ballooning” dynamicznie zarządza przydziałem RAM, ale nie pozwala przekroczyć ustalonego limitu 4 GB. Na szczęście istnieje metoda obejścia tego ograniczenia, oparta na technikach znanych w środowisku linuksowym – takich jak swap oraz zram. Choć nie są to rozwiązania idealne, potrafią znacząco zmniejszyć liczbę awarii i zamknięć aplikacji wywołanych brakiem pamięci.
Dzięki poradnikowi przygotowanemu przez dewelopera Li Zhao wiemy, w jaki sposób zwiększyć efektywną ilość pamięci dostępnej dla terminala. Pierwszym krokiem jest zwiększenie rozmiaru zramu – czyli skompresowanego obszaru pamięci RAM, działającego jak wirtualny swap. Domyślnie jego wielkość wynosi 1 GB, lecz można ją podnieść do 8 GB, edytując plik /etc/systemd/zram-generator.conf i dodając tam następującą konfigurację:
[zram0]
zram-size = 8192
compression-algorithm = zstd
Następnie należy zmodyfikować poziom tzw. „swappiness”, który określa, jak agresywnie system linuksowy przemieszcza dane z pamięci RAM do swapu. W tym celu edytujemy plik /etc/sysctl.conf i dodajemy linię:
vm.swappiness=100
Podwyższony poziom swappiness oznacza, że system chętniej będzie korzystał z przestrzeni zram i swap, zamiast zajmować fizyczny RAM. Jednak to nie wszystko – warto również utworzyć plik wymiany (swapfile) na dysku o wielkości 8 GB. Oto komendy, które należy po kolei wykonać:
sudo fallocate -l 8G /swap
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
sudo swapon -s
Aby swap włączał się automatycznie po restarcie systemu, dodajemy stosowną linię do pliku /etc/fstab:
/swap swap swap defaults 0 0
Dzięki połączeniu swapu na dysk z kompresowanym zramem oraz odpowiednio ustawionym poziomem „swappiness”, system może efektywnie zarządzać nawet większymi obciążeniami, niż przewidywano. Wciąż jednak należy pamiętać, że swap – szczególnie ten zlokalizowany na dysku – działa wyraźnie wolniej niż pamięć RAM. Dlatego ta metoda nie zastąpi fizycznego przydziału większej ilości pamięci, ale może osiągnąć zauważalną poprawę stabilności i wydajności aplikacji linuksowych uruchamianych w Androidzie.
Nowa aplikacja Linux Terminal otwiera zupełnie nowy rozdział dla użytkowników Androida zainteresowanych programowaniem i testowaniem narzędzi w środowiskach uniksowych. Możliwość kodowania, kompilacji czy użycia narzędzi typu Git, curl albo Docker — to wszystko stanie się zdecydowanie łatwiej dostępne. A dzięki zastosowaniu prostych technik optymalizacyjnych można zmniejszyć potencjalne bariery, jakie niesie ze sobą limit 4 GB pamięci.
Warto więc eksperymentować z nową funkcjonalnością, szczególnie jeśli jesteś deweloperem lub entuzjastą Linuxa. Nawet jeśli rozwiązanie wymaga kilku technicznych zabiegów, z pewnością wynagrodzi to użytkownikom większą kontrolą, elastycznością i możliwością uruchamiania wielu projektów bez potrzeby korzystania z zewnętrznego laptopa czy komputera stacjonarnego.