Hacker News new | ask | show | jobs
by ramshanker 973 days ago
I guess Google play store can restrict the downloadable set of apps to what is natively compiled for available hardware.

So why this over-the-top feature than?

6 comments

I don't know if it's over the top. ARM isn't too complex to convert. There's some register mangling that needs to be managed for SIMD, data struct alignment checks and overbounding behavior that needs to be accounted for; but it's all relatively (keyword on relatively, it's still a lot of work) simple and orthogonal.

I would assume it's provided because in Xiaomi's primary two markets (India and China), there's a ton of 32-bit apps that their users need and won't upgrade phones (a lot more common in those markets) if they can't keep them. Google Play is also less commonly used in those markets.

https://www.amanieusystems.com/technology explains how the emulator works. Large parts of the translation are done ahead of time before the app is run first.

The paper https://dl.acm.org/doi/10.1145/3140587.3062371 is also related to the emulator that they are using.

While India is certainly a big market, to the best of my knowledge it’s nowhere close to China as far as using legacy apps or non-play store distribution. (Also expensive phones unsurprisingly don’t sell very well in India but that’s not very unusual.)
Not only that, since 2019 Google have required apps published on play store to have 64bit variants, this should not be a problem.

However I suspect that the Xiaomi has to contend with the Chinese app ecosystem which may not be as strictly controlled, so probably has a decent number of legacy 32bit apps floating about.

Because Xiaomi cares about software backwards compatibility on its devices? Just because many people are now used to being told "this app developer hasn't updated their app in a few years so now you can't use it, tough shit" doesn't mean it should be the standard.
I know people who lost paid for games when Apple switched to 64bit.
>So why this over-the-top feature than?

The industry has been deprecating 32 bit ARM and we have finally reached the point where support is being dropped from the CPUs themselves. This means that if you still want to support 32 bit ARM, then you will need to do it in software.

To enable the device to use 32bit programs? The same reason Apple includes a translator for amd64 binaries on its M1/M2 platforms?
Always better to have a choice. Why needlessly snatch away the user's freedom to install and use whatever app he wants?