Mozilla has released an early pre-alpha preview of its mobile Fennec browser for Google's Linux-based Android operating system. It will run on Android 2.x smartphones, including the Nexus One. We conducted some hands-on testing to see how it compares with Android's native browser.

We took a look at how Mozilla is porting its browser to Android several months ago when the project was still at a very early stage of development. Mozilla is leveraging Android's Native Development Kit (NDK) to bring its Gecko rendering engine to the platform. Using JNI, the Gecko renderer is embedded in a thin Java layer through which input events are relayed to the Gecko engine.

Gecko renders Fennec's XUL-based user interface in addition to the actual HTML page content. This makes it possible for the browser to support add-ons and other unique features, such as the AwesomeBar, that are enabled by Mozilla's technology stack.

Fennec on Android uses the same visual theme as the N900 version. The left-hand sidebar displays thumbnails for each tab and the right-hand sidebar provides access to bookmarks, settings, add-ons, and downloads. Fennec add-ons, including Weave, can be installed directly through the extension sidebar panel.

Although it doesn't perform nearly as well as Android's native browser, the Fennec pre-alpha build is acceptably responsive on my Nexus One. Scrolling is a bit jittery while pages are loading, but is generally smooth during regular use. Zooming and orientation changes are swift and painless. Page rendering is decent, but the fonts aren't as readable in Fennec as they are in the native Android browser when a page is zoomed out.

The area where Fennec for Android is currently weakest is input support. When it is used in landscape orientation, the onscreen keyboard doesn't consistently work properly. For example, text doesn't appear in the text preview area when you are typing in landscape mode, but still shows up in the selected textbox. The program also lacks support for navigating with the device's scrollball.

Android's process handling is another area where the Fennec port doesn't quite fully conform with the operating system's idiosyncrasies yet. Android will occasionally terminate memory intensive applications, which means that it's necessary for programs to be able to save and restore their internal state. When Fennec gets terminated, its state isn't properly restored when it is opened again. This means that you can potentially lose all of your open tabs if you switch to other applications.

That said, it's important to remember that the program is still at a pre-alpha stage of development and has a long way to go before the first official stable release. Despite the early stage of development, the program is quite functional. With further refinement, it could be a very useful alternative to Android's built-in browser.

Users who want to test the program on their own Android handsets can download it from Mozilla's website.