We have moved to a new Sailfish OS Forum. Please start new discussions there.

Revision history [back]

click to hide/show revision 1
initial version

posted 2014-11-25 01:56:15 +0200

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 wrote 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:

  1. What percentage of Android apps is going to run fine on the Intel platform? Does Intel provide detailed statistics on this?
  2. What is the performance penalty of Android apps using libhoudini?

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 wrote 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:

  1. What percentage of Android apps is going to run fine on the Intel platform? Does Intel provide detailed statistics on this?
  2. What is the performance penalty of Android apps using libhoudini?