BT

Lightweight, Embeddable VM Avian Supports 64-Bit iOS Devices

| by Sergio De Simone Follow 14 Followers on Nov 02, 2015. Estimated reading time: 1 minute |

Avian is a lightweight, portable, embeddable virtual machine that aims to support a reduced subset of Java on iOS alongside Linux, FreeBSD, and Windows. Version 1.2 added support for ARM64 on Linux and iOS.

Avian is mostly meant to allow developers to deploy self-contained applications that embed the virtual machine as well as any jar files providing additional classes and resources. Avian is based on a Just-In-Time compiler (JIT). In case of iOS, the JIT compiler is run ahead of time (AOT) to comply with the platform’s requirement of only running code that has been signed – so, no code generation is possible on-the-fly.

According to Joshua Warner, one of Avian core contributors, Avian is especially suited to enterprises that “don’t want to roll out Java across all of their clients machines”, possibly due to the lack of sufficient privileges. In such scenario, Avian will be a suitable way to deploy the same code on a number of platforms. Admittedly, Avian is not going to compete with the likes of HotSpot, or RoboVM, in terms of performance.

Though aimed to be ligthweight, Avian can be built to use the OpenJDK class library instead of Avian’s default library. This can be useful if an application requires a feature that is not available in Avian’s default library.

Niklas Therning @ntherning, co-founder of RoboVM, provided an useful comparison between RoboVm and Avian:

  • RoboVM is more aggressivley targeting iOS, while Avian strives to be more cross-platform;
  • RoboVM provides a custom bridge to Cocoa Touch, bro, that, RoboVm says, provides a faster mechanism than JNI.
  • Additionally, RoboVM uses LLVM internally to generate machine code and benefits from many optimizations “for free”.

Another major difference between RoboVM and Avian ensued from the recent close-sourcing of RoboVM following Xamarin’s acquisition. Avian is open source and available on GitHub.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Avian has been around for quite a while by Shai Almog

Steve Hannah ported Codename One to sit on top of it a couple of years ago when we were still using the old VM: sjhannah.com/blog/?p=223
He made some pretty interesting observations there.

Re: Avian has been around for quite a while by Sergio De Simone

Thanks for your comment. You are right, Avian iOS support has been around for a while. Version 1.2 brought native ARM64 to the pack, which is used on iPhone 5S and later devices. I mentioned this in the news summary. I reworded the title, though, to remove some of the ambiguity.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

2 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT