Vulkan API support for Android was announced with Android Nougat back at Google I/O 2016. To refresh your mind, this API helps developers gain more control of low-level hardware. This kind of access helps them better take advantage of the processing and graphical power of the respective units, and optimize games to run as smooth as possible. It's no surprise that correct memory allocation and thread management are important in any kind of power-hungry tasks, like running a game. This is what popular consoles like Xbox One and PlayStation 4 have done for a long time - giving developers low-level control of the hardware inside the devices.

What's also interesting is that Vulkan is a cross-platform open standard, targeting graphics applications across platforms. Earlier this year, we found a clue that Android Q may render the user interface elements via Vulkan API. This will be a step taken to further improve the smoothness of the system. Now, we received information that Android Q will definitely support ANGLE to make 2D game development easier.

What is ANGLE?

ANGLE is an abbreviation and it stands for "Almost Native Graphics Layer Engine." The rise of WebGL made a necessity for a standardized solution of supporting the renderer. OpenGL drivers have not been very stable on the Windows platform for quite a time. So, ANGLE took everything to a whole new level with translating the OpenGL code to Direct3D, an API natively supported on Windows. The main goal of ANGLE is to make OpenGL portable and accessible for all by translating the WebGL and OpenGL ES content to a hardware-supported API available on the platform. Using the same principle, ANGLE will translate the OpenGL code to Vulkan code on Android, as the former is an officially supported hardware API on the operating system. You probably use ANGLE every day without ever realizing it. ANGLE is built into Google Chrome and Mozilla Firefox web browsers for the desktop. It is used to render any graphical content inside these browsers on Windows.

OpenGL ES vs Vulkan

The Khronos Group is working hard to make ANGLE the main renderer of OpenGL on Vulkan. Many of you may not see the need of getting rid of OpenGL in favor of Vulkan, but there's definitely a room for improvement. At this point, OpenGL API is considered an antique technology. It was initially released in 1992, which is 26 years ago. 26 years may not mean much to some of you but it's an astronomical number when it comes to technology development. In 2016, the world was introduced to Vulkan - the next level graphics API. But, newer doesn't automatically mean better, right? Let me explain why Vulkan is much better than OpenGL/OpenGL ES.

If you have ever dealt with OpenGL ES, you would know that it is huge. The API has over 300 extensions and is not easy to use at all. Vulkan takes everything on a whole new level, offering a much smaller API and direct control of graphics. It is also easier to implement. Though Vulkan works on a lower level than OpenGL ES, that means more power to control. With Vulkan, thread and memory management is completely left to the game's developer, so you can use the resources adequately. Also, there is a very small difference between the mobile and desktop versions of Vulkan, thus making porting games much easier. To put it short, Vulkan is a low-level driver which lets you unleash the full potential of the graphics card present on the particular device.

Why ANGLE?

The first advantage of ANGLE is that it is an open standard platform. There are tons of ways to contribute to the project. You could test the driver on your devices, report bugs, fix bugs, help developers come up with solutions, send suggestions, donate some money to the development, etc. All of that will boost the speed of development. The next big plus in comparison with OpenGL ES is portability and cross-platform support. The nature of ANGLE makes the job easier for both platform and game developers. Maintaining and implementing ANGLE is much easier than earlier implementations. OpenGL is so fragmented that tracking down the bugs and fixing them on different devices is a pain for the developers. Centralizing all the required drivers into ANGLE means that developers will have an easier time implementing them. ANGLE developer, Jamie Madill, confirmed with us that on the Android platform, ANGLE will receive regular updates via the Google Play Store. Updating drivers via the built-in first-party marketplace is a good idea because the user won't have to update the whole system every time the driver updates. Also, developers wouldn't need to tinker with the code every time ANGLE changes something. Here's a video about how ANGLE can benefit Android game development.

As you can see, ANGLE has numerous improvements over the dated OpenGL ES. The first developer preview release of Android Q is not that far ahead, so we can wait and see how ANGLE works in practice. According to this commit, users will be able to force all applications to work with ANGLE from the developer options. The support for the renderer is already merged into the Android Pie branch for OEMs to test it. You can track the development of ANGLE from the website and GitHub repository below.

Thanks to XDA Senior Member XxPixX for the tip!

ANGLE websiteGitHub repository