Here’s what it means for Android, Apple, and more
Arm has announced that starting in 2023, all of its new smartphone CPU cores will only be 64-bit with no 32-bit compatibility mode. We have had 64-bit smartphone processors since 2013, when Apple built the 64-bit A7 processor into the iPhone 5s. 64-bit CPUs came to Android soon after, but all of those CPUs could run both 32-bit code and 64-bit code. So we’ve moved from just 32-bit to 32-bit and 64-bit, and now we’re leaving 32-bit behind and moving to a pure 64-bit era. What does this mean for Android? Let’s find out.
Bits and bytes
On your smartphone, every pixel, every bit of data sent over the Internet, every file stored in the flash memory, every sound played and every touch of the screen is represented and processed by numbers. Most of the processing is done by the CPU with the help of other components like the GPU.
Bits are the ones and zeros of the binary file.
The processor stores these numbers in binary, and the space allotted to them is measured in bits. Bits are the ones and zeros of the binary file. Eight bits can represent any number between zero and 255. 16 bits range from zero to 65,535, and 32 bits can store numbers up to 4,294,967,295 (i.e. 4 GB).
Arm introduced 64-bit support in version 8 of its instruction set architecture (called Armv8) and that support continues in Armv9. Both are optionally also downward compatible with the previous 32-bit-only arm architectures. This means that Cortex-A processors basically execute 32-bit code and 64-bit code and can switch between them on the fly. Users would not have noticed any difference between 32-bit and 64-bit code. In fact, the first Armv8 SoC from Samsung was the Exynos 5433 used in the Galaxy Note 4. It had four Cortex-A57 cores and four Cortex-A53 cores, but was only used in 32-bit mode.
See also: How to Understand Cryo CPU Numbering in Qualcomm Snapdragon Processors
Over the years things have become more nuanced. Arm has some Armv8 based Cortex-A cores that are only 32-bit (e.g. the Cortex-A32) and some that are only 64-bit (e.g. the Cortex-A34 and the Cortex-A65). You may never have heard of these CPU designs as they have not been used in any smartphone processor.
The Cortex-A76 changed things a bit by adding support for 32-bit mode, but only for apps.
Most Cortex-A processors from the Cortex-53 to the Cortex-A75 support both 32-bit and 64-bit modes. The Cortex-A76 changed things a bit by adding support for 32-bit mode, but only for apps. That means you need to be running a 64-bit version of Android (see below), but you can still run 32-bit apps. If you have a Snapdragon 855 (or higher) processor. Or a processor based on Kryo 4xx (or higher) (including Snapdragon 480, Snapdragon 675, Snapdragon 720, Snapdragon 730, Snapdragon 765, Snapdragon 780G, etc.) then the processor has already discontinued support for 32-bit operating systems, and You didn’t even notice it!
With the Cortex-X2 and Cortex-A510, support for 32-bit apps has been discontinued, so you’ll need to run a 64-bit operating system and 64-bit apps. The Cortex-A710 retains 32-bit app support, which means that any remaining 32-bit apps will be forced to run on the A710 cores.
All Cortex-A CPUs will only be 64-bit by 2023
Arm made two statements about the imminent changeover to only 64-bit. First it was said that all of its large cores would only be 64-bit by 2022, then a few months later that all of its cores would be 64-bit by 2023. Sounds great. Until you remember that the Cortex-A510 (a SMALL core) is already only 64-bit. So why the two different deadlines? The only sense I can make of this is that we will see a new LITTLE core announced in 2022 that supports 32-bit and everything will be 64-bit from then on.
It is noteworthy that these are Cortex-A processors, i.e. the CPUs in smartphones, tablets, Chromebooks, etc. They are not Cortex-M CPUs from Arm’s microcontroller series. In fact, Armv8-M (M for microcontroller) is only 32-bit.
What it means for Android
The good news is that 64-bit Android is a mature technology and there won’t be any big surprises when 32-bit support is phased out entirely.
The first fully 64-bit compatible version of Android was Android 5.0 (Lollipop). It was released in 2014 and supports 64-bit Intel processors as well as 64-bit arm chips. As of August 2019, all Google Play apps must support 64-bit. To help developers support 64-bit, the popular game engines have all added support: Unreal (in 2015), Cocos2d (in 2015), and Unity (in 2018). As of August 1, 2021, Google Play will stop serving apps without 64-bit versions on 64-bit enabled devices so that they will no longer be available on these devices in the Play Store.
Google has provided various tools and a large amount of documentation to prepare app developers for the move to 64-bit. For many apps, there is actually little to do, as those written in Java or Kotlin don’t need to be changed. However, apps developed with a third-party game engine or SDK must ensure that they are using the latest 64-bit versions.
Since devices with 64-bit Android have been shipping for several years, and Google’s efforts to make 64-bit apps available in the Play Store, the final switch to only 64-bit will be done with little effort or fanfare.
What it means for Apple
Apple has supported 64-bit hardware and software since the iPhone 5S. Back in February 2015, Apple announced that all iOS apps must support 64-bit. In 2017, Cupertino announced that 32-bit apps would no longer work from iOS 11. At this point, Apple has completely discontinued 32-bit and all of its processors, starting with the Apple A11 (found in the iPhone 8, iPhone X) are only 64-bit.
Apple M1 tested: Performance benchmarks and thermal throttling explained
It’s similar with macOS. Apple’s desktop operating system has only been 64-bit since 10.7 Lion (2011). As of 2018, all new apps sent to the Mac App Store must support 64-bit, and like iOS, macOS stopped supporting 32-bit apps (with the release of macOS 10.15 Catalina in 2019). Today macOS 11 is 64-bit on Intel and 64-bit only on Arm. The M1 processor is only 64-bit.
The future is 64-bit, for some
All Cortex-A processors will only be 64-bit from 2023. Since Android offers 64-bit support and is switching to pure 64-bit apps, you will hardly notice any differences and the transition will be smooth. If you’re an Apple user, the move to 64-bit on both iOS and macOS took place a while ago. I haven’t heard any major issues with the switch.
For other CPU architectures and other operating systems like Windows and Linux, 32-bit support will survive much longer. Since Linux wants to be everyone’s friend, 32-bit support is likely to last for decades. For Windows on x86-64 processors, things are a little less clear, but there may not even be a clear path to the sunny meadows of the 64-bit-only country.