Mobile Devices
|
Written by Daniel
|
Wednesday, 03 March 2010 19:03 |
From ARS Technica
Mozilla's mobile Firefox browser is coming to Google's Linux-based Android operating system.
Although the porting effort is still at an early stage of development, it is moving forward swiftly. Mozilla's developers achieved an important milestone this week by demonstrating that the browser can run on the Nexus One smartphone.
Due to the highly experimental status of the project, Mozilla has not yet published packages for testing, but that didn't deter us from getting our grubby mitts on the goods. As our readers know, we just can't resist the doughy flavor of half-baked software, and we will gladly brave the bugs for a chance to taste test the new hotness before it really heats up. In order to get our own hands-on look at Firefox on Android, we had to compile it from source code. About Android and the NDK
Although Android is a Linux-based platform, it has its own totally unique userspace environment that is built on top of a custom Java runtime. Android applications are typically coded in Java and compiled into Google's own bytecode format so that they can be executed on Android's Dalvik virtual machine. Due to the somewhat insular and alien design of the Android userspace stack, porting a conventional Linux application to the platform is a highly complex and non-trivial effort.
Mozilla got the job done with Android's Native Development Kit (NDK). Developers use the NDK to compile C and C++ source code into native ARM binaries that can be loaded and used by standard Java-based Android applications. The purpose of the NDK is principally to make it possible for application developers to use native code for performance-critical computing tasks that would be impractical to perform on Dalvik. One of the secondary advantages of the NDK is that it allows developers to port and reuse existing C and C++ code.
Components that are compiled with the NDK can be used and integrated into an Android Java application via the Java Native Interface (JNI), a framework that serves as a bridge between a Java virtual machine and native code. Native code functions can be exported through JNI and made accessible to higher-level Java applications. How the Firefox port works
To make Firefox run on Android, Mozilla modified the Firefox browser's Gecko rendering engine so that it could be compiled with the NDK and used in an Android application through the JNI. [More...] [Comments...]
|