Jolla tablet support for Android apps utilizing the NDK
Intel CPU based mobile platforms like the Intel Z3560 do not have native support for Android apps written using the Android NDK (apps which are partially written in C++, like Games or apps implementing video codecs, etc.), unless these apps are compiled for both ARM and x86 platform. When an app utilizing the NDK is compiled with ARM support only, ARM instructions are supported on the Intel based SOCs through a compatibility library called libhoudini to enable binary translation. libhoudini translates the ARM instruction set to x86 instructions on the fly (for a description of what libhoudini does, see the article"libhoudini: What It Means for Developers").
Technically it's possible to build a 'fat' Android apk file including binaries for both the ARM and x86 platform through the Intel Integrated Native Developer Experience (INDE). This article describes how to build an Android app with support for both platform: Creating an x86 and ARM* APK using the Intel® Compiler and GNU* gcc.
It seems that libhoudini does not support all Android apps, as The Register mentioned in its article FIGHT! Intel disputes ARM's claims of Android superiority. What does that mean for the Jolla tablet and Android support? Are CPU intenstive apps partially implemented in C++ still going to run with decent performance, even if the binaries have not been compiled for the x86 platform specifically?
I do not have any numbers of how many Android apps use the NDK at the moment, but maybe someone from Jolla knows more about the current situation. The main questions are:
- What percentage of Android apps is going to run fine on the Intel platform? Does Intel provide detailed statistics on this?
- What is the performance penalty of Android apps using libhoudini?
An ARM marketing engineer put out some numbers from a study they did on the top 100 Android apps in the store, checking if binary translation was used or the app did not run at all. He claims that in January 2014 9% of the top 100 Android apps they identified did not run at all on Intel SOCs, while 44% were dependent on binary translation. There have been some reports on the performance impact for binary translation. Given the modern hardware of the tablet the bigger concern might be power consumption, which seems to be up to 30% higher on Intel hardware.
rabit ( 2014-11-25 18:46:21 +0200 )edit