CodeWalrus

General => Tech, Science, IT discussion & News => Topic started by: gameblabla on June 11, 2017, 10:34:14 AM

Title: Android-x86 - My experience with it so far
Post by: gameblabla on June 11, 2017, 10:34:14 AM
Android-x86 is a project that intended to port Android to the intel/amd x86/amd64 architecture. (most android devices are using ARM)
Before even Android-x86, Google had released an Android emulator that's actually running x86 binaries for performance reasons.
However, the emulator was pretty slow at the time and it did not support 3D hardware acceleration, only a software renderer.

Originally, Android-x86 only targeted a few select hardware like the EeePC but over time,
as Android became more standard and less hacky, KMS drivers were added to the mix,
which allowed 3D acceleration on AMD, Intel and Nvidia (via nouveau) as well as fixing some annoying crashes.

Android-x86 went from an experiment to a nice alternative to Linux distributions.

Anyways, what led me to try it out Android-x86 was due to the fact that the only powerful Android device
i had was my crappy Amazon Fire HD device, which quickly becomes hot even at low frequencies.
https://blog.gameblabla.nl/2016/12/16/FireHD7/ (https://blog.gameblabla.nl/2016/12/16/FireHD7/)

Another issue i had was the fact that Wifi was constantly disconnecting from time to time,
charging was very slow and overall it just became more of an annoyance than anything else.

At first, i tried to run it in a VM (Virtualbox) : it was working but it was also very slow.
So i partitioned my hard drive and i installed Android on a partition. (careful not to format your main partition !!!)
The last version of Android-x86 i tried was based on Froyo but now i'm trying out Android 6.0 Marshmallow r2.

When i first booted and went to Settings,
i was surprised to see that nouveau, the open-source nvidia driver, was fully supported in android-x86.
This was surprising, because several years ago, only a software renderer was available.

I quickly wanted to give Yu-Gi-Oh Duel Links a try and the improvement in frame-rates was immediately apparent.
The game was also much more stable on my PC than it was on my tablet.
Using my tablet, i constantly suffered from connection losses.
Using my PC instead actually improved my rank and allowed me to become King of Games.

Android 6.0-r2 suffered from another issue however : it would sometimes freeze after a period of time.
This irritated me so much that i decided to give the Nougat rc image a try.

Upgrading Android-x86 is painless, choose the partition where you installed it (Don't format!!!)
and it will ask you if you want to upgrade it.

Android-x86 7.1 Nougat is even better than marshmallow : No freezes, newer mesa drivers,
the possibility to reclock your nvidia card via nouveau, the mouse works better in apps etc...

If your phone is too slow to handle an Android game then your PC running Android-x86 will most likely will,
as a low-end computer will run over many high-end phones.

My low-end PC got 143000 pts in Antutu. In comparison, the latest iPhone got 180000 pts.
My specs :
AMD FX 6350 3.5Ghz (configured as dual core)
Nvidia Geforce GT 730 GDDR5 2GB VRAM (reclocking enabled)

To enable reclocking, open the terminal app, type su (grant access) then type :
echo 0f > /sys/kernel/debug/dri/0/pstate

I could in theory get a better score by putting Android on my SSD and leave my proc with 6 cores.

Unless you own an Nvidia 950/780 however, AMD cards should perform even better.
But nouveau with reclocking still performs decently and will run all the heavy benchmark.

Negatives
Some apps still do not have support for the Intel architecture.
Google tried to remedy this by introducing a compatibility layer in Nougat.
It doesn't always work however, especially when hardware acceleration is used.
Audio doesn't work over HDMI with Nouveau, even though it does on Linux distributions.

Nouveau also do not support accelerated codecs in Android, meaning it is impossible to play videos in an accelerated manner
or record your screen. This should be possible on Intel/AMD cards however.

The Google APKs are installed by default and can only be removed effectively from another Linux distribution.
(Duel Links actually runs without Google Play services, same for many games)

Conclusion
Android-x86 is probably the fastest way to play Android games, thanks to constantly improving drivers.
Duel Links is ultra-smooth on it, so are the benchmarks. However, the benefits are not noticeable on a VM.
(Latest nougat version supports Virgil3D, but it still has a lot of overheadd)

You can give it a try by putting it on a USB key with Rufus and use the "Live USB/CD" option to try Android
without installing it.