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

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

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

20.05.2016 | aktual.: 27.05.2016 13:10

Zalogowani mogą więcej

Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika

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 takiejak Evernote czy Vine. Pliki APK ze sklepu Play wymagały wtedyprzerobienia na format rozpoznawalny przez Chrome za pomocąnarzędzia ARC Welder – i były instalowane jako rozszerzeniaprzeglądarki, wykorzystujące środowisko uruchomieniowe NativeClienta.

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

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

Obraz

W zamian do Chrome OS-a wprowadzono Android Frameworka wizolowanym linuksowym kontenerze (LXC). Jest w nim wszystko, włącznie zwarstwą abstrakcji sprzętu (HAL) czy sterownikami. To nie jestżadna wirtualizacja – kontener, wpinający się bezpośrednio wlinuksowe jądro Chrome OS-a, ma dostęp do wszystkich zasobówsprzętowych chromebooka, a uruchomione w kontenerze aplikacjeandroidowe 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 ztymi aktualizacjami, tak by nie doszło do sytuacji, w której poaktualizacji 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 rozwijanymijednocześnie na platformach x86 i ARM, tyle że wydaje się, że dlaChrome OS-a priorytetem jest x86, zaś dla Androida oczywiście ARM.W wypadku androidowych aplikacji pisanych w Javie, przez standardowySDK, problemu nie ma. W wypadku tych, które pisane są w C/C++ nanatywne biblioteki Androida NDK, problemu też ma nie być, najnowszeandroidowe NDK automatycznie generują binarne pliki x86 obok binarekna ARM, łącząc je w jednym pliku instalacyjnym. Sam AndroidFramework zawiera też bibliotekę translacyjną libhoudini, którapozwala całkiem sprawnie emulować ARM-owe instrukcje na x86.Reasumując, w najgorszym razie niektóre androidowe aplikacje nachromebookach 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 niebędzie (przynajmniej na razie) dostępny jako projekt Open Source.Google utrzymuje, że nie zdecydowało się na otworzenie kodu, bonie było pewne, jak to wszystko pójdzie. Dla większościużytkowników nie będzie to miało znaczenia – oni po prostuuruchomią sklep Play na chromebooku i zainstalują z niego swojeulubione aplikacje.

Zawiedzeni mogą być jedynie użytkownicy starszych chromebooków,bo najwyraźniej oni z nowości wprowadzonych przez Chrome OS M53 nieskorzystają. Lista kompatybilnych z Androidem chromebooków niezawiera modeli starszych niż dwa lata. Jest to mało zrozumiałeposunięcie – na liście tej nie ma np. pierwszego ChromebookaPixel, mimo że jest on wydajniejszy niż większość nowychchromebooków (i ma dotykowy ekran). Źle to wygląda w świetlegwarancjiwsparcia, zawartych w dokumencie End of Life Policy, gdzie Googlegwarantuje pięcioletni okres wsparcia dla urządzeń ze swoimsystemem. Pozostaje jedynie liczyć na starania niezależnychdeweloperów, którzy dobiorą się do Chrome OS-a od środka iwstrzykną wydobyty z innych modeli androidowy kontener. Tak sięprzecież robi z przeglądarką Chromium, wyposażając ją w binarnewtyczki Flasha, PDF, czy Widevine DRM niezbędnego do oglądaniaNetfliksa.

Programy

Zobacz więcej
Komentarze (29)