If you're a developer looking to make the mobile experience more powerful for your end users, 64-bit computing is worth looking into. With powerful 64-bit architecture at their fingertips, smartphone and tablet developers will benefit from big performance gains, addressable memory beyond 4GB, and improved security capabilities.
You've come a long way, baby
Since its appearance in the Cray-1* supercomputer in 1975, 64-bit computing architecture has been considered the pinnacle of processing power. Over the two subsequent decades, the technology began to find its way into the microcomputer-class servers and high-end desktop workstations of the mid-1990s.
Today, 64-bit processors are commonplace and will soon become the baseline for smartphones and tablets. With 64-bit architecture at their fingertips, smartphone and tablet developers will benefit from the big performance gains, addressable memory beyond 4 GB, and larger in-memory data sets.
Better for security
In addition, 64-bit architecture will better protect device data and enterprise networks by warding off security threats. According to a July 2014 report from Nielsen, Android* and iPhone* users 18 and older spent more than 30 hours per month using mobile apps in 2013, a 65 percent increase from 2012. Mobile devices are also permeating the workplace where complex computing and security are demanded. Symantec in 2012 identified more than 200 million virus definitions, about the same number that it identified between 1991 and 2011. And smartphones and tablets are increasingly reposing digital-wallet and personal identity data; mobile hardware must catch up to protect and provide an adequate user experience.
Intel® and Android*
Intel's Software and Services has been helping to advance the Linux kernel and enable 64-bit computing since 2004. Intel is involved in all open source browser programs—including Chromium* and Blink*—and contributes to GCC compilers, commercial compilers, hypervisors, SLC drivers, and "just about anything else that touches the system," said Joe Daly, director of engineering at the Open Source Technology Center (OTC) within Intel Software and Services.
This group developed an Android* main line to provide a common starting point from which Intel's hardware platform groups can launch their programming efforts to access capabilities from the silicon. The main line is also used as a reference for Android variations that require a clean reference implementation of Android.
Much of the group's efforts are focused on Android L and its 64-bit Android Runtime (ART). While Intel has worked with previous versions of the OS and runtime, this year's release will engage the functionality and performance of the 64-bit hardware. It takes advantage of packed instructions and the writing of runtime compilers that optimize the code for Intel hardware.
Benefits of the 64-bit mobile platform
Kumar Shiv, Intel's principal engineer and performance architect for the 32-bit Dalvik and 64-bit ART runtimes, said that 64-bit mobile platforms can benefit the user in several ways. "64-bit can potentially enhance many things in the user-perceived path," said Shiv. The most common examples include the encryption-decryption cycles of secure apps and the encoding-decoding patterns of media playback. While doing a lot of logical operations on large bit streams, working on 64 bits at a time is a huge advantage. "Some sophisticated algorithms can only work on 64-bit systems because 32-bit would be too slow. For complex math operations, 64-bit is almost a must-have," explained Shiv.
In its reference stack, Intel provides a full implementation of Android, including best practices for security and privacy. The Linux OS itself also contains some security features that are only enabled in 64-bit processor mode—things that would protect you at the very lowest level of attack. "And in Android, there's verified boot, credentials management, content protection, and other things happening in Android related to making Android phones and tablets a secure gateway to the cloud," Daly said.
As the world embraces the Big Data era, the security afforded by 64-bit computing will become necessary for mobile devices. "From the IoT device point of view, that's the single biggest concern," said Shiv. "These devices have all of our personal data and they're all on the Internet. We need to get these devices as secure possible."
Going beyond security
Digital photography and graphically intensive effects will also benefit from 64-bit platforms. "Smartphones are now cameras, too. Editing two or three pictures together, doing an HDR [high dynamic range], or extracting scenes require a lot of memory," Daly said. Photography and editing on mobile devices could be advanced with this platform.
Even general-purpose apps can gain from 64-bit platforms. Based on his observations of the 64-bit migration of enterprise Linux and Windows* in the 2000s, Daly said that apps could see a boost of around 15 percent as ISVs shift to 64-bit platforms. Drawing a line at the average, some things will fall below that line and some will fall above it. Encryption, image processing, and anything where you can use a packed type of data instruction benefits from 64-bit. Apps that are highly optimized for 32-bit might not stand to gain. "There may be apps highly optimized for 32-bit that might actually perform slightly worse in the near term," said Daly.
Code changes coming?
A key take-away from the emergence of 64-bit devices is that pure Java apps will run unchanged on the 32-bit Dalvik runtime and the 64-bit ART regardless of whether it's on a device built with ARM or IA. But if the app contains native code or calls through the Java Native Interface, it will need to be recompiled. If developers want to take advantage of the 64-bit architecture, they will need to put out multiple binaries.
For native-code developers planning the transition, the process will be different. "If a developer merely wants to carry their app forward to Android L, it's really just recompiling and retesting their app. But if they want to shift to 64-bit, there's some porting to do and they have to recompile the native parts using the new NDK," said Daly. NDK is the Android Native Development Kit (NDK) R10. The second, also available now, is the Android SDK, which delivers API libraries and tools to build, test, and debug Android apps. It's also available bundled with the Eclipse IDE and works alongside the Intel® Integrated Native Developer Experience tool suite (in beta). The third part is Android L (sometimes referred to as "Android L-dessert" because of the platform's naming convention). Intel itself offers industry-leading tools for 64-bit development, including compilers, optimizers, and an extensive Software Partnering Program.
"With great power comes great responsibility"
As developers prepare for the coming 64-bit wave, a harmonious sync must occur where hardware and software are balanced. "We expect most apps to work well, but an app could potentially be developed that doesn't perform well because of the physical amount of memory available; devices might take a while to catch up to 64-bit from a memory capacity standpoint." Developers might need to maintain 32- and 64-bit versions of their apps for a while.
Intel's long history in 64-bit hardware combined with its tenure in software enabling and optimization have set the stage for advancing the platform in tablets and smartphones. Without the memory and speed limitations, designing for the mobile world now lies in the imagination of the developers and how they choose to use that power.
For more such windows resources and tools from Intel, please visit the Intel® Developer Zone