Genymotion: bawimy się Androidem na Linuksie
Android to dziś nie tylko najpopularniejszy na świecie systemmobilny, ale też ogromny ekosystem aplikacji, ustępującywielkością tylko ekosystemowi oprogramowania dla Windows/win32.Wiele z tych aplikacji występuje w formie mogącej zainteresowaćużytkowników desktopowego Linuksa, którym wciąż doskwierarelatywnie niewielka dostępność oprogramowania (nie tylko wporównaniu do Windows, ale też i do OS-a X).
18.05.2014 | aktual.: 18.05.2014 17:33
Gdyby desktopowy Linux miał po swojej stronie tak liczną armięprogramistów, jak ma Android, programistów, którzy zajmują siępisaniem aplikacji dla końcowego użytkownika, a nie np. tworzeniem116-ego środowiska graficznego, to mógłby dziś być popularniejszy odsystemu Apple'a. Tak jednak nie jest. Rozwój ekosystemu androidowychaplikacji w niewielkim stopniu przekłada się na wzrost liczbyaplikacji dla desktopowego Linuksa. Współdzielenie jądra niewystarczy – z perspektywy twórców aplikacji nie ma specjalnegoznaczenia, czy w Androidzie jest jądro Linuksa, czy np. byłoby tamjądro wzięte z NetBSD. Użytkownikom, zainteresowanym uruchamianiemandroidowych aplikacji na desktopowym „pingwinie”, zostajeemulacja.
Jak się można spodziewać, emulatorów Androida dla Linuksa teżjest mniej, niż emulatorów Androida dla Windows, nie znajdziecieteż wśród nich świetnego BlueStacksApp Playera. Nie oznacza to jednak, że sytuacja jest bardzo zła.Przetestowaliśmy kilka takich dziś dostępnych narzędzi – inajlepiej na ich tle wypada emulator o nazwie Genymotion.
Aby z niego skorzystać, należy założyć konto na stronieproducenta (genymotion.com),zalogować się i pobrać darmową wersję do użytku domowego.Wersja ta pozwala na emulowanie Androida 2.3, 4.1, 4.2, 4.3 i 4.4,daje też dostęp do GPS-a i kamery. Za 100 euro rocznie dostępnajest wersja Indie, rozbudowana o funkcje przydatne dla deweloperów(np. API Javy czy łatwe zarządzanie instancjami wirtualnychAndroidów), 300 euro rocznie kosztuje zaś wersja biznesowa,rozszerzona względem wersji Indie o wsparcie techniczne.
Instalator został przygotowany z myślą o Ubuntu i Debianie, aleużytkownicy Arch Linuksa nie będą mieli żadnych problemów z jegouruchomieniem – odpowiedni skrypt czeka na nich w repozytorium AUR.Gorzej w wypadku OpenSUSE czy Fedory, tam trzeba będzie wprowadzićnieco zmian. Przed samą instalacją należy zainstalować kompletneśrodowisko VirtualBoksa,najlepiej z wersji dostarczanej przez Oracle.
Po zainstalowaniu i uruchomieniu genymotion należy pobrać zserwisu producenta obraz emulowanego urządzenia androidowego. Wybórjest spory – oprócz „generycznych” telefonów i tabletów,których parametry sprzętowe (pamięć, liczba rdzeni CPU) możnakonfigurować, mamy do dyspozycji popularne modele znanychproducentów – Samsunga, Sony, HTC i Google (Nexus).
Uruchomione w ten sposób wirtualne urządzenie ma bezpośrednidostęp do zasobów sieciowych hosta, więc na emulowanym Androidziezaraz po uruchomieniu można instalować aplikacje ze sklepu. Jeślimamy swoją kolekcję plików APK na komputerze, też nie ma z tymproblemu: na emulowaną kartę SD można wgrać pliki z lokalnegosystemu plików techniką przeciągnij-i-upuść.
Jeśli mamy w naszym Linuksie dobrze skonfigurowaną akceleracjęgrafiki przez OpenGL, to zostanie ona przez genymotion wykorzystana wemulowanym Androidzie. Efekty są całkiem zadowalające –korzystając z karty graficznej Nvidii (własnościowe sterowniki)można było bez problemu pograć w popularne gry 3D ze sklepu Play,nawet w rozdzielczości FullHD.
Na dziś można więc Genymotion polecić każdemu, kto chciałbyza darmo uzyskać dostęp do bogatej biblioteki aplikacjiandroidowych. Działa on zdecydowanie szybciej od oficjalnegogoogle'owego emulatora z Android SDK i jest znacznie łatwiejszy wużyciu. Na dziś – gdyż jutro sytuacja może się radykalniezmienić. Jeszcze w tym miesiącu pojawić się ma dla Linuksaemulator Andyroid, któregoautorzy obiecują nie tylko pełne wsparcie dla uruchamianiaaplikacji ARM na x86 (z czym w Bluestacks wciąż nie jestnajlepiej), ale też możliwość bezpośredniego uruchamianiaandroidowych aplikacji z pulpitu, z pominięciem interfejsuużytkownika tego systemu.