12

Eksperymentalny projekt Cider pozwala uruchamiać aplikacje iOS na Androidzie

Nazwa Cider jest nie przypadkowa, oznacza Cydr, czyli napój alkoholowy wytwarzany z jabłek. Cider pozwala uruchomić aplikacje z Applowskiego systemu iOS na Androidzie. Co ciekawe, w tym celu nie została wykorzystana wirtualna maszyna, lecz autorskie rozwiązanie projektantów Cider. Chociaż projekt jest w dość wczesnej fazie, to działanie Cider robi wrażenie. Głównie za sprawą, że aplikacje […]

Nazwa Cider jest nie przypadkowa, oznacza Cydr, czyli napój alkoholowy wytwarzany z jabłek. Cider pozwala uruchomić aplikacje z Applowskiego systemu iOS na Androidzie. Co ciekawe, w tym celu nie została wykorzystana wirtualna maszyna, lecz autorskie rozwiązanie projektantów Cider. Chociaż projekt jest w dość wczesnej fazie, to działanie Cider robi wrażenie.

Głównie za sprawą, że aplikacje iOS i Androida funkcjonują obok siebie, jak gdyby nigdy nic. Nie trzeba przełączać trybów pracy pomiędzy jednym systemem a drugim. Można naprzemiennie uruchamiać aplikacje natywne i iOS, przełączać się pomiędzy nimi dzięki funkcji multitasking. Autorzy twierdzą, że nie napotkali żadnych większych problemów z kompatybilnością samych aplikacji, jako takich.

2014-05-14_114629

Oczywiście pewne problemy jednak występują. Przede wszystkim aplikacje iOS działają znacznie wolniej. Nie wszędzie, bo animacja 3D na demonstracyjnym filmie działa płynnie, natomiast przewijanie ekranu palcem jest niestety na tyle powolne i skokowe, że trudno mówić o jakimkolwiek komforcie. Cider nie obsługuje również różnych funkcji mobilnych urządzeń, takich jak GPS, Bluetooth, aparat itp. Jeśli więc aplikacja nie pozwala uruchomić się bez dostępu do tych funkcji, nie będzie działać. Jednak wiele aplikacji to potrafi, np. zademonstrowany Yelp, który korzysta z GPS, ale bez niego też sobie poradził.

2014-05-14_114932

Cider ma być dalej rozwijany przez sześciu twórców i być może z czasem zaoferuje znacznie więcej, niż obecnie. Należy również zwrócić uwagę, że Cider uruchomiony był na pierwszym Nexusie 7, który wydajnością wyraźnie nie grzeszy. Narzut pogarszający wydajność oczywiście zawsze będzie istniał, ale uruchomienie Cider na urządzeniu z procesorem Snapdragon 800 z pewnością dałoby lepsze efekty.

Poniżej opis twórców, jak udało im się osiągnąć kompatybilność aplikacji iOS z Androidem bez użycia maszyny wirtualnej:

We present Cider, an operating system compatibility architecture that can run applications built for different mobile ecosystems, iOS or Android, together on the same smartphone or tablet. Cider enhances the domestic operating system, Android, of a device with kernel-managed, per-thread personas to mimic the application binary interface of a foreign operating system, iOS, enabling it to run unmodified foreign binaries.

This is accomplished using a novel combination of binary compatibility techniques including two new mechanisms: compile-time code adaptation, and diplomatic functions. Compile-time code adaptation enables existing unmodified foreign source code to be reused in the domestic kernel, reducing implementation effort required to support multiple binary interfaces for executing domestic and foreign applications.

Diplomatic functions leverage per-thread personas, and allow foreign applications to use domestic libraries to access proprietary software and hardware interfaces. We have built a Cider prototype, and demonstrate that it imposes modest performance overhead and runs unmodified iOS and Android applications together on a Google Nexus tablet running the latest version of Android.

Więcej informacji na temat Cider znajdziecie na stronie projektu, oraz w tym dokumencie PDF. Informacja o Cider pochodzi z serwisu The Next Web.