Rumors, misinformation and speculation are spreading like wildfire across the industry today following recent reports about Android anti-fragmentation efforts and what this means for processor architecture openness. Will Google’s anti-fragmentation initiatives for Android code impact providers of microprocessor architectures such as MIPS, Intel and ARM? Does anti-fragmentation mean that Google is standardizing Android for any specific architecture? As someone who has been deeply involved with MIPS’ Android efforts, here’s my take on separating some of the fact from fiction.
Q: Is Google standardizing Android to be available only on ARM?
A: Absolutely not. Many MIPS customers have asked this question of Google, and have been told that Android is intended to be architecture-neutral. What Google has done is to start an “anti-fragmentation” program, and is requiring OEMs, silicon vendors and architectural licensees to sign an anti-fragmentation agreement for early access to Android sources, and as part of the process for certifying platforms to enable access to the Android Market.
Q: Why is Google requiring vendors to sign an “anti-fragmentation” agreement?
A: The driving force behind the agreement has been concern over potential fragmentation of the Android code base. Some vendors have replaced parts of Android with their own layers/applications, and some application writers have been encouraged by third parties to make inappropriate use of architectural features of the underlying hardware or instruction set architecture (ISA). The result of this is that applications currently in the Android Market do not always work on all Android devices. The anti-fragmentation agreement is aimed at overcoming this issue.
Q: Surely fragmentation has not been a problem for ARM-based Android platforms?
A: Actually, it has been and continues to be a problem for ARM based Android platforms. There are several variations of the ARM ISA implemented by silicon vendors. As we have seen in our labs, some Android applications that run just fine on one ARM based vendor’s silicon platforms do not necessarily run on another ARM based vendor’s silicon. Google’s anti-fragmentation program is intended to remedy this situation as Android moves forward. MIPS Technologies is in full support of Google’s anti-fragmentation philosophy.
Q: Is there any truth to the claims in the recent DIGITIMES article, “Google and ARM reportedly plan to establish standardization for Android/ARM platforms”?
A: The article contains numerous inaccuracies. The article states that Google will standardize Android for use on ARM. The implication is that the standardization will be ONLY on ARM—which is not accurate. What is true is that Google clearly has a growing concern about the potential fragmentation of Android (due in part to the fragmentation that exists within the ARM ecosystem). It is also true that as a part of Google’s anti-fragmentation efforts, each processor vendor—including ARM, MIPS and Intel—must sign the Android anti-fragmentation clause to gain early access to sources in the future. And Google has defined a standard set of Android interfaces that work across all processor architectures—including those from ARM, Intel and MIPS—with the aim of maintaining application compatibility and portability. Google has also defined a Compatibility Test Suite (CTS). Passing the CTS is necessary for access to the Android Market. The article basically implies that the CTS is specific to ARM. But there is no architecture dependence within the CTS.
Q: Does MIPS support Google’s anti-fragmentation agenda?
A: Absolutely. We consider this to be a helpful step as it is crucial for MIPS licensees creating processors for the Android market to have equal access to applications. That is the only way that end users can enjoy a seamless portability experience and select their devices based on the advantages the underlying architectures in terms of performance, power management, silicon area, etc. The anti-fragmentation program encourages everyone to make portability across platforms (whether completely different processor architectures or variations within the same ISA family) a priority. Furthermore, application writers who do need to access specific hardware functions are encouraged to do so using the Android NDK (native development kit). There is an NDK for each major architecture that supports Android, including MIPS, Intel and ARM.
Q: Is MIPS working with Google on anti fragmentation?
A: Yes. In fact, Google invited MIPS to participate. We are currently in discussions with Google regarding the anti-fragmentation agreement. MIPS has also made its NDK/ABI (application binary interface) available to Google and is working with Google to have that included as part of the Android toolchain. MIPS is also in discussions with Google for future early source access.
Update as of April 6, 2011:
Please read the new blog post from Andy Rubin at Google, titled, “I think I’m having a Gene Amdahl moment.” In this post, Rubin states, “There are not, and never have been, any efforts to standardize the platform on any single chipset architecture.”