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

Jolla tablet support for Android apps utilizing the NDK

asked 2014-11-25 01:56:15 +0300

rabit gravatar image

updated 2014-11-25 01:57:19 +0300

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:

  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?
edit retag flag offensive close delete

Comments

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 +0300 )edit

1 Answer

Sort by » oldest newest most voted
2

answered 2014-11-25 02:23:47 +0300

simo gravatar image

Android 5.0 supports 64 bit processors by Intel, e.g. on Nokia 1 (Android tablet) there's an Intel Z3580 CPU. Jolla is planning to use Z3735, and I'm pretty sure they were aware of the Android compatibility, that being so essential part of the Sailfish OS, when choosing that.

Note: Any HW parts are due to change until announced otherwise

edit flag offensive delete publish link more

Comments

Thanks, they probably opted for the Intel SOCs for the money, since Intel is subsidizing their hardware. Since not all Android apps run without problems in Alien Dalvik, using Intel might increase the number of Android apps not working correctly on the tablet even more. ARM would have been the better choice in my eyes.

rabit ( 2014-11-26 01:48:22 +0300 )edit
Login/Signup to Answer

Question tools

Follow
3 followers

Stats

Asked: 2014-11-25 01:56:15 +0300

Seen: 692 times

Last updated: Nov 25 '14