ARMv6 Support on Aurora

Brad Lassey
blassey
Published in
2 min readJul 25, 2012

--

We launched pretty cool product about a month ago. It got lots of really great coverage in the press. After spending 9 months rewriting Firefox for Android, we’re really happy with the results. But that mostly just establishes a baseline for us and onward we go. Firefox 15 has lots of great new features that I promise I’ll blog about real soon.

Right now we’re super excited to call attention to the fact that we are bringing support for ARMv6 to Firefox for Android. Specifically, we landed all of the patches needed for ARMv6 support during Firefox 16’s time on trunk. So as the Firefox 16 train rumbles along the tracks to the Aurora station, we now have Aurora nightly builds and an associated update channel to keep you on the latest and greatest. These are the obvious continuation of the ARMv6 trunk nightly builds that Armen blogged about.

Now you get to choose between staying on the bleeding edge and seeing the latest and greatest things on the Nightly channel, or a more stable experience on our Aurora channel. Either way, you’re helping us ship a great product for ARMv6 users.

What is ARMV6 you ask? Well, ARM is the CPU architecture that powers the vast majority of mobile devices. As with everything technology related, the ARM Architecture evolves and with each new version of ARM new features get added that allow developers to either do entirely new things or maybe just do old things faster.

Specifically, we choose to target ARMv7 originally to take advantage of the Thumb-2 instruction set that was introduced with that version of the architecture. The main benefit of the Thumb-2 instruction set is it produces smaller binaries. In fact the ARMv7 (using Thumb-2) version of libxul.so is 40% smaller than the ARMv6 version of libxul.so (23.8MB vs. 17MB). In addition, the smaller binary size results in a performance benefit since more of the library’s binary will be cached at any given time. it should be noted though that due to compression, the resulting ARMv6 apk is only 2MB bigger than the ARMv7 apk.

When we made the decision to use Thumb-2 binary for Firefox, the Android Market only allowed you to ship one version of your app at a time. Since then the Android Market (eventually renamed Google Play) added support for shipping different APK’s to different devices. This opened the door to us being able to ship the smaller and faster binaries to devices that were compatible with it and at the same time address the other half of the market which is running on ARMv6 hardware.

So, if you’ve previously been unable to get Firefox from the Google Play Store, please go grab an Aurora build and give it a try. We’d love to hear your feedback, which you can provide by signing up for the ARMv6 Mobile Test Drivers mailing list, and you’ll be helping to bring Firefox to millions more users who have been left behind by modern browsers.

--

--