Showing posts with label BREW. Show all posts
Showing posts with label BREW. Show all posts

Sunday, January 28, 2007

What is Brew?

BREW is an application development platform created by Qualcomm for mobile phones. It is air-interface independent, i.e. it can support GSM/GPRS, UTMS and CDMA. However, when BREW was first introduced it was solely developed for CDMA handsets. Standing for Binary Runtime Environment for Wireless, it is a software that can download and run small programs for playing games, sending messages, sharing photos, etc. The main advantage of BREW platform is that the application developers can easily port their applications between all the Qualcomm ASICs. The BREW runs in between application and the wireless device's chip operating system; therefore BREW enables a programmer to develop applications without needing to code for system interface or understand wireless application. It debuted in January 2001.

Even though Qualcomm has demonstrated that BREW applications can run in GSM handsets, due to technological restrictions, BREW applications are currently (as of 2005) intended for use solely on CDMA handsets.

BREW application development
Software for the BREW-enabled handsets can be developed in C or C++ using the freely downloadable BREW SDK. The SDK includes a BREW Emulator which can be used for testing during development process. Unlike Java ME platform, where any developer can upload and execute software on any supported handset, BREW applications must be digitally signed. Because BREW gives complete control over the handset hardware, only content providers or authenticated BREW developers have the tools necessary to create a digital signature. Furthermore, developer-signed applications can only execute on test-enabled handsets. Once the application has been developed and internally tested, it must be submitted to Qualcomm for TRUE BREW Testing. After the application passes all tests, it may be offered to a mobile operator (content provider) to be accessible for download to general handsets. The application is then signed by the content provider, to allow its execution on any supported BREW handset.

The BREW Emulator (currently called Brew Simulator) does not emulate handset's hardware. Instead, BREW application is compiled to native code and linked with a x86-compatible BREW runtime library. Because of this, obscure platform bugs related to memory alignment and various firmware related glitches make debugging applications without a BREW handset difficult. Developers must test their applications on real BREW-enabled handsets. To do that, the handset must be enabled for BREW testing (Qualcomm's development labs can do the service). Starting from BREW 3.1, test-enable bit functionality was removed, and now all that is needed is a developer's digital signature.

For testing purpose, BREW applications can be transferred using a USB cable to any BREW-compatible handset using AppLoader from Qualcomm. A BREW application contains several components which must be present, otherwise it's automatically deleted on reboot. This includes a name.mif file which describes the application, features it uses and permissions requested, a name.mod file which is the actual compiled binary, name.bar which contains string and image resources if required, and a name.sig which is the application digital signature. Applications which do not have, or have an invalid or expired digital signature are automatically deleted on reboot.

Once the application passes testing, it's avaliable for download from the service provider.

About this Tutorial
This tutorial is from The Wikipedia which is published under the GNU Free Documentation License.