r   e   k   l   a   m   a
r   e   k   l   a   m   a

Android na chromebookach zaistniał dzięki linuksowym kontenerom #io16

Strona główna AktualnościOPROGRAMOWANIE

Może VR jest najbardziej widowiskową z nowości zapowiedzianych na tegorocznym Google I/O, ale ze strategicznego punktu widzenia znacznie istotniejszą kwestią jest wprowadzenie androidowych aplikacji na chromebooki. Urządzenia do tej pory określane jako drogie przeglądarki internetowe nagle stają się zdolne do uruchamiania ponad miliona aplikacji stworzonych dla Androida, tak jakby od początku były tworzone na Chrome OS-a. Zaskakuje jednak sposób, w jaki udało się to zrealizować. Stare rozwiązania poszły do kosza, Google sięgnęło po jeden z największych atutów Linuksa – konteneryzację.

Interesujący się tematem czytelnicy zapewne pamiętają ARC-a, czyli Android Runtime for Chrome, i jego otwartą implementację ARChon Custom Runtime. To właśnie za jego pomocą udało się uruchomić w 2015 roku na chromebookach androidowe aplikacje takie jak Evernote czy Vine. Pliki APK ze sklepu Play wymagały wtedy przerobienia na format rozpoznawalny przez Chrome za pomocą narzędzia ARC Welder – i były instalowane jako rozszerzenia przeglądarki, wykorzystujące środowisko uruchomieniowe Native Clienta.

Google liczyło, że w ten sposób wszystkie ważne androidowe aplikacje będzie można uruchomić na chromebookach, ale się przeliczyło. Tak, to prawda, udało się nawet przystosować do tego spory podzbiór interfejsów z Google Play Services, nam w redakcji udało się na chromebooku Acera uruchomić wiele aplikacji – ale uruchomić a korzystać to dwie różne rzeczy. Aplikacje startowały, ale wyglądały obco, nie współpracowały z aplikacjami przeglądarkowymi Chrome'a, przede wszystkim zaś działały bardzo ślamazarnie. W praktyce nigdy nie udało się sprawić, by ARC przeszło pomyślnie wszystkie testy Android Compatibility Test Suite.

r   e   k   l   a   m   a

ARC trafił więc na programistyczny cmentarz, niezdolny zapewnić doświadczenia użytkownika na poziomie takim, jakie oczekiwało Google. W zamian zdecydowano zrobić się coś niesłychanego. W wydaniu M53 z kanału deweloperskiego porzucono podstawowe założenie Chrome OS-a, tj. uruchamianie w zamkniętym linuksowym środowisku jedynie przeglądarki Chrome. Z samej przeglądarki Chrome zniknęło środowisko ARC.

W zamian do Chrome OS-a wprowadzono Android Frameworka w izolowanym linuksowym kontenerze (LXC). Jest w nim wszystko, włącznie z warstwą abstrakcji sprzętu (HAL) czy sterownikami. To nie jest żadna wirtualizacja – kontener, wpinający się bezpośrednio w linuksowe jądro Chrome OS-a, ma dostęp do wszystkich zasobów sprzętowych chromebooka, a uruchomione w kontenerze aplikacje androidowe mogą komunikować się z procesami Chrome OS-a.

Google będzie regularnie aktualizować swój androidowy kontener (w takim samym cyklu, jak robi to z urządzeniami Nexus), a zespół deweloperów Chrome OS-a zobowiązał się do dotrzymania tempa z tymi aktualizacjami, tak by nie doszło do sytuacji, w której po aktualizacji kontenera Chrome OS stał się z nim niekompatybilny.

Interesująco wygląda kwestia (nie)zgodności architektur. Zarówno Chrome OS jak i Android są systemami rozwijanymi jednocześnie na platformach x86 i ARM, tyle że wydaje się, że dla Chrome OS-a priorytetem jest x86, zaś dla Androida oczywiście ARM. W wypadku androidowych aplikacji pisanych w Javie, przez standardowy SDK, problemu nie ma. W wypadku tych, które pisane są w C/C++ na natywne biblioteki Androida NDK, problemu też ma nie być, najnowsze androidowe NDK automatycznie generują binarne pliki x86 obok binarek na ARM, łącząc je w jednym pliku instalacyjnym. Sam Android Framework zawiera też bibliotekę translacyjną libhoudini, która pozwala całkiem sprawnie emulować ARM-owe instrukcje na x86. Reasumując, w najgorszym razie niektóre androidowe aplikacje na chromebookach będą działały nieco wolniej, ale zrekompensuje to z łatwością wciąż znacznie wyższa wydajność procesorów Intela.

Niestety przystosowany do chromebooków kontener z Androidem nie będzie (przynajmniej na razie) dostępny jako projekt Open Source. Google utrzymuje, że nie zdecydowało się na otworzenie kodu, bo nie było pewne, jak to wszystko pójdzie. Dla większości użytkowników nie będzie to miało znaczenia – oni po prostu uruchomią sklep Play na chromebooku i zainstalują z niego swoje ulubione aplikacje.

Zawiedzeni mogą być jedynie użytkownicy starszych chromebooków, bo najwyraźniej oni z nowości wprowadzonych przez Chrome OS M53 nie skorzystają. Lista kompatybilnych z Androidem chromebooków nie zawiera modeli starszych niż dwa lata. Jest to mało zrozumiałe posunięcie – na liście tej nie ma np. pierwszego Chromebooka Pixel, mimo że jest on wydajniejszy niż większość nowych chromebooków (i ma dotykowy ekran). Źle to wygląda w świetle gwarancji wsparcia, zawartych w dokumencie End of Life Policy, gdzie Google gwarantuje pięcioletni okres wsparcia dla urządzeń ze swoim systemem. Pozostaje jedynie liczyć na starania niezależnych deweloperów, którzy dobiorą się do Chrome OS-a od środka i wstrzykną wydobyty z innych modeli androidowy kontener. Tak się przecież robi z przeglądarką Chromium, wyposażając ją w binarne wtyczki Flasha, PDF, czy Widevine DRM niezbędnego do oglądania Netfliksa.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.